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 <lviv...@redhat.com>
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; > } >