diff mbox

ppc/kvm: Tell the user what might be wrong when using bad CPU types with kvm-hv

Message ID 1455829316-15382-1-git-send-email-thuth@redhat.com
State New
Headers show

Commit Message

Thomas Huth Feb. 18, 2016, 9:01 p.m. UTC
Using a CPU type that does not match the host is not possible when using
the kvm-hv kernel module - the PVR is checked in the kernel function
kvm_arch_vcpu_ioctl_set_sregs_hv() and rejected with -EINVAL if it
does not match the host.
However, when the user tries to specify a non-matching CPU type, QEMU
currently only reports "kvm_init_vcpu failed: Invalid argument", and
this is of course not very helpful for the user to solve the problem.
So this patch adds a more descriptive error message that tells the
user to specify "-cpu host" instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 target-ppc/kvm.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Eric Blake Feb. 18, 2016, 10:13 p.m. UTC | #1
On 02/18/2016 02:01 PM, Thomas Huth wrote:
> Using a CPU type that does not match the host is not possible when using
> the kvm-hv kernel module - the PVR is checked in the kernel function
> kvm_arch_vcpu_ioctl_set_sregs_hv() and rejected with -EINVAL if it
> does not match the host.
> However, when the user tries to specify a non-matching CPU type, QEMU
> currently only reports "kvm_init_vcpu failed: Invalid argument", and
> this is of course not very helpful for the user to solve the problem.
> So this patch adds a more descriptive error message that tells the
> user to specify "-cpu host" instead.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  target-ppc/kvm.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> index 762d6cf..6545fbe 100644
> --- a/target-ppc/kvm.c
> +++ b/target-ppc/kvm.c
> @@ -513,6 +513,10 @@ int kvm_arch_init_vcpu(CPUState *cs)
>      /* Synchronize sregs with kvm */
>      ret = kvm_arch_sync_sregs(cpu);
>      if (ret) {
> +        if (ret == -EINVAL) {
> +            error_report("Register sync failed... If you're using kvm-hv.ko,"
> +                         " only \"-cpu host\" is possible!");

No need to shout at the user; drop the trailing !
David Gibson Feb. 19, 2016, 12:17 a.m. UTC | #2
On Thu, Feb 18, 2016 at 03:13:52PM -0700, Eric Blake wrote:
> On 02/18/2016 02:01 PM, Thomas Huth wrote:
> > Using a CPU type that does not match the host is not possible when using
> > the kvm-hv kernel module - the PVR is checked in the kernel function
> > kvm_arch_vcpu_ioctl_set_sregs_hv() and rejected with -EINVAL if it
> > does not match the host.
> > However, when the user tries to specify a non-matching CPU type, QEMU
> > currently only reports "kvm_init_vcpu failed: Invalid argument", and
> > this is of course not very helpful for the user to solve the problem.
> > So this patch adds a more descriptive error message that tells the
> > user to specify "-cpu host" instead.
> > 
> > Signed-off-by: Thomas Huth <thuth@redhat.com>
> > ---
> >  target-ppc/kvm.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> > index 762d6cf..6545fbe 100644
> > --- a/target-ppc/kvm.c
> > +++ b/target-ppc/kvm.c
> > @@ -513,6 +513,10 @@ int kvm_arch_init_vcpu(CPUState *cs)
> >      /* Synchronize sregs with kvm */
> >      ret = kvm_arch_sync_sregs(cpu);
> >      if (ret) {
> > +        if (ret == -EINVAL) {
> > +            error_report("Register sync failed... If you're using kvm-hv.ko,"
> > +                         " only \"-cpu host\" is possible!");
> 
> No need to shout at the user; drop the trailing !

Applied to ppc-for-2.6 with ! removed.  Thanks.
diff mbox

Patch

diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index 762d6cf..6545fbe 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -513,6 +513,10 @@  int kvm_arch_init_vcpu(CPUState *cs)
     /* Synchronize sregs with kvm */
     ret = kvm_arch_sync_sregs(cpu);
     if (ret) {
+        if (ret == -EINVAL) {
+            error_report("Register sync failed... If you're using kvm-hv.ko,"
+                         " only \"-cpu host\" is possible!");
+        }
         return ret;
     }