[PATCH v4] powerpc: kvm: fix rare but potential deadlock scene

Paul Mackerras paulus at samba.org
Sat Nov 16 17:55:17 EST 2013


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>


More information about the Linuxppc-dev mailing list