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: Paolo Bonzini
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 09:54:44 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0

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.

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.

Paolo



reply via email to

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