|
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
[Prev in Thread] | Current Thread | [Next in Thread] |