[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 1/3] cputlb: ensure tbl_set_dirty1 updates ad
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v1 1/3] cputlb: ensure tbl_set_dirty1 updates addr_write atomically |
Date: |
Mon, 20 Mar 2017 16:16:20 +0000 |
User-agent: |
mu4e 0.9.19; emacs 25.2.10 |
Paolo Bonzini <address@hidden> writes:
> On 20/03/2017 16:34, Alex Bennée wrote:
>> static inline void tlb_set_dirty1(CPUTLBEntry *tlb_entry, target_ulong
>> vaddr)
>> {
>> +#if TCG_OVERSIZED_GUEST
>> if (tlb_entry->addr_write == (vaddr | TLB_NOTDIRTY)) {
>> tlb_entry->addr_write = vaddr;
>> }
>> +#else
>> + uintptr_t orig_addr = atomic_mb_read(&tlb_entry->addr_write);
>
> atomic_read is enough, since we don't care at all about cases where the
> address doesn't match. Otherwise
Good catch. Will fix for my pullreq
>
> Reviewed-by: Paolo Bonzini <address@hidden>
>
> Paolo
>
>> + if (orig_addr == (vaddr | TLB_NOTDIRTY)) {
>> + atomic_cmpxchg(&tlb_entry->addr_write, orig_addr, vaddr);
>> + }
>> +#endif
>> }
--
Alex Bennée