From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YucYX-0000fj-V8 for qemu-devel@nongnu.org; Tue, 19 May 2015 04:07:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YucYS-0000qF-WA for qemu-devel@nongnu.org; Tue, 19 May 2015 04:07:17 -0400 Message-ID: <555AEF2B.4020006@redhat.com> Date: Tue, 19 May 2015 10:07:07 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1431976007-20503-1-git-send-email-lvivier@redhat.com> In-Reply-To: <1431976007-20503-1-git-send-email-lvivier@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] ppc: add helpful message when KVM fails to start VCPU List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Vivier , qemu-ppc@nongnu.org Cc: dgibson@redhat.com, qemu-devel@nongnu.org, Alexander Graf On 18/05/2015 21:06, Laurent Vivier wrote: > On POWER8 systems, KVM checks if VCPU is running on primary threads, > and that secondary threads are offline. If this is not the case, > ioctl() fails with errno set to EBUSY. > > QEMU aborts with a non explicit error message: > $ ./qemu-system-ppc64 --nographic -machine pseries,accel=kvm > error: kvm run failed Device or resource busy > > To help user to diagnose the problem, this patch adds an informative > error message. > > There is no easy way to check if SMT is enabled before starting the VCPU, > and as this case is the only one setting errno to EBUSY, we just check > the errno value to display a message. > > Signed-off-by: Laurent Vivier Thanks, applied to my queue for 2.4. Paolo > --- > kvm-all.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/kvm-all.c b/kvm-all.c > index 17a3771..7b57826 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1828,6 +1828,14 @@ int kvm_cpu_exec(CPUState *cpu) > } > fprintf(stderr, "error: kvm run failed %s\n", > strerror(-run_ret)); > +#ifdef TARGET_PPC > + if (run_ret == -EBUSY) { > + fprintf(stderr, > + "This is probably because your SMT is enabled.\n" > + "VCPU can only run on primary threads with all " > + "secondary threads offline.\n"); > + } > +#endif > ret = -1; > break; > } >