All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] x86: Misc cleanups
@ 2016-04-05  6:29 Borislav Petkov
  2016-04-05  6:29 ` [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has() Borislav Petkov
                   ` (5 more replies)
  0 siblings, 6 replies; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05  6:29 UTC (permalink / raw)
  To: X86 ML; +Cc: LKML

From: Borislav Petkov <bp@suse.de>

Hi,

here a bunch of minor cleanups ontop of the cpu_has_YYY removal pile.

Borislav Petkov (6):
  x86/fpu/regset: Use boot_cpu_has()
  x86/cpu: Simplify extended APIC ID detection on AMD
  x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call
  x86/tsc: Save an indentation level in recalibrate_cpu_khz()
  x86/fpu: Remove check_fpu() indirection
  x86/fpu: Get rid of x87 math exception helpers

 arch/x86/kernel/cpu/amd.c    | 17 ++++++++++-------
 arch/x86/kernel/fpu/bugs.c   | 16 +++++-----------
 arch/x86/kernel/fpu/core.c   | 44 +++++++++++++-------------------------------
 arch/x86/kernel/fpu/regset.c |  4 ++--
 arch/x86/kernel/tsc.c        | 23 ++++++++++-------------
 5 files changed, 40 insertions(+), 64 deletions(-)

-- 
2.7.3

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has()
  2016-04-05  6:29 [PATCH 0/6] x86: Misc cleanups Borislav Petkov
@ 2016-04-05  6:29 ` Borislav Petkov
  2016-04-05 13:51   ` Brian Gerst
  2016-04-13 11:41   ` [tip:x86/asm] x86/fpu/regset: Replace static_cpu_has() usage with boot_cpu_has() tip-bot for Borislav Petkov
  2016-04-05  6:29 ` [PATCH 2/6] x86/cpu: Simplify extended APIC ID detection on AMD Borislav Petkov
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05  6:29 UTC (permalink / raw)
  To: X86 ML; +Cc: LKML

From: Borislav Petkov <bp@suse.de>

fpregs_{g,s}et() are not sizzling-hot paths to justify the need for
static_cpu_has(). Use the normal boot_cpu_has() helper.

Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/kernel/fpu/regset.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
index bc5e76c1d7c5..81422dfb152b 100644
--- a/arch/x86/kernel/fpu/regset.c
+++ b/arch/x86/kernel/fpu/regset.c
@@ -278,7 +278,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
 
 	fpu__activate_fpstate_read(fpu);
 
-	if (!static_cpu_has(X86_FEATURE_FPU))
+	if (!boot_cpu_has(X86_FEATURE_FPU))
 		return fpregs_soft_get(target, regset, pos, count, kbuf, ubuf);
 
 	if (!boot_cpu_has(X86_FEATURE_FXSR))
@@ -309,7 +309,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
 	fpu__activate_fpstate_write(fpu);
 	fpstate_sanitize_xstate(fpu);
 
-	if (!static_cpu_has(X86_FEATURE_FPU))
+	if (!boot_cpu_has(X86_FEATURE_FPU))
 		return fpregs_soft_set(target, regset, pos, count, kbuf, ubuf);
 
 	if (!boot_cpu_has(X86_FEATURE_FXSR))
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/6] x86/cpu: Simplify extended APIC ID detection on AMD
  2016-04-05  6:29 [PATCH 0/6] x86: Misc cleanups Borislav Petkov
  2016-04-05  6:29 ` [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has() Borislav Petkov
@ 2016-04-05  6:29 ` Borislav Petkov
  2016-04-13 11:41   ` [tip:x86/asm] " tip-bot for Borislav Petkov
  2016-04-05  6:29 ` [PATCH 3/6] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call Borislav Petkov
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05  6:29 UTC (permalink / raw)
  To: X86 ML; +Cc: LKML

From: Borislav Petkov <bp@suse.de>

Both if-branches are under if (boot_cpu_has(X86_FEATURE_APIC)), unify
them.

Also, simplify the test for bits:

- 17 ("ApicExtBrdCst: APIC extended broadcast enable") and
- 18 ("ApicExtId: APIC extended ID enable.")

in "D18F0x68 Link Transaction Control."

No functionality change.

Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/kernel/cpu/amd.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 140eb4351a7b..2a380d7606d7 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -565,14 +565,17 @@ static void early_init_amd(struct cpuinfo_x86 *c)
 	 * can safely set X86_FEATURE_EXTD_APICID unconditionally for families
 	 * after 16h.
 	 */
