qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [big lock] Discussion about the convention of device's


From: liu ping fan
Subject: Re: [Qemu-devel] [big lock] Discussion about the convention of device's DMA each other after breaking down biglock
Date: Thu, 20 Sep 2012 16:09:53 +0800

On Thu, Sep 20, 2012 at 3:54 PM, Paolo Bonzini <address@hidden> wrote:
> Il 20/09/2012 09:51, liu ping fan ha scritto:
>> Sorry, donot catching your meaning.  Does not "coarse->fine"  mean
>> LOCK(coarse)-->LOCK(fine);  .. UNLOCK(fine)-->UNLOCK(coarse) ?
>
> Yes.
>
>>> > Valid:
>>> >   lock(coarse)
>>> >   lock(fine)
>>> >
>> But it is conflict with " localLock(fine) --> bigLock(coarse)" which
>> is taken when mmio dispatch.
>
> No, MMIO dispatch has to discard the fine-grained lock before acquiring
> the big lock.
>
This will cause the device state broken, and expose device under changing risk.

> If you allow
>
>   lock(fine)
>   lock(coarse)
>
> then the (presumably higher-priority) thread that is requesting the
> fine-grained lock must wait for the lower-priority thread that holds the
> coarse-grained lock.  Then you get priority inversion.
>
Which thread has higher-priority? Why does the thread with coarse lock
have lower-priority?

Thanks and regards,
pingfan

> Paolo



reply via email to

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