On Sun, Aug 23, 2015 at 19:02:30 -0700, Paolo Bonzini wrote: > On 23/08/2015 17:23, Emilio G. Cota wrote: > > This will be used by the atomic instruction emulation code. > > Is this a fast path? If not, we can use the existing addend field and > convert the host address to a ram_addr_t easily.
On x86 this is a fast path because the helper that goes before every store (aie_st_pre, p.17/38) checks whether any atomic operations on the store's cache line have been done before. The check is done using a bitmap (p.16/38); the input to the bitmap is the physical address with the last 6 bits shifted out (I'm assuming 2**6=64-byte cache lines). That said: How would the conversion via the addend field look like? If it's just an addition it might be cheap enough--and we wouldn't bloat CPUTLBEntry. Thanks, Emilio