-	if (boot_cpu_has(X86_FEATURE_APIC) && c->x86 > 0x16) {
-		set_cpu_cap(c, X86_FEATURE_EXTD_APICID);
-	} else if (boot_cpu_has(X86_FEATURE_APIC) && c->x86 >= 0xf) {
-		/* check CPU config space for extended APIC ID */
-		unsigned int val;
-		val = read_pci_config(0, 24, 0, 0x68);
-		if ((val & ((1 << 17) | (1 << 18))) == ((1 << 17) | (1 << 18)))
+	if (boot_cpu_has(X86_FEATURE_APIC)) {
+		if (c->x86 > 0x16)
 			set_cpu_cap(c, X86_FEATURE_EXTD_APICID);
+		else if (c->x86 >= 0xf) {
+			/* check CPU config space for extended APIC ID */
+			unsigned int val;
+
+			val = read_pci_config(0, 24, 0, 0x68);
+			if ((val >> 17 & 0x3) == 0x3)
+				set_cpu_cap(c, X86_FEATURE_EXTD_APICID);
+		}
 	}
 #endif
 
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/6] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call
  2016-04-05  6:29 [PATCH 0/6] x86: Misc cleanups Borislav Petkov
  2016-04-05  6:29 ` [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has() Borislav Petkov
  2016-04-05  6:29 ` [PATCH 2/6] x86/cpu: Simplify extended APIC ID detection on AMD Borislav Petkov
@ 2016-04-05  6:29 ` Borislav Petkov
  2016-04-05  8:00   ` Peter Zijlstra
  2016-04-13 11:41   ` [tip:x86/asm] " tip-bot for Borislav Petkov
  2016-04-05  6:29 ` [PATCH 4/6] x86/tsc: Save an indentation level in recalibrate_cpu_khz() Borislav Petkov
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05  6:29 UTC (permalink / raw)
  To: X86 ML; +Cc: LKML, Thomas Gleixner, Peter Zijlstra

From: Borislav Petkov <bp@suse.de>

... because the notifier-registering routine already does that. Also,
rename cpufreq_tsc() init call to something more telling.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
---
 arch/x86/kernel/tsc.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index a0346bc51833..5bb702c77e8f 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -922,9 +922,6 @@ static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
 	struct cpufreq_freqs *freq = data;
 	unsigned long *lpj;
 
-	if (cpu_has(&cpu_data(freq->cpu), X86_FEATURE_CONSTANT_TSC))
-		return 0;
-
 	lpj = &boot_cpu_data.loops_per_jiffy;
 #ifdef CONFIG_SMP
 	if (!(freq->flags & CPUFREQ_CONST_LOOPS))
@@ -954,7 +951,7 @@ static struct notifier_block time_cpufreq_notifier_block = {
 	.notifier_call  = time_cpufreq_notifier
 };
 
-static int __init cpufreq_tsc(void)
+static int __init cpufreq_register_tsc_scaling(void)
 {
 	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return 0;
@@ -965,7 +962,7 @@ static int __init cpufreq_tsc(void)
 	return 0;
 }
 
-core_initcall(cpufreq_tsc);
+core_initcall(cpufreq_register_tsc_scaling);
 
 #endif /* CONFIG_CPU_FREQ */
 
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/6] x86/tsc: Save an indentation level in recalibrate_cpu_khz()
  2016-04-05  6:29 [PATCH 0/6] x86: Misc cleanups Borislav Petkov
                   ` (2 preceding siblings ...)
  2016-04-05  6:29 ` [PATCH 3/6] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call Borislav Petkov
@ 2016-04-05  6:29 ` Borislav Petkov
  2016-04-05  8:05   ` Peter Zijlstra
  2016-04-13 11:42   ` [tip:x86/asm] " tip-bot for Borislav Petkov
  2016-04-05  6:29 ` [PATCH 5/6] x86/fpu: Remove check_fpu() indirection Borislav Petkov
  2016-04-05  6:29 ` [PATCH 6/6] x86/fpu: Get rid of x87 math exception helpers Borislav Petkov
  5 siblings, 2 replies; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05  6:29 UTC (permalink / raw)
  To: X86 ML; +Cc: LKML, Thomas Gleixner, Peter Zijlstra

From: Borislav Petkov <bp@suse.de>

... by flipping the check.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
---
 arch/x86/kernel/tsc.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 5bb702c77e8f..38ba6de56ede 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -834,15 +834,15 @@ int recalibrate_cpu_khz(void)
 #ifndef CONFIG_SMP
 	unsigned long cpu_khz_old = cpu_khz;
 
-	if (boot_cpu_has(X86_FEATURE_TSC)) {
-		tsc_khz = x86_platform.calibrate_tsc();
-		cpu_khz = tsc_khz;
-		cpu_data(0).loops_per_jiffy =
-			cpufreq_scale(cpu_data(0).loops_per_jiffy,
-					cpu_khz_old, cpu_khz);
-		return 0;
-	} else
+	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return -ENODEV;
+
+	tsc_khz = x86_platform.calibrate_tsc();
+	cpu_khz = tsc_khz;
+	cpu_data(0).loops_per_jiffy = cpufreq_scale(cpu_data(0).loops_per_jiffy,
+						    cpu_khz_old, cpu_khz);
+
+	return 0;
 #else
 	return -ENODEV;
 #endif
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/6] x86/fpu: Remove check_fpu() indirection
  2016-04-05  6:29 [PATCH 0/6] x86: Misc cleanups Borislav Petkov
                   ` (3 preceding siblings ...)
  2016-04-05  6:29 ` [PATCH 4/6] x86/tsc: Save an indentation level in recalibrate_cpu_khz() Borislav Petkov
@ 2016-04-05  6:29 ` Borislav Petkov
  2016-04-13 11:42   ` [tip:x86/asm] " tip-bot for Borislav Petkov
  2016-04-05  6:29 ` [PATCH 6/6] x86/fpu: Get rid of x87 math exception helpers Borislav Petkov
  5 siblings, 1 reply; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05  6:29 UTC (permalink / raw)
  To: X86 ML; +Cc: LKML

