qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 13/34] tcg: Add atomic helpers


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH v3 13/34] tcg: Add atomic helpers
Date: Fri, 24 Mar 2017 10:58:19 +0000
User-agent: mu4e 0.9.19; emacs 25.2.10

Nikunj A Dadhania <address@hidden> writes:

> Richard Henderson <address@hidden> writes:
>
>> 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.
>
> I do hit this case with ppc64, where I see that its the first write to
> the page and it exits from this every time, causing the kernel to print
> soft-lockups.
>
> Can we add the special case here for NOTDIRTY and set the page as dirty
> and return successfully?

Does the atomic step fall-back not work for you?

--
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]