mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
selftests/x86/apx: Add APX test
The extended general-purpose registers for APX may contain random data, which is currently assumed by the xstate testing framework. This allows the testing of the new userspace feature using the common test code. Invoke the test entry function from apx.c after enumerating the state component and adding it to the support list Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Sohil Mehta <sohil.mehta@intel.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Oleg Nesterov <oleg@redhat.com> Link: https://lore.kernel.org/r/20250416021720.12305-6-chang.seok.bae@intel.com
This commit is contained in:
parent
50c5b071e2
commit
ab6f87ddd0
|
|
@ -19,7 +19,7 @@ TARGETS_C_32BIT_ONLY := entry_from_vm86 test_syscall_vdso unwind_vdso \
|
|||
test_FCMOV test_FCOMI test_FISTTP \
|
||||
vdso_restorer
|
||||
TARGETS_C_64BIT_ONLY := fsgsbase sysret_rip syscall_numbering \
|
||||
corrupt_xstate_header amx lam test_shadow_stack avx
|
||||
corrupt_xstate_header amx lam test_shadow_stack avx apx
|
||||
# Some selftests require 32bit support enabled also on 64bit systems
|
||||
TARGETS_C_32BIT_NEEDED := ldt_gdt ptrace_syscall
|
||||
|
||||
|
|
@ -136,3 +136,4 @@ $(OUTPUT)/nx_stack_64: CFLAGS += -Wl,-z,noexecstack
|
|||
$(OUTPUT)/avx_64: CFLAGS += -mno-avx -mno-avx512f
|
||||
$(OUTPUT)/amx_64: EXTRA_FILES += xstate.c
|
||||
$(OUTPUT)/avx_64: EXTRA_FILES += xstate.c
|
||||
$(OUTPUT)/apx_64: EXTRA_FILES += xstate.c
|
||||
|
|
|
|||
10
tools/testing/selftests/x86/apx.c
Normal file
10
tools/testing/selftests/x86/apx.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include "xstate.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
test_xstate(XFEATURE_APX);
|
||||
}
|
||||
|
|
@ -31,7 +31,8 @@
|
|||
(1 << XFEATURE_OPMASK) | \
|
||||
(1 << XFEATURE_ZMM_Hi256) | \
|
||||
(1 << XFEATURE_Hi16_ZMM) | \
|
||||
(1 << XFEATURE_XTILEDATA))
|
||||
(1 << XFEATURE_XTILEDATA) | \
|
||||
(1 << XFEATURE_APX))
|
||||
|
||||
static inline uint64_t xgetbv(uint32_t index)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ enum xfeature {
|
|||
XFEATURE_RSRVD_COMP_16,
|
||||
XFEATURE_XTILECFG,
|
||||
XFEATURE_XTILEDATA,
|
||||
XFEATURE_APX,
|
||||
|
||||
XFEATURE_MAX,
|
||||
};
|
||||
|
|
@ -59,6 +60,7 @@ static const char *xfeature_names[] =
|
|||
"unknown xstate feature",
|
||||
"AMX Tile config",
|
||||
"AMX Tile data",
|
||||
"APX registers",
|
||||
"unknown xstate feature",
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user