From: Borislav Petkov <bp@suse.de>

Rename it to fpu__init_check_bugs() and do the CPU feature check at
entry, thus getting rid of the old fpu__init_check_bugs() wrapper.

Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/kernel/fpu/bugs.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/arch/x86/kernel/fpu/bugs.c b/arch/x86/kernel/fpu/bugs.c
index 224b5ec52195..aad34aafc0e0 100644
--- a/arch/x86/kernel/fpu/bugs.c
+++ b/arch/x86/kernel/fpu/bugs.c
@@ -21,11 +21,15 @@ static double __initdata y = 3145727.0;
  * We should really only care about bugs here
  * anyway. Not features.
  */
-static void __init check_fpu(void)
+void __init fpu__init_check_bugs(void)
 {
 	u32 cr0_saved;
 	s32 fdiv_bug;
 
+	/* kernel_fpu_begin/end() relies on patched alternative instructions. */
+	if (!boot_cpu_has(X86_FEATURE_FPU))
+		return;
+
 	/* We might have CR0::TS set already, clear it: */
 	cr0_saved = read_cr0();
 	write_cr0(cr0_saved & ~X86_CR0_TS);
@@ -59,13 +63,3 @@ static void __init check_fpu(void)
 		pr_warn("Hmm, FPU with FDIV bug\n");
 	}
 }
-
-void __init fpu__init_check_bugs(void)
-{
-	/*
-	 * kernel_fpu_begin/end() in check_fpu() relies on the patched
-	 * alternative instructions.
-	 */
-	if (boot_cpu_has(X86_FEATURE_FPU))
-		check_fpu();
-}
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 6/6] x86/fpu: Get rid of x87 math exception helpers
  2016-04-05  6:29 [PATCH 0/6] x86: Misc cleanups Borislav Petkov
                   ` (4 preceding siblings ...)
  2016-04-05  6:29 ` [PATCH 5/6] x86/fpu: Remove check_fpu() indirection Borislav Petkov
@ 2016-04-05  6:29 ` Borislav Petkov
  2016-04-13 11:42   ` [tip:x86/asm] " tip-bot for Borislav Petkov
  5 siblings, 1 reply; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05  6:29 UTC (permalink / raw)
  To: X86 ML; +Cc: LKML

From: Borislav Petkov <bp@suse.de>

... and integrate their functionality into their single user
fpu__exception_code().

No functionality change.

Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/kernel/fpu/core.c | 44 +++++++++++++-------------------------------
 1 file changed, 13 insertions(+), 31 deletions(-)

diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index 1551b28398a4..97027545a72d 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -506,33 +506,6 @@ void fpu__clear(struct fpu *fpu)
  * x87 math exception handling:
  */
 
