[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v3 07/13] ram_addr.h: Make exclusive bitmap access
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [RFC v3 07/13] ram_addr.h: Make exclusive bitmap accessors atomic |
Date: |
Fri, 17 Jul 2015 14:32:47 +0100 |
Alvise Rigo <address@hidden> writes:
> Suggested-by: Jani Kokkonen <address@hidden>
> Suggested-by: Claudio Fontana <address@hidden>
> Signed-off-by: Alvise Rigo <address@hidden>
> ---
> include/exec/ram_addr.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
> index 2766541..e51bd65 100644
> --- a/include/exec/ram_addr.h
> +++ b/include/exec/ram_addr.h
> @@ -255,7 +255,7 @@ uint64_t cpu_physical_memory_sync_dirty_bitmap(unsigned
> long *dest,
> /* Exclusive bitmap accessors. */
> static inline void cpu_physical_memory_set_excl_dirty(ram_addr_t addr)
> {
> - set_bit(addr >> TARGET_PAGE_BITS,
> + set_bit_atomic(addr >> TARGET_PAGE_BITS,
> ram_list.dirty_memory[DIRTY_MEMORY_EXCLUSIVE]);
> }
>
> @@ -267,8 +267,8 @@ static inline int
> cpu_physical_memory_excl_is_dirty(ram_addr_t addr)
>
> static inline void cpu_physical_memory_clear_excl_dirty(ram_addr_t addr)
> {
> - clear_bit(addr >> TARGET_PAGE_BITS,
> - ram_list.dirty_memory[DIRTY_MEMORY_EXCLUSIVE]);
> +
> bitmap_test_and_clear_atomic(ram_list.dirty_memory[DIRTY_MEMORY_EXCLUSIVE],
> + addr >> TARGET_PAGE_BITS, 1);
Does this call for simply implementing a clear_bit_atomic() rather than
the fancy bitmap_test_and_clear_atomic. Looking at atomic.h it seems the
primitives you need are there.
> }
>
> #endif
--
Alex Bennée
- [Qemu-devel] [RFC v3 03/13] softmmu: Add helpers for a new slow-path, (continued)
- [Qemu-devel] [RFC v3 03/13] softmmu: Add helpers for a new slow-path, Alvise Rigo, 2015/07/10
- [Qemu-devel] [RFC v3 06/13] target-i386: translate: implement qemu_ldlink and qemu_stcond ops, Alvise Rigo, 2015/07/10
- [Qemu-devel] [RFC v3 04/13] tcg-op: create new TCG qemu_ldlink and qemu_stcond instructions, Alvise Rigo, 2015/07/10
- [Qemu-devel] [RFC v3 07/13] ram_addr.h: Make exclusive bitmap accessors atomic, Alvise Rigo, 2015/07/10
- Re: [Qemu-devel] [RFC v3 07/13] ram_addr.h: Make exclusive bitmap accessors atomic,
Alex Bennée <=
- [Qemu-devel] [RFC v3 08/13] exec.c: introduce a simple rendezvous support, Alvise Rigo, 2015/07/10
- [Qemu-devel] [RFC v3 05/13] target-arm: translate: implement qemu_ldlink and qemu_stcond ops, Alvise Rigo, 2015/07/10
- [Qemu-devel] [RFC v3 09/13] cpus.c: introduce simple callback support, Alvise Rigo, 2015/07/10