[PATCH v4] powerpc: kvm: fix rare but potential deadlock scene
Alexander Graf
agraf at suse.de
Tue Nov 19 08:32:56 EST 2013
On 16.11.2013, at 01:55, Paul Mackerras <paulus at samba.org> wrote:
> On Fri, Nov 15, 2013 at 04:35:00PM +0800, Liu Ping Fan wrote:
>> Since kvmppc_hv_find_lock_hpte() is called from both virtmode and
>> realmode, so it can trigger the deadlock.
>>
>> Suppose the following scene:
>>
>> Two physical cpuM, cpuN, two VM instances A, B, each VM has a group of
>> vcpus.
>>
>> If on cpuM, vcpu_A_1 holds bitlock X (HPTE_V_HVLOCK), then is switched
>> out, and on cpuN, vcpu_A_2 try to lock X in realmode, then cpuN will be
>> caught in realmode for a long time.
>>
>> What makes things even worse if the following happens,
>> On cpuM, bitlockX is hold, on cpuN, Y is hold.
>> vcpu_B_2 try to lock Y on cpuM in realmode
>> vcpu_A_2 try to lock X on cpuN in realmode
>>
>> Oops! deadlock happens
>>
>> Signed-off-by: Liu Ping Fan <pingfank at linux.vnet.ibm.com>
>
> Reviewed-by: Paul Mackerras <paulus at samba.org>
Thanks, applied to kvm-ppc-queue.
Alex
More information about the Linuxppc-dev
mailing list