-static inline unsigned short get_fpu_cwd(struct fpu *fpu)
-{
-	if (boot_cpu_has(X86_FEATURE_FXSR)) {
-		return fpu->state.fxsave.cwd;
-	} else {
-		return (unsigned short)fpu->state.fsave.cwd;
-	}
-}
-
-static inline unsigned short get_fpu_swd(struct fpu *fpu)
-{
-	if (boot_cpu_has(X86_FEATURE_FXSR)) {
-		return fpu->state.fxsave.swd;
-	} else {
-		return (unsigned short)fpu->state.fsave.swd;
-	}
-}
-
-static inline unsigned short get_fpu_mxcsr(struct fpu *fpu)
-{
-	if (boot_cpu_has(X86_FEATURE_XMM)) {
-		return fpu->state.fxsave.mxcsr;
-	} else {
-		return MXCSR_DEFAULT;
-	}
-}
-
 int fpu__exception_code(struct fpu *fpu, int trap_nr)
 {
 	int err;
@@ -547,10 +520,15 @@ int fpu__exception_code(struct fpu *fpu, int trap_nr)
 		 * so if this combination doesn't produce any single exception,
 		 * then we have a bad program that isn't synchronizing its FPU usage
 		 * and it will suffer the consequences since we won't be able to
-		 * fully reproduce the context of the exception
+		 * fully reproduce the context of the exception.
 		 */
-		cwd = get_fpu_cwd(fpu);
-		swd = get_fpu_swd(fpu);
+		if (boot_cpu_has(X86_FEATURE_FXSR)) {
+			cwd = fpu->state.fxsave.cwd;
+			swd = fpu->state.fxsave.swd;
+		} else {
+			cwd = (unsigned short)fpu->state.fsave.cwd;
+			swd = (unsigned short)fpu->state.fsave.swd;
+		}
 
 		err = swd & ~cwd;
 	} else {
@@ -560,7 +538,11 @@ int fpu__exception_code(struct fpu *fpu, int trap_nr)
 		 * unmasked exception was caught we must mask the exception mask bits
 		 * at 0x1f80, and then use these to mask the exception bits at 0x3f.
 		 */
-		unsigned short mxcsr = get_fpu_mxcsr(fpu);
+		unsigned short mxcsr = MXCSR_DEFAULT;
+
+		if (boot_cpu_has(X86_FEATURE_XMM))
+			mxcsr = fpu->state.fxsave.mxcsr;
+
 		err = ~(mxcsr >> 7) & mxcsr;
 	}
 
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 3/6] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call
  2016-04-05  6:29 ` [PATCH 3/6] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call Borislav Petkov
@ 2016-04-05  8:00   ` Peter Zijlstra
  2016-04-13 11:41   ` [tip:x86/asm] " tip-bot for Borislav Petkov
  1 sibling, 0 replies; 17+ messages in thread
From: Peter Zijlstra @ 2016-04-05  8:00 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: X86 ML, LKML, Thomas Gleixner

On Tue, Apr 05, 2016 at 08:29:52AM +0200, Borislav Petkov wrote:
> From: Borislav Petkov <bp@suse.de>
> 
> ... because the notifier-registering routine already does that. Also,
> rename cpufreq_tsc() init call to something more telling.
> 
> Signed-off-by: Borislav Petkov <bp@suse.de>
> Cc: Thomas Gleixner <tglx@linutronix.de>

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] x86/tsc: Save an indentation level in recalibrate_cpu_khz()
  2016-04-05  6:29 ` [PATCH 4/6] x86/tsc: Save an indentation level in recalibrate_cpu_khz() Borislav Petkov
@ 2016-04-05  8:05   ` Peter Zijlstra
  2016-04-13 11:42   ` [tip:x86/asm] " tip-bot for Borislav Petkov
  1 sibling, 0 replies; 17+ messages in thread
From: Peter Zijlstra @ 2016-04-05  8:05 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: X86 ML, LKML, Thomas Gleixner

On Tue, Apr 05, 2016 at 08:29:53AM +0200, Borislav Petkov wrote:
> From: Borislav Petkov <bp@suse.de>
> 
> ... by flipping the check.
> 
> Signed-off-by: Borislav Petkov <bp@suse.de>
> Cc: Thomas Gleixner <tglx@linutronix.de>

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has()
  2016-04-05  6:29 ` [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has() Borislav Petkov
@ 2016-04-05 13:51   ` Brian Gerst
  2016-04-05 15:11     ` Borislav Petkov
  2016-04-13 11:41   ` [tip:x86/asm] x86/fpu/regset: Replace static_cpu_has() usage with boot_cpu_has() tip-bot for Borislav Petkov
  1 sibling, 1 reply; 17+ messages in thread
From: Brian Gerst @ 2016-04-05 13:51 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: X86 ML, LKML

On Tue, Apr 5, 2016 at 2:29 AM, Borislav Petkov <bp@alien8.de> wrote:
> From: Borislav Petkov <bp@suse.de>
>
> fpregs_{g,s}et() are not sizzling-hot paths to justify the need for
> static_cpu_has(). Use the normal boot_cpu_has() helper.
>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> ---
>  arch/x86/kernel/fpu/regset.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
> index bc5e76c1d7c5..81422dfb152b 100644
> --- a/arch/x86/kernel/fpu/regset.c
> +++ b/arch/x86/kernel/fpu/regset.c
> @@ -278,7 +278,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
>
>         fpu__activate_fpstate_read(fpu);
>
> -       if (!static_cpu_has(X86_FEATURE_FPU))
> +       if (!boot_cpu_has(X86_FEATURE_FPU))
>                 return fpregs_soft_get(target, regset, pos, count, kbuf, ubuf);
>
>         if (!boot_cpu_has(X86_FEATURE_FXSR))
> @@ -309,7 +309,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
>         fpu__activate_fpstate_write(fpu);
>         fpstate_sanitize_xstate(fpu);
>
> -       if (!static_cpu_has(X86_FEATURE_FPU))
> +       if (!boot_cpu_has(X86_FEATURE_FPU))
>                 return fpregs_soft_set(target, regset, pos, count, kbuf, ubuf);
>
>         if (!boot_cpu_has(X86_FEATURE_FXSR))

