On 09/12/2016 06:47 AM, Alex Bennée wrote:
>> > +    /* Notice an IO access, or a notdirty page.  */
>> > +    if (unlikely(tlb_addr & ~TARGET_PAGE_MASK)) {
>> > +        /* There's really nothing that can be done to
>> > +           support this apart from stop-the-world.  */
>> > +        goto stop_the_world;
> We are also triggering on TLB_NOTDIRTY here in the case where a
> conditional write is the first write to a page. I don't know if a
> stop_the_world is required at this point but we will need to ensure we
> clear bits as notdirty_mem_write() does.
> 

You're quite right that we could probably special-case TLB_NOTDIRTY here such
that (1) we needn't leave the cpu loop, and (2) needn't utilize the actual
"write" part of notdirty_mem_write; just set the bits then fall through to the
actual atomic instruction below.


r~

Reply via email to