From: Jim Mattson <jmattson@google.com>
To: Andy Lutomirski <luto@kernel.org>
Cc: "Kyle Huey" <me@kylehuey.com>,
"Robert O'Callahan" <robert@ocallahan.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Ingo Molnar" <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>, "X86 ML" <x86@kernel.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Radim Krčmář" <rkrcmar@redhat.com>,
"Jeff Dike" <jdike@addtoit.com>,
"Richard Weinberger" <richard@nod.at>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Shuah Khan" <shuah@kernel.org>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Borislav Petkov" <bp@suse.de>,
"Peter Zijlstra" <peterz@infradead.org>,
"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
"Len Brown" <len.brown@intel.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
"Dmitry Safonov" <dsafonov@virtuozzo.com>,
"David Matlack" <dmatlack@google.com>,
"Nadav Amit" <nadav.amit@gmail.com>,
"Andi Kleen" <andi@firstfloor.org>,
LKML <linux-kernel@vger.kernel.org>,
user-mode-linux-devel@lists.sourceforge.net,
"open list:USER-MODE LINUX (UML)"
<user-mode-linux-user@lists.sourceforge.net>,
"Linux FS Devel" <linux-fsdevel@vger.kernel.org>,
"open list:KERNEL SELFTEST FRAMEWORK"
<linux-kselftest@vger.kernel.org>,
"kvm list" <kvm@vger.kernel.org>
Subject: Re: [PATCH v14 8/9] KVM: x86: virtualize cpuid faulting
Date: Fri, 27 Jul 2018 13:28:41 -0700 [thread overview]
Message-ID: <CALMp9eSyJep6UPxeiZRWPrdzwvvcqJEbPPZ6C61EeHsvdyhMLg@mail.gmail.com> (raw)
In-Reply-To: <CALCETrVS8ch-1harGv2NUy83ZLna8Vde1zNLxPTPaxuMexQMjw@mail.gmail.com>
On Fri, Jul 27, 2018 at 12:41 PM, Andy Lutomirski <luto@kernel.org> wrote:
> On Wed, Feb 8, 2017 at 12:09 AM, Kyle Huey <me@kylehuey.com> wrote:
>> Hardware support for faulting on the cpuid instruction is not required to
>> emulate it, because cpuid triggers a VM exit anyways. KVM handles the relevant
>> MSRs (MSR_PLATFORM_INFO and MSR_MISC_FEATURES_ENABLE) and upon a
>> cpuid-induced VM exit checks the cpuid faulting state and the CPL.
>> kvm_require_cpl is even kind enough to inject the GP fault for us.
>>
>> Signed-off-by: Kyle Huey <khuey@kylehuey.com>
>> Reviewed-by: David Matlack <dmatlack@google.com>
>> ---
>> ...
>> @@ -7613,16 +7636,19 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
>>
>> kvm_clear_async_pf_completion_queue(vcpu);
>> kvm_async_pf_hash_reset(vcpu);
>> vcpu->arch.apf.halted = false;
>>
>> if (!init_event) {
>> kvm_pmu_reset(vcpu);
>> vcpu->arch.smbase = 0x30000;
>> +
>> + vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
>> + vcpu->arch.msr_misc_features_enables = 0;
>
> Jim, I assume you're worried about this bit? It seems like
> msr_platform_info should maybe be initialized to zero to avoid causing
> an unintended migration issue.
Initializing this bit to zero helps with migration, but then if the
CPUID faulting bits in both MSRs are set, userspace has to take pains
to ensure that MSR_PLATFORM_INFO is restored first, or the
MSR_MISC_FEATURES_ENABLES value will be rejected.
I'm also concerned about the 0 in the "Maximum Non-Turbo Ratio" field
feeding into someone's calculated TSC frequency.
next prev parent reply other threads:[~2018-07-27 20:28 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-08 8:09 [PATCH v14 0/9] x86/arch_prctl Add ARCH_[GET|SET]_CPUID for controlling the CPUID instruction Kyle Huey
2017-02-08 8:09 ` [PATCH v14 1/9] x86/arch_prctl/64: Use SYSCALL_DEFINE2 to define sys_arch_prctl Kyle Huey
2017-02-08 8:09 ` [PATCH v14 2/9] x86/arch_prctl/64: Rename do_arch_prctl to do_arch_prctl_64 Kyle Huey
2017-02-08 8:09 ` [PATCH v14 3/9] x86/arch_prctl: Add do_arch_prctl_common Kyle Huey
2017-02-08 8:09 ` [PATCH v14 4/9] x86/syscalls/32: Wire up arch_prctl on x86-32 Kyle Huey
2017-02-08 8:09 ` [PATCH v14 5/9] x86/cpufeature: Detect CPUID faulting support Kyle Huey
2017-02-08 8:09 ` [PATCH v14 6/9] x86/arch_prctl: Add ARCH_[GET|SET]_CPUID Kyle Huey
2017-02-08 8:09 ` [PATCH v14 7/9] x86/arch_prctl: Selftest for ARCH_[GET|SET]_CPUID Kyle Huey
2017-02-08 8:09 ` [PATCH v14 8/9] KVM: x86: virtualize cpuid faulting Kyle Huey
2018-07-27 17:15 ` Jim Mattson
2018-07-27 19:41 ` Andy Lutomirski
2018-07-27 20:28 ` Jim Mattson [this message]
2018-07-27 20:46 ` Andy Lutomirski
2018-07-27 21:03 ` Jim Mattson
2018-07-27 21:05 ` Andy Lutomirski
2018-07-27 21:30 ` Jim Mattson
2018-07-27 22:58 ` Andy Lutomirski
2017-02-08 8:09 ` [PATCH v14 9/9] x86/arch_prctl: Rename 'code' argument to 'option' Kyle Huey
2017-02-10 13:07 ` [PATCH v14 0/9] x86/arch_prctl Add ARCH_[GET|SET]_CPUID for controlling the CPUID instruction Thomas Gleixner
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=CALMp9eSyJep6UPxeiZRWPrdzwvvcqJEbPPZ6C61EeHsvdyhMLg@mail.gmail.com \
--to=jmattson@google.com \
--cc=andi@firstfloor.org \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@suse.de \
--cc=dave.hansen@linux.intel.com \
--cc=dmatlack@google.com \
--cc=dsafonov@virtuozzo.com \
--cc=hpa@zytor.com \
--cc=jdike@addtoit.com \
--cc=kvm@vger.kernel.org \
--cc=len.brown@intel.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=luto@kernel.org \
--cc=me@kylehuey.com \
--cc=mingo@redhat.com \
--cc=nadav.amit@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=rafael.j.wysocki@intel.com \
--cc=richard@nod.at \
--cc=rkrcmar@redhat.com \
--cc=robert@ocallahan.org \
--cc=shuah@kernel.org \
--cc=tglx@linutronix.de \
--cc=user-mode-linux-devel@lists.sourceforge.net \
--cc=user-mode-linux-user@lists.sourceforge.net \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).