forked from Minki/linux
1f27a050fc
To cope with the changes in:12c89130a5
("x86/asm/memcpy_mcsafe: Add write-protection-fault handling")60622d6822
("x86/asm/memcpy_mcsafe: Return bytes remaining")bd131544aa
("x86/asm/memcpy_mcsafe: Add labels for __memcpy_mcsafe() write fault handling")da7bc9c57e
("x86/asm/memcpy_mcsafe: Remove loop unrolling") This needed introducing a file with a copy of the mcsafe_handle_tail() function, that is used in the new memcpy_64.S file, as well as a dummy mcsafe_test.h header. Testing it: $ nm ~/bin/perf | grep mcsafe 0000000000484130 T mcsafe_handle_tail 0000000000484300 T __memcpy_mcsafe $ $ perf bench mem memcpy # Running 'mem/memcpy' benchmark: # function 'default' (Default memcpy() provided by glibc) # Copying 1MB bytes ... 44.389205 GB/sec # function 'x86-64-unrolled' (unrolled memcpy() in arch/x86/lib/memcpy_64.S) # Copying 1MB bytes ... 22.710756 GB/sec # function 'x86-64-movsq' (movsq-based memcpy() in arch/x86/lib/memcpy_64.S) # Copying 1MB bytes ... 42.459239 GB/sec # function 'x86-64-movsb' (movsb-based memcpy() in arch/x86/lib/memcpy_64.S) # Copying 1MB bytes ... 42.459239 GB/sec $ This silences this perf tools build warning: Warning: Kernel ABI header at 'tools/arch/x86/lib/memcpy_64.S' differs from latest version at 'arch/x86/lib/memcpy_64.S' Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Mika Penttilä <mika.penttila@nextfour.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Tony Luck <tony.luck@intel.com> Cc: Wang Nan <wangnan0@huawei.com> Link: https://lkml.kernel.org/n/tip-igdpciheradk3gb3qqal52d0@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
18 lines
583 B
ArmAsm
18 lines
583 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
/* Various wrappers to make the kernel .S file build in user-space: */
|
|
|
|
#define memcpy MEMCPY /* don't hide glibc's memcpy() */
|
|
#define altinstr_replacement text
|
|
#define globl p2align 4; .globl
|
|
#define _ASM_EXTABLE_FAULT(x, y)
|
|
#define _ASM_EXTABLE(x, y)
|
|
|
|
#include "../../arch/x86/lib/memcpy_64.S"
|
|
/*
|
|
* We need to provide note.GNU-stack section, saying that we want
|
|
* NOT executable stack. Otherwise the final linking will assume that
|
|
* the ELF stack should not be restricted at all and set it RWX.
|
|
*/
|
|
.section .note.GNU-stack,"",@progbits
|