I think the general rule should be always use static_cpu_has() for
runtime checks, since it reduces down to a single jmp/nop instruction
after alternatives run.  Even if it's not a hot path, it saves a bit
of runtime memory.  boot_cpu_has() is fine for run-once init code.

--
Brian Gerst

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has()
  2016-04-05 13:51   ` Brian Gerst
@ 2016-04-05 15:11     ` Borislav Petkov
  0 siblings, 0 replies; 17+ messages in thread
From: Borislav Petkov @ 2016-04-05 15:11 UTC (permalink / raw)
  To: Brian Gerst; +Cc: X86 ML, LKML

On Tue, Apr 05, 2016 at 09:51:55AM -0400, Brian Gerst wrote:
> I think the general rule should be always use static_cpu_has() for
> runtime checks, since it reduces down to a single jmp/nop instruction
> after alternatives run.  Even if it's not a hot path, it saves a bit
> of runtime memory.

So gcc generates a MOV and a TEST for boot_cpu_has(). Not exactly the
bloat or slowdown.

So I look at those differently: static_cpu_has()

a) should be used on hotpaths

b) is used as such to annotate those - i.e., "ah, there's a
static_cpu_has(), this is a hot path, I better be careful what I'm doing
here."

boot_cpu_has() in all the rest.

And saving a couple of bytes per call site but increasing alternatives
application time by milli- or microseconds... Meh. I don't see it being
really worth the trouble. But this is just me.

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [tip:x86/asm] x86/fpu/regset: Replace static_cpu_has() usage with boot_cpu_has()
  2016-04-05  6:29 ` [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has() Borislav Petkov
  2016-04-05 13:51   ` Brian Gerst
@ 2016-04-13 11:41   ` tip-bot for Borislav Petkov
  1 sibling, 0 replies; 17+ messages in thread
From: tip-bot for Borislav Petkov @ 2016-04-13 11:41 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: hpa, mingo, torvalds, bp, luto, brgerst, bp, linux-kernel,
	dvlasenk, peterz, tglx

Commit-ID:  78df526c74a4db696e1e058b9869471937d0773b
Gitweb:     http://git.kernel.org/tip/78df526c74a4db696e1e058b9869471937d0773b
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 5 Apr 2016 08:29:50 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Apr 2016 11:37:42 +0200

x86/fpu/regset: Replace static_cpu_has() usage with boot_cpu_has()

fpregs_{g,s}et() are not sizzling-hot paths to justify the need for
static_cpu_has(). Use the normal boot_cpu_has() helper.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1459837795-2588-2-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/fpu/regset.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
index bc5e76c..81422df 100644
--- a/arch/x86/kernel/fpu/regset.c
+++ b/arch/x86/kernel/fpu/regset.c
@@ -278,7 +278,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
 
 	fpu__activate_fpstate_read(fpu);
 
-	if (!static_cpu_has(X86_FEATURE_FPU))
+	if (!boot_cpu_has(X86_FEATURE_FPU))
 		return fpregs_soft_get(target, regset, pos, count, kbuf, ubuf);
 
 	if (!boot_cpu_has(X86_FEATURE_FXSR))
@@ -309,7 +309,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
 	fpu__activate_fpstate_write(fpu);
 	fpstate_sanitize_xstate(fpu);
 
-	if (!static_cpu_has(X86_FEATURE_FPU))
+	if (!boot_cpu_has(X86_FEATURE_FPU))
 		return fpregs_soft_set(target, regset, pos, count, kbuf, ubuf);
 
 	if (!boot_cpu_has(X86_FEATURE_FXSR))

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:x86/asm] x86/cpu: Simplify extended APIC ID detection on AMD
  2016-04-05  6:29 ` [PATCH 2/6] x86/cpu: Simplify extended APIC ID detection on AMD Borislav Petkov
