All of lore.kernel.org
 help / color / mirror / Atom feed
From: Don Bowman <db@donbowman.ca>
To: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: David Hildenbrand <david@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	kvm@vger.kernel.org
Subject: Re: PATCH: setup_vmcs_config: disable TSC scaling on unlike processors
Date: Tue, 13 Dec 2016 23:07:05 -0500	[thread overview]
Message-ID: <CADJev785aupTEbHMjL1iXmCdB-RAq1z2yaizHQ8ZJEQFe-x0rg@mail.gmail.com> (raw)
In-Reply-To: <20161213154334.GC2293@potion>

On 13 December 2016 at 10:43, Radim Krčmář <rkrcmar@redhat.com> wrote:
> 2016-12-09 10:12-0500, Don Bowman:
>> OK, based on previous feedback, this patch version simply ignores any
>> inconsistency if a knowing and trusting user wishes.
>>
>> In my case, two identical processors in stepping and version and all
>> others have 1 flag missing (retail vs tray version of chip), but the
>> next person might have another flag.
>>
>> Comments?
 ...

> Please add a note in the spirit of: "KVM is going to fail unless you
> explicitly disable features that are not present on all CPUs."
>
> If this becomes a normal feature, we'd remove the toggle, check that all
> enabled features are supported, and pass if KVM will work with selected
> features ... the check seems like a waste of code for this rarity of
> machines.
>

OK, how about this?
As a side note, i'm still not clear on why this happens. cpuid cannot
tell the difference between these processors (same model hex-id,
stepping, extended family, extended model). The only difference is one
was an OEM 'tray' and one was the retail (to upgrade the single-socket
machine to dual socket).

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 5382b82..84733b3 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -103,6 +103,14 @@ module_param_named(enable_shadow_vmcs,
enable_shadow_vmcs, bool, S_IRUGO);
 static bool __read_mostly nested = 0;
 module_param(nested, bool, S_IRUGO);

+/*
+ * Override the 'all cpu have identical flag' check.
+ * Note: KVM is going to fail unless you explicitly disable
+ * features that are not present on all CPUs
+*/
+static bool __read_mostly ignore_inconsistency = false;
+module_param(ignore_inconsistency, bool, S_IRUGO);
+
 static u64 __read_mostly host_xss;

 static bool __read_mostly enable_pml = 1;
@@ -9202,9 +9210,11 @@ static void __init vmx_check_processor_compat(void *rtn)
        if (setup_vmcs_config(&vmcs_conf) < 0)
                *(int *)rtn = -EIO;
        if (memcmp(&vmcs_config, &vmcs_conf, sizeof(struct vmcs_config)) != 0) {
-               printk(KERN_ERR "kvm: CPU %d feature inconsistency!\n",
-                               smp_processor_id());
-               *(int *)rtn = -EIO;
+               printk(KERN_ERR "kvm: CPU %d feature inconsistency%s!\n",
+                               smp_processor_id(),
+                               ignore_inconsistency ? " -- ignored" : "");
+               if (!ignore_inconsistency)
+                       *(int *)rtn = -EIO;
        }
 }

  reply	other threads:[~2016-12-14  4:07 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-02  2:32 PATCH: setup_vmcs_config: disable TSC scaling on unlike processors Don Bowman
2016-12-02 15:07 ` Radim Krčmář
2016-12-02 19:10   ` Don Bowman
2016-12-02 20:58     ` Don Bowman
2016-12-05 16:37       ` Radim Krčmář
2016-12-06  8:49   ` David Hildenbrand
2016-12-06  9:09     ` Paolo Bonzini
2016-12-06 11:08       ` Radim Krčmář
2016-12-07 11:37         ` David Hildenbrand
2016-12-07 15:25           ` Radim Krčmář
2016-12-08 11:46             ` David Hildenbrand
2016-12-08 14:32               ` Radim Krčmář
2016-12-09 15:12                 ` Don Bowman
2016-12-13 15:43                   ` Radim Krčmář
2016-12-14  4:07                     ` Don Bowman [this message]
2016-12-14 12:30                       ` Paolo Bonzini
2016-12-14 12:46                     ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CADJev785aupTEbHMjL1iXmCdB-RAq1z2yaizHQ8ZJEQFe-x0rg@mail.gmail.com \
    --to=db@donbowman.ca \
    --cc=david@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.