From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Date: Tue, 28 Oct 2014 09:02:32 +0000 Subject: Re: lockdep warning with 2d65a9f48fcdf7866aab6457bc707ca233e0c791 Message-Id: <544F5BA8.5020100@redhat.com> List-Id: References: <87d29tkzsi.fsf@linux.vnet.ibm.com> In-Reply-To: <87d29tkzsi.fsf@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: "Aneesh Kumar K.V" , "kvm-ppc@vger.kernel.org" , Paul Mackerras , linuxppc-dev On 10/15/2014 07:28 PM, Aneesh Kumar K.V wrote: > > ======================> [ INFO: possible recursive locking detected ] > 3.17.0+ #31 Not tainted > --------------------------------------------- > qemu-system-ppc/9112 is trying to acquire lock: > (&(&vcpu->arch.tbacct_lock)->rlock){......}, at: [] .vcore_stolen_time+0x44/0xb0 [kvm_hv] > > but task is already holding lock: > (&(&vcpu->arch.tbacct_lock)->rlock){......}, at: [] .kvmppc_remove_runnable.part.2+0x34/0xd0 [kvm_hv] This must come from here: while (vcpu->arch.state = KVMPPC_VCPU_RUNNABLE && (vc->vcore_state = VCORE_RUNNING || vc->vcore_state = VCORE_EXITING)) { spin_unlock(&vc->lock); kvmppc_wait_for_exec(vcpu, TASK_UNINTERRUPTIBLE); spin_lock(&vc->lock); } if (vcpu->arch.state = KVMPPC_VCPU_RUNNABLE) { kvmppc_remove_runnable(vc, vcpu); vcpu->stat.signal_exits++; kvm_run->exit_reason = KVM_EXIT_INTR; vcpu->arch.ret = -EINTR; } if vc->vcore_state is VCORE_SLEEPING (I think it cannot be VCORE_STARTING)? Paolo