* [PATCH] x86/cpufeature: Speedup cpu_feature_enabled()
@ 2016-02-15 23:19 Borislav Petkov
2016-02-16 7:56 ` [tip:x86/asm] x86/cpufeature: Speed up cpu_feature_enabled() tip-bot for Borislav Petkov
0 siblings, 1 reply; 2+ messages in thread
From: Borislav Petkov @ 2016-02-15 23:19 UTC (permalink / raw)
To: X86 ML; +Cc: LKML, Joerg Roedel
From: Borislav Petkov <bp@suse.de>
When gcc cannot do constant folding for this macro, it falls back to
cpu_has(). But static_cpu_has() is optimal and it works at all times
now. So use it and speedup the fallback case.
Before we had this:
mov 0x99d674(%rip),%rdx # ffffffff81b0d9f4 <boot_cpu_data+0x34>
shr $0x2e,%rdx
and $0x1,%edx
jne ffffffff811704e9 <do_munmap+0x3f9>
After alternatives patching, it turns into:
jmp 0xffffffff81170390
nopl (%rax)
...
callq ffffffff81056e00 <mpx_notify_unmap>
ffffffff81170390: mov 0x170(%r12),%rdi
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Joerg Roedel <joro@8bytes.org>
---
arch/x86/include/asm/cpufeature.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index 9fba7a5dd24a..68e4e8258b84 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -88,8 +88,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
* is not relevant.
*/
#define cpu_feature_enabled(bit) \
- (__builtin_constant_p(bit) && DISABLED_MASK_BIT_SET(bit) ? 0 : \
- cpu_has(&boot_cpu_data, bit))
+ (__builtin_constant_p(bit) && DISABLED_MASK_BIT_SET(bit) ? 0 : static_cpu_has(bit))
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
--
2.3.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [tip:x86/asm] x86/cpufeature: Speed up cpu_feature_enabled()
2016-02-15 23:19 [PATCH] x86/cpufeature: Speedup cpu_feature_enabled() Borislav Petkov
@ 2016-02-16 7:56 ` tip-bot for Borislav Petkov
0 siblings, 0 replies; 2+ messages in thread
From: tip-bot for Borislav Petkov @ 2016-02-16 7:56 UTC (permalink / raw)
To: linux-tip-commits
Cc: peterz, bp, joro, mingo, linux-kernel, hpa, torvalds, tglx
Commit-ID: f2cc8e0791c70833758101d9756609a08dd601ec
Gitweb: http://git.kernel.org/tip/f2cc8e0791c70833758101d9756609a08dd601ec
Author: Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 16 Feb 2016 00:19:18 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 16 Feb 2016 08:45:15 +0100
x86/cpufeature: Speed up cpu_feature_enabled()
When GCC cannot do constant folding for this macro, it falls back to
cpu_has(). But static_cpu_has() is optimal and it works at all times
now. So use it and speedup the fallback case.
Before we had this:
mov 0x99d674(%rip),%rdx # ffffffff81b0d9f4 <boot_cpu_data+0x34>
shr $0x2e,%rdx
and $0x1,%edx
jne ffffffff811704e9 <do_munmap+0x3f9>
After alternatives patching, it turns into:
jmp 0xffffffff81170390
nopl (%rax)
...
callq ffffffff81056e00 <mpx_notify_unmap>
ffffffff81170390: mov 0x170(%r12),%rdi
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Joerg Roedel <joro@8bytes.org>
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/1455578358-28347-1-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/include/asm/cpufeature.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index 9fba7a5..68e4e82 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -88,8 +88,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
* is not relevant.
*/
#define cpu_feature_enabled(bit) \
- (__builtin_constant_p(bit) && DISABLED_MASK_BIT_SET(bit) ? 0 : \
- cpu_has(&boot_cpu_data, bit))
+ (__builtin_constant_p(bit) && DISABLED_MASK_BIT_SET(bit) ? 0 : static_cpu_has(bit))
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-02-16 7:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-15 23:19 [PATCH] x86/cpufeature: Speedup cpu_feature_enabled() Borislav Petkov
2016-02-16 7:56 ` [tip:x86/asm] x86/cpufeature: Speed up cpu_feature_enabled() 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.