diff options
author | Fenghua Yu <fenghua.yu@intel.com> | 2012-05-25 03:19:45 +0200 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-06-30 00:33:34 +0200 |
commit | 954e482bde20b0e208fd4d34ef26e10afd194600 (patch) | |
tree | a98702fdde1d47b31851cee7b81849dec8b91f09 /arch/x86/kernel/x8664_ksyms_64.c | |
parent | x86/alternatives: Use atomic_xchg() instead atomic_dec_and_test() for stop_ma... (diff) | |
download | linux-954e482bde20b0e208fd4d34ef26e10afd194600.tar.xz linux-954e482bde20b0e208fd4d34ef26e10afd194600.zip |
x86/copy_user_generic: Optimize copy_user_generic with CPU erms feature
According to Intel 64 and IA-32 SDM and Optimization Reference Manual, beginning
with Ivybridge, REG string operation using MOVSB and STOSB can provide both
flexible and high-performance REG string operations in cases like memory copy.
Enhancement availability is indicated by CPUID.7.0.EBX[9] (Enhanced REP MOVSB/
STOSB).
If CPU erms feature is detected, patch copy_user_generic with enhanced fast
string version of copy_user_generic.
A few new macros are defined to reduce duplicate code in ALTERNATIVE and
ALTERNATIVE_2.
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Link: http://lkml.kernel.org/r/1337908785-14015-1-git-send-email-fenghua.yu@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/kernel/x8664_ksyms_64.c')
-rw-r--r-- | arch/x86/kernel/x8664_ksyms_64.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c index 9796c2f3d074..6020f6f5927c 100644 --- a/arch/x86/kernel/x8664_ksyms_64.c +++ b/arch/x86/kernel/x8664_ksyms_64.c @@ -28,6 +28,7 @@ EXPORT_SYMBOL(__put_user_8); EXPORT_SYMBOL(copy_user_generic_string); EXPORT_SYMBOL(copy_user_generic_unrolled); +EXPORT_SYMBOL(copy_user_enhanced_fast_string); EXPORT_SYMBOL(__copy_user_nocache); EXPORT_SYMBOL(_copy_from_user); EXPORT_SYMBOL(_copy_to_user); |