From: Dave Hansen <dave.hansen@linux.intel.com>
To: Kyle Huey <me@kylehuey.com>, "Robert O'Callahan" <robert@ocallahan.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<x86@kernel.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>,
David Vrabel <david.vrabel@citrix.com>,
Juergen Gross <jgross@suse.com>, Borislav Petkov <bp@suse.de>,
Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Huang Rui <ray.huang@amd.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Len Brown <len.brown@intel.com>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
Aravind Gopalakrishnan <aravind.gopalakrishnan@amd.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>,
Kristen Carlson Accardi <kristen@linux.intel.com>,
"open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<linux-kernel@vger.kernel.org>,
"moderated list:XEN HYPERVISOR INTERFACE"
<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 2/3] x86 Test and expose CPUID faulting capabilities in /proc/cpuinfo
Date: Wed, 14 Sep 2016 14:35:40 -0700 [thread overview]
Message-ID: <57D9C2AC.8050905@linux.intel.com> (raw)
In-Reply-To: <1473886902-17902-3-git-send-email-khuey@kylehuey.com>
On 09/14/2016 02:01 PM, Kyle Huey wrote:
> Xen advertises the underlying support for CPUID faulting but not does pass
> through writes to the relevant MSR, nor does it virtualize it, so it does
> not actually work. For now mask off the relevant bit on MSR_PLATFORM_INFO.
That needs to make it into a comment, please.
That *is* a Xen bug, right?
> Signed-off-by: Kyle Huey <khuey@kylehuey.com>
> ---
> arch/x86/include/asm/cpufeatures.h | 1 +
> arch/x86/include/asm/msr-index.h | 1 +
> arch/x86/kernel/cpu/scattered.c | 14 ++++++++++++++
> arch/x86/xen/enlighten.c | 3 +++
> 4 files changed, 19 insertions(+)
>
> diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
> index 92a8308..78b9d06 100644
> --- a/arch/x86/include/asm/cpufeatures.h
> +++ b/arch/x86/include/asm/cpufeatures.h
> @@ -190,6 +190,7 @@
>
> #define X86_FEATURE_CPB ( 7*32+ 2) /* AMD Core Performance Boost */
> #define X86_FEATURE_EPB ( 7*32+ 3) /* IA32_ENERGY_PERF_BIAS support */
> +#define X86_FEATURE_CPUID_FAULT ( 7*32+ 4) /* Intel CPUID faulting */
>
> #define X86_FEATURE_HW_PSTATE ( 7*32+ 8) /* AMD HW-PState */
> #define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
> diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
> index 56f4c66..83908d5 100644
> --- a/arch/x86/include/asm/msr-index.h
> +++ b/arch/x86/include/asm/msr-index.h
> @@ -41,6 +41,7 @@
> #define MSR_IA32_PERFCTR1 0x000000c2
> #define MSR_FSB_FREQ 0x000000cd
> #define MSR_PLATFORM_INFO 0x000000ce
> +#define CPUID_FAULTING_SUPPORT (1UL << 31)
>
> #define MSR_NHM_SNB_PKG_CST_CFG_CTL 0x000000e2
> #define NHM_C3_AUTO_DEMOTE (1UL << 25)
> diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
> index 8cb57df..d502da1 100644
> --- a/arch/x86/kernel/cpu/scattered.c
> +++ b/arch/x86/kernel/cpu/scattered.c
> @@ -24,6 +24,17 @@ enum cpuid_regs {
> CR_EBX
> };
>
> +static int supports_cpuid_faulting(void)
> +{
> + unsigned int lo, hi;
> +
> + if (rdmsr_safe(MSR_PLATFORM_INFO, &lo, &hi) == 0 &&
> + (lo & CPUID_FAULTING_SUPPORT))
> + return 1;
> + else
> + return 0;
> +}
Is any of this useful to optimize away at compile-time? We have config
options for when we're running as a guest, and this seems like a feature
that isn't available when running on bare metal.
> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
> index b86ebb1..2c47f0c 100644
> --- a/arch/x86/xen/enlighten.c
> +++ b/arch/x86/xen/enlighten.c
> @@ -1050,6 +1050,9 @@ static u64 xen_read_msr_safe(unsigned int msr, int *err)
> #endif
> val &= ~X2APIC_ENABLE;
> break;
> + case MSR_PLATFORM_INFO:
> + val &= ~CPUID_FAULTING_SUPPORT;
> + break;
> }
> return val;
> }
Does this mean that Xen guests effectively can't take advantage of this
feature?
next prev parent reply other threads:[~2016-09-14 21:35 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1473886902-17902-1-git-send-email-khuey@kylehuey.com>
2016-09-14 21:01 ` [PATCH v2 1/3] syscalls,x86 Expose arch_prctl on x86-32 Kyle Huey
2016-09-14 21:29 ` Dave Hansen
2016-09-14 21:35 ` Kyle Huey
2016-09-14 21:46 ` Dave Hansen
2016-09-14 21:56 ` Kyle Huey
2016-09-14 22:23 ` kbuild test robot
2016-09-15 0:01 ` kbuild test robot
2016-09-15 0:01 ` kbuild test robot
2016-09-15 1:14 ` Andy Lutomirski
2016-09-14 21:01 ` [PATCH v2 2/3] x86 Test and expose CPUID faulting capabilities in /proc/cpuinfo Kyle Huey
2016-09-14 21:35 ` Dave Hansen [this message]
2016-09-14 22:03 ` Kyle Huey
2016-09-14 22:03 ` Kyle Huey
2016-09-15 1:17 ` Andy Lutomirski
2016-09-15 1:17 ` Andy Lutomirski
2016-09-15 2:20 ` Kyle Huey
2016-09-15 2:20 ` Kyle Huey
2016-09-15 20:38 ` H. Peter Anvin
2016-09-15 23:18 ` Andy Lutomirski
2016-09-15 23:18 ` Andy Lutomirski
2016-09-15 20:38 ` H. Peter Anvin
2016-09-15 10:07 ` David Vrabel
2016-09-15 10:07 ` David Vrabel
2016-09-14 21:35 ` Dave Hansen
2016-09-15 10:05 ` David Vrabel
2016-09-15 10:05 ` [Xen-devel] " David Vrabel
2016-09-15 10:25 ` Jan Beulich
2016-09-15 10:25 ` [Xen-devel] " Jan Beulich
2016-09-15 19:11 ` Kyle Huey
2016-09-15 19:11 ` [Xen-devel] " Kyle Huey
2016-09-15 19:37 ` Andy Lutomirski
2016-09-15 19:37 ` [Xen-devel] " Andy Lutomirski
2016-09-15 23:36 ` Kyle Huey
2016-09-15 23:36 ` [Xen-devel] " Kyle Huey
2016-09-15 19:41 ` Boris Ostrovsky
2016-09-15 19:41 ` Boris Ostrovsky
2016-09-14 21:01 ` Kyle Huey
2016-09-14 21:01 ` [PATCH v2 3/3] x86,arch_prctl Add ARCH_[GET|SET]_CPUID for controlling the CPUID instruction Kyle Huey
2016-09-15 1:29 ` Andy Lutomirski
2016-09-15 1:47 ` Kyle Huey
2016-09-15 1:54 ` Andy Lutomirski
2016-09-15 2:19 ` Kyle Huey
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=57D9C2AC.8050905@linux.intel.com \
--to=dave.hansen@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=aravind.gopalakrishnan@amd.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@suse.de \
--cc=david.vrabel@citrix.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=kristen@linux.intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=me@kylehuey.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rafael.j.wysocki@intel.com \
--cc=ray.huang@amd.com \
--cc=robert@ocallahan.org \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=tglx@linutronix.de \
--cc=vladimir_zapolskiy@mentor.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.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 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.