@ 2016-04-13 11:41   ` tip-bot for Borislav Petkov
  0 siblings, 0 replies; 17+ messages in thread
From: tip-bot for Borislav Petkov @ 2016-04-13 11:41 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: mingo, tglx, brgerst, bp, linux-kernel, torvalds, dvlasenk, hpa,
	bp, peterz, luto

Commit-ID:  425d8c2fc5e6dddbad083502bb77c7beae545620
Gitweb:     http://git.kernel.org/tip/425d8c2fc5e6dddbad083502bb77c7beae545620
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 5 Apr 2016 08:29:51 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Apr 2016 11:37:42 +0200

x86/cpu: Simplify extended APIC ID detection on AMD

Both if-branches are under if (boot_cpu_has(X86_FEATURE_APIC)), unify
them.

Also, simplify the test for bits:

- 17 ("ApicExtBrdCst: APIC extended broadcast enable") and
- 18 ("ApicExtId: APIC extended ID enable.")

in "D18F0x68 Link Transaction Control."

No functionality change.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1459837795-2588-3-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/cpu/amd.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 54f7b44..c343a54 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -565,14 +565,17 @@ static void early_init_amd(struct cpuinfo_x86 *c)
 	 * can safely set X86_FEATURE_EXTD_APICID unconditionally for families
 	 * after 16h.
 	 */
-	if (boot_cpu_has(X86_FEATURE_APIC) && c->x86 > 0x16) {
-		set_cpu_cap(c, X86_FEATURE_EXTD_APICID);
-	} else if (boot_cpu_has(X86_FEATURE_APIC) && c->x86 >= 0xf) {
-		/* check CPU config space for extended APIC ID */
-		unsigned int val;
-		val = read_pci_config(0, 24, 0, 0x68);
-		if ((val & ((1 << 17) | (1 << 18))) == ((1 << 17) | (1 << 18)))
+	if (boot_cpu_has(X86_FEATURE_APIC)) {
+		if (c->x86 > 0x16)
 			set_cpu_cap(c, X86_FEATURE_EXTD_APICID);
+		else if (c->x86 >= 0xf) {
+			/* check CPU config space for extended APIC ID */
+			unsigned int val;
+
+			val = read_pci_config(0, 24, 0, 0x68);
+			if ((val >> 17 & 0x3) == 0x3)
+				set_cpu_cap(c, X86_FEATURE_EXTD_APICID);
+		}
 	}
 #endif
 

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:x86/asm] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call
  2016-04-05  6:29 ` [PATCH 3/6] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call Borislav Petkov
  2016-04-05  8:00   ` Peter Zijlstra
@ 2016-04-13 11:41   ` tip-bot for Borislav Petkov
  1 sibling, 0 replies; 17+ messages in thread
From: tip-bot for Borislav Petkov @ 2016-04-13 11:41 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: bp, torvalds, mingo, bp, peterz, brgerst, dvlasenk, hpa, tglx,
	linux-kernel, luto

Commit-ID:  a841cca74ea7612508aee161c89987b2646ed769
Gitweb:     http://git.kernel.org/tip/a841cca74ea7612508aee161c89987b2646ed769
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 5 Apr 2016 08:29:52 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Apr 2016 11:37:43 +0200

x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call

... because the notifier-registering routine already does that. Also,
rename cpufreq_tsc() init call to something more telling.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1459837795-2588-4-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/tsc.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index a0346bc..5bb702c 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -922,9 +922,6 @@ static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
 	struct cpufreq_freqs *freq = data;
 	unsigned long *lpj;
 
-	if (cpu_has(&cpu_data(freq->cpu), X86_FEATURE_CONSTANT_TSC))
-		return 0;
-
 	lpj = &boot_cpu_data.loops_per_jiffy;
 #ifdef CONFIG_SMP
 	if (!(freq->flags & CPUFREQ_CONST_LOOPS))
@@ -954,7 +951,7 @@ static struct notifier_block time_cpufreq_notifier_block = {
 	.notifier_call  = time_cpufreq_notifier
 };
 
-static int __init cpufreq_tsc(void)
+static int __init cpufreq_register_tsc_scaling(void)
 {
 	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return 0;
@@ -965,7 +962,7 @@ static int __init cpufreq_tsc(void)
 	return 0;
 }
 
-core_initcall(cpufreq_tsc);
+core_initcall(cpufreq_register_tsc_scaling);
 
 #endif /* CONFIG_CPU_FREQ */
 

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:x86/asm] x86/tsc: Save an indentation level in recalibrate_cpu_khz()
  2016-04-05  6:29 ` [PATCH 4/6] x86/tsc: Save an indentation level in recalibrate_cpu_khz() Borislav Petkov
  2016-04-05  8:05   ` Peter Zijlstra
