aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/kselftest/runner.sh
diff options
context:
space:
mode:
authorTong Bo <bo.tong@intel.com>2019-04-19 15:10:55 +0800
committerShuah Khan <skhan@linuxfoundation.org>2019-05-21 09:24:30 -0600
commita20d452a2db7e092a9b214976306a36857b88ade (patch)
treea606e24366f9598ee93da9a9a75c88acd7ab3121 /tools/testing/selftests/kselftest/runner.sh
parentLinux 5.2-rc1 (diff)
downloadlinux-dev-a20d452a2db7e092a9b214976306a36857b88ade.tar.xz
linux-dev-a20d452a2db7e092a9b214976306a36857b88ade.zip
selftests/x86: Support Atom for syscall_arg_fault test
Atom-based CPUs trigger stack fault when invoke 32-bit SYSENTER instruction with invalid register values. So we also need SIGBUS handling in this case. Following is assembly when the fault exception happens. (gdb) disassemble $eip Dump of assembler code for function __kernel_vsyscall: 0xf7fd8fe0 <+0>: push %ecx 0xf7fd8fe1 <+1>: push %edx 0xf7fd8fe2 <+2>: push %ebp 0xf7fd8fe3 <+3>: mov %esp,%ebp 0xf7fd8fe5 <+5>: sysenter 0xf7fd8fe7 <+7>: int $0x80 => 0xf7fd8fe9 <+9>: pop %ebp 0xf7fd8fea <+10>: pop %edx 0xf7fd8feb <+11>: pop %ecx 0xf7fd8fec <+12>: ret End of assembler dump. According to Intel SDM, this could also be a Stack Segment Fault(#SS, 12), except a normal Page Fault(#PF, 14). Especially, in section 6.9 of Vol.3A, both stack and page faults are within the 10th(lowest priority) class, and as it said, "exceptions within each class are implementation-dependent and may vary from processor to processor". It's expected for processors like Intel Atom to trigger stack fault(SIGBUS), while we get page fault(SIGSEGV) from common Core processors. Signed-off-by: Tong Bo <bo.tong@intel.com> Acked-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Diffstat (limited to 'tools/testing/selftests/kselftest/runner.sh')
0 files changed, 0 insertions, 0 deletions