@ 2016-04-13 11:42   ` tip-bot for Borislav Petkov
  1 sibling, 0 replies; 17+ messages in thread
From: tip-bot for Borislav Petkov @ 2016-04-13 11:42 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: luto, brgerst, bp, dvlasenk, hpa, torvalds, mingo, tglx, bp,
	peterz, linux-kernel

Commit-ID:  eff4677e9fb9b680d1d5f6ba079116548d072b7e
Gitweb:     http://git.kernel.org/tip/eff4677e9fb9b680d1d5f6ba079116548d072b7e
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 5 Apr 2016 08:29:53 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Apr 2016 11:37:43 +0200

x86/tsc: Save an indentation level in recalibrate_cpu_khz()

... by flipping the check.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1459837795-2588-5-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/tsc.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 5bb702c..38ba6de 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -834,15 +834,15 @@ int recalibrate_cpu_khz(void)
 #ifndef CONFIG_SMP
 	unsigned long cpu_khz_old = cpu_khz;
 
-	if (boot_cpu_has(X86_FEATURE_TSC)) {
-		tsc_khz = x86_platform.calibrate_tsc();
-		cpu_khz = tsc_khz;
-		cpu_data(0).loops_per_jiffy =
-			cpufreq_scale(cpu_data(0).loops_per_jiffy,
-					cpu_khz_old, cpu_khz);
-		return 0;
-	} else
+	if (!boot_cpu_has(X86_FEATURE_TSC))
 		return -ENODEV;
+
+	tsc_khz = x86_platform.calibrate_tsc();
+	cpu_khz = tsc_khz;
+	cpu_data(0).loops_per_jiffy = cpufreq_scale(cpu_data(0).loops_per_jiffy,
+						    cpu_khz_old, cpu_khz);
+
+	return 0;
 #else
 	return -ENODEV;
 #endif

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:x86/asm] x86/fpu: Remove check_fpu() indirection
  2016-04-05  6:29 ` [PATCH 5/6] x86/fpu: Remove check_fpu() indirection Borislav Petkov
@ 2016-04-13 11:42   ` tip-bot for Borislav Petkov
  0 siblings, 0 replies; 17+ messages in thread
From: tip-bot for Borislav Petkov @ 2016-04-13 11:42 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: bp, brgerst, dvlasenk, linux-kernel, tglx, mingo, hpa, bp, luto,
	peterz, torvalds

Commit-ID:  de82fbc3823b7b15ee03466ebfb1c5ec7cc1a941
Gitweb:     http://git.kernel.org/tip/de82fbc3823b7b15ee03466ebfb1c5ec7cc1a941
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 5 Apr 2016 08:29:54 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Apr 2016 11:37:43 +0200

x86/fpu: Remove check_fpu() indirection

Rename it to fpu__init_check_bugs() and do the CPU feature check at
entry, thus getting rid of the old fpu__init_check_bugs() wrapper.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1459837795-2588-6-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/fpu/bugs.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/arch/x86/kernel/fpu/bugs.c b/arch/x86/kernel/fpu/bugs.c
index 224b5ec..aad34aa 100644
--- a/arch/x86/kernel/fpu/bugs.c
+++ b/arch/x86/kernel/fpu/bugs.c
@@ -21,11 +21,15 @@ static double __initdata y = 3145727.0;
  * We should really only care about bugs here
  * anyway. Not features.
  */
-static void __init check_fpu(void)
+void __init fpu__init_check_bugs(void)
 {
 	u32 cr0_saved;
 	s32 fdiv_bug;
 
+	/* kernel_fpu_begin/end() relies on patched alternative instructions. */
+	if (!boot_cpu_has(X86_FEATURE_FPU))
+		return;
+
 	/* We might have CR0::TS set already, clear it: */
 	cr0_saved = read_cr0();
 	write_cr0(cr0_saved & ~X86_CR0_TS);
@@ -59,13 +63,3 @@ static void __init check_fpu(void)
 		pr_warn("Hmm, FPU with FDIV bug\n");
 	}
 }
-
-void __init fpu__init_check_bugs(void)
-{
-	/*
-	 * kernel_fpu_begin/end() in check_fpu() relies on the patched
-	 * alternative instructions.
-	 */
-	if (boot_cpu_has(X86_FEATURE_FPU))
-		check_fpu();
-}

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:x86/asm] x86/fpu: Get rid of x87 math exception helpers
  2016-04-05  6:29 ` [PATCH 6/6] x86/fpu: Get rid of x87 math exception helpers Borislav Petkov
@ 2016-04-13 11:42   ` tip-bot for Borislav Petkov
  0 siblings, 0 replies; 17+ messages in thread
From: tip-bot for Borislav Petkov @ 2016-04-13 11:42 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: bp, luto, torvalds, bp, peterz, dvlasenk, linux-kernel, tglx,
	mingo, hpa, brgerst

Commit-ID:  6aa6dbfced51dec6cde159c6167ad3dad6add823
Gitweb:     http://git.kernel.org/tip/6aa6dbfced51dec6cde159c6167ad3dad6add823
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 5 Apr 2016 08:29:55 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Apr 2016 11:37:44 +0200

x86/fpu: Get rid of x87 math exception helpers

... and integrate their functionality into their single user
fpu__exception_code().

No functionality change.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1459837795-2588-7-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/fpu/core.c | 44 +++++++++++++-------------------------------
 1 file changed, 13 insertions(+), 31 deletions(-)

diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index 1551b28..9702754 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -506,33 +506,6 @@ void fpu__clear(struct fpu *fpu)
  * x87 math exception handling:
  */
 
-static inline unsigned short get_fpu_cwd(struct fpu *fpu)
-{
-	if (boot_cpu_has(X86_FEATURE_FXSR)) {
-		return fpu->state.fxsave.cwd;
-	} else {
-		return (unsigned short)fpu->state.fsave.cwd;
-	}
-}
-
-static inline unsigned short get_fpu_swd(struct fpu *fpu)
-{
-	if (boot_cpu_has(X86_FEATURE_FXSR)) {
-		return fpu->state.fxsave.swd;
-	} else {
-		return (unsigned short)fpu->state.fsave.swd;
-	}
-}
-
-static inline unsigned short get_fpu_mxcsr(struct fpu *fpu)
-{
-	if (boot_cpu_has(X86_FEATURE_XMM)) {
-		return fpu->state.fxsave.mxcsr;
-	} else {
-		return MXCSR_DEFAULT;
-	}
-}
-
 int fpu__exception_code(struct fpu *fpu, int trap_nr)
 {
 	int err;
@@ -547,10 +520,15 @@ int fpu__exception_code(struct fpu *fpu, int trap_nr)
 		 * so if this combination doesn't produce any single exception,
 		 * then we have a bad program that isn't synchronizing its FPU usage
 		 * and it will suffer the consequences since we won't be able to
-		 * fully reproduce the context of the exception
+		 * fully reproduce the context of the exception.
 		 */
-		cwd = get_fpu_cwd(fpu);
-		swd = get_fpu_swd(fpu);
+		if (boot_cpu_has(X86_FEATURE_FXSR)) {
+			cwd = fpu->state.fxsave.cwd;
+			swd = fpu->state.fxsave.swd;
+		} else {
+			cwd = (unsigned short)fpu->state.fsave.cwd;
+			swd = (unsigned short)fpu->state.fsave.swd;
+		}
 
 		err = swd & ~cwd;
 	} else {
@@ -560,7 +538,11 @@ int fpu__exception_code(struct fpu *fpu, int trap_nr)
 		 * unmasked exception was caught we must mask the exception mask bits
 		 * at 0x1f80, and then use these to mask the exception bits at 0x3f.
 		 */
-		unsigned short mxcsr = get_fpu_mxcsr(fpu);
+		unsigned short mxcsr = MXCSR_DEFAULT;
+
+		if (boot_cpu_has(X86_FEATURE_XMM))
+			mxcsr = fpu->state.fxsave.mxcsr;
+
 		err = ~(mxcsr >> 7) & mxcsr;
 	}
 

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2016-04-13 11:44 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-05  6:29 [PATCH 0/6] x86: Misc cleanups Borislav Petkov
2016-04-05  6:29 ` [PATCH 1/6] x86/fpu/regset: Use boot_cpu_has() Borislav Petkov
2016-04-05 13:51   ` Brian Gerst
2016-04-05 15:11     ` Borislav Petkov
2016-04-13 11:41   ` [tip:x86/asm] x86/fpu/regset: Replace static_cpu_has() usage with boot_cpu_has() tip-bot for Borislav Petkov
2016-04-05  6:29 ` [PATCH 2/6] x86/cpu: Simplify extended APIC ID detection on AMD Borislav Petkov
2016-04-13 11:41   ` [tip:x86/asm] " tip-bot for Borislav Petkov
2016-04-05  6:29 ` [PATCH 3/6] x86/tsc: Do not check X86_FEATURE_CONSTANT_TSC in notifier call Borislav Petkov
2016-04-05  8:00   ` Peter Zijlstra
2016-04-13 11:41   ` [tip:x86/asm] " tip-bot for Borislav Petkov
2016-04-05  6:29 ` [PATCH 4/6] x86/tsc: Save an indentation level in recalibrate_cpu_khz() Borislav Petkov
2016-04-05  8:05   ` Peter Zijlstra
2016-04-13 11:42   ` [tip:x86/asm] " tip-bot for Borislav Petkov
2016-04-05  6:29 ` [PATCH 5/6] x86/fpu: Remove check_fpu() indirection Borislav Petkov
2016-04-13 11:42   ` [tip:x86/asm] " tip-bot for Borislav Petkov
2016-04-05  6:29 ` [PATCH 6/6] x86/fpu: Get rid of x87 math exception helpers Borislav Petkov
2016-04-13 11:42   ` [tip:x86/asm] " tip-bot for Borislav Petkov

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.