KERNEL SELFTESTS: linux_headers_dir is /usr/src/linux-headers-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028 2018-06-25 10:40:02 ln -sf /usr/bin/clang-7 /usr/bin/clang 2018-06-25 10:40:03 ln -sf /usr/bin/llc-7 /usr/bin/llc 2018-06-25 10:40:03 make run_tests -C x86 make: Entering directory '/usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86' gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/single_step_syscall_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 single_step_syscall.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/sysret_ss_attrs_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 sysret_ss_attrs.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/syscall_nt_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 syscall_nt.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_mremap_vdso_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_mremap_vdso.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/check_initial_reg_state_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -Wl,-ereal_start -static -DCAN_BUILD_32 -DCAN_BUILD_64 check_initial_reg_state.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/sigreturn_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 sigreturn.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/iopl_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 iopl.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/mpx-mini-test_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 mpx-mini-test.c -lrt -ldl -lm mpx-mini-test.c: In function ‘handler’: mpx-mini-test.c:422:0: warning: "SEGV_BNDERR" redefined #define SEGV_BNDERR 3 /* failed address bound checks */ In file included from /usr/include/signal.h:58:0, from mpx-mini-test.c:29: /usr/include/bits/siginfo-consts.h:117:0: note: this is the location of the previous definition # define SEGV_BNDERR SEGV_BNDERR gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/ioperm_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 ioperm.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_vdso_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_vdso.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_vsyscall_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_vsyscall.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/entry_from_vm86_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 entry_from_vm86.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/syscall_arg_fault_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 syscall_arg_fault.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_syscall_vdso_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_syscall_vdso.c thunks_32.S -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/unwind_vdso_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 unwind_vdso.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_FCMOV_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_FCMOV.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_FCOMI_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_FCOMI.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_FISTTP_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_FISTTP.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/vdso_restorer_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 vdso_restorer.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/ldt_gdt_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 ldt_gdt.c -lrt -ldl -lm gcc -m32 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/ptrace_syscall_32 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 ptrace_syscall.c raw_syscall_helper_32.S -lrt -ldl -lm gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/single_step_syscall_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 single_step_syscall.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/sysret_ss_attrs_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 sysret_ss_attrs.c thunks.S -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/syscall_nt_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 syscall_nt.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_mremap_vdso_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_mremap_vdso.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/check_initial_reg_state_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -Wl,-ereal_start -static -DCAN_BUILD_32 -DCAN_BUILD_64 check_initial_reg_state.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/sigreturn_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 sigreturn.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/iopl_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 iopl.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/mpx-mini-test_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 mpx-mini-test.c -lrt -ldl mpx-mini-test.c: In function ‘handler’: mpx-mini-test.c:422:0: warning: "SEGV_BNDERR" redefined #define SEGV_BNDERR 3 /* failed address bound checks */ In file included from /usr/include/signal.h:58:0, from mpx-mini-test.c:29: /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h:117:0: note: this is the location of the previous definition # define SEGV_BNDERR SEGV_BNDERR gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/ioperm_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 ioperm.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_vdso_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_vdso.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/test_vsyscall_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 test_vsyscall.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/fsgsbase_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 fsgsbase.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/sysret_rip_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 sysret_rip.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/ldt_gdt_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 ldt_gdt.c -lrt -ldl gcc -m64 -o /usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86/ptrace_syscall_64 -O2 -g -std=gnu99 -pthread -Wall -no-pie -DCAN_BUILD_32 -DCAN_BUILD_64 ptrace_syscall.c -lrt -ldl TAP version 13 selftests: single_step_syscall_32 ======================================== [RUN] Set TF and check nop [OK] Survived with TF set and 14 traps [RUN] Set TF and check int80 [OK] Survived with TF set and 14 traps [RUN] Set TF and check a fast syscall [OK] Survived with TF set and 43 traps [RUN] Fast syscall with TF cleared [OK] Nothing unexpected happened ok 1..1 selftests: single_step_syscall_32 [PASS] selftests: sysret_ss_attrs_32 ======================================== [RUN] Syscalls followed by SS validation [OK] We survived ok 1..2 selftests: sysret_ss_attrs_32 [PASS] selftests: syscall_nt_32 ======================================== [RUN] Set NT and issue a syscall [OK] The syscall worked and flags are still set [RUN] Set NT|TF and issue a syscall [OK] The syscall worked and flags are still set ok 1..3 selftests: syscall_nt_32 [PASS] selftests: test_mremap_vdso_32 ======================================== AT_SYSINFO_EHDR is 0xf7fc1000 [NOTE] Moving vDSO: [0xf7fc1000, 0xf7fc2000] -> [0xf7fbb000, 0xf7fbc000] [NOTE] vDSO partial move failed, will try with bigger size [NOTE] Moving vDSO: [0xf7fc1000, 0xf7fc3000] -> [0xf7fba000, 0xf7fbc000] [OK] ok 1..4 selftests: test_mremap_vdso_32 [PASS] selftests: check_initial_reg_state_32 ======================================== [OK] All GPRs except SP are 0 [OK] FLAGS is 0x202 ok 1..5 selftests: check_initial_reg_state_32 [PASS] selftests: sigreturn_32 ======================================== [OK] set_thread_area refused 16-bit data [OK] set_thread_area refused 16-bit data [RUN] Valid sigreturn: 64-bit CS (33), 32-bit SS (2b, GDT) SP: 5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 32-bit CS (23), 32-bit SS (2b, GDT) SP: 5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 16-bit CS (37), 32-bit SS (2b, GDT) SP: 5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 64-bit CS (33), 16-bit SS (3f) SP: 5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 32-bit CS (23), 16-bit SS (3f) SP: 5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 16-bit CS (37), 16-bit SS (3f) SP: 5aadc0de -> 5aadc0de [OK] all registers okay [RUN] 64-bit CS (33), bogus SS (47) [OK] Got #GP(0x0) (i.e. Segmentation fault) [RUN] 32-bit CS (23), bogus SS (47) [OK] Got #GP(0x0) (i.e. Segmentation fault) [RUN] 16-bit CS (37), bogus SS (47) [OK] Got #GP(0x0) (i.e. Segmentation fault) [RUN] 64-bit CS (33), bogus SS (23) [OK] Got #GP(0x20) (i.e. GDT index 4, Segmentation fault) [RUN] 32-bit CS (23), bogus SS (23) [OK] Got #GP(0x20) (i.e. GDT index 4, Segmentation fault) [RUN] 16-bit CS (37), bogus SS (23) [OK] Got #GP(0x20) (i.e. GDT index 4, Segmentation fault) [RUN] 32-bit CS (4f), bogus SS (2b) [OK] Got #NP(0x4c) (i.e. LDT index 9, Bus error) [RUN] 32-bit CS (23), bogus SS (57) [OK] Got #GP(0x0) (i.e. Segmentation fault) ok 1..6 selftests: sigreturn_32 [PASS] selftests: iopl_32 ======================================== child: set IOPL to 3 [RUN] child: write to 0x80 [OK] Child succeeded [RUN] parent: write to 0x80 (should fail) [OK] write was denied iopl(3) Drop privileges [RUN] iopl(3) unprivileged but with IOPL==3 [RUN] iopl(0) unprivileged [RUN] iopl(3) unprivileged [OK] Failed as expected ok 1..7 selftests: iopl_32 [PASS] selftests: mpx-mini-test_32 ======================================== processor lacks XSAVE, can not run MPX tests ok 1..8 selftests: mpx-mini-test_32 [PASS] selftests: ioperm_32 ======================================== [OK] outb to 0x80 failed [OK] outb to 0xed failed [RUN] enable 0x80 [OK] outb to 0x80 worked [OK] outb to 0xed failed [RUN] disable 0x80 [OK] outb to 0x80 failed [OK] outb to 0xed failed [RUN] child: check that we inherited permissions [OK] outb to 0x80 worked [OK] outb to 0xed failed [OK] outb to 0x80 failed [OK] outb to 0xed failed [RUN] enable 0x80 [OK] outb to 0x80 worked [OK] outb to 0xed failed [RUN] disable 0x80 [OK] outb to 0x80 failed [OK] outb to 0xed failed [OK] Child succeeded Drop privileges [RUN] disable 0x80 [OK] it worked [RUN] enable 0x80 again [OK] it failed ok 1..9 selftests: ioperm_32 [PASS] selftests: test_vdso_32 ======================================== Warning: failed to find getcpu in vDSO [RUN] Testing getcpu... [OK] CPU 0: syscall: cpu 0, node 0 [OK] CPU 1: syscall: cpu 1, node 0 ok 1..10 selftests: test_vdso_32 [PASS] selftests: test_vsyscall_32 ======================================== [NOTE] failed to find getcpu in vDSO [RUN] test gettimeofday() vDSO time offsets: 0.000011 0.000001 [OK] vDSO gettimeofday()'s timeval was okay [RUN] test time() [OK] vDSO time() is okay [RUN] getcpu() on CPU 0 [RUN] getcpu() on CPU 1 ok 1..11 selftests: test_vsyscall_32 [PASS] selftests: entry_from_vm86_32 ======================================== [RUN] #BR from vm86 mode [SKIP] vm86 not supported [RUN] SYSENTER from vm86 mode [SKIP] vm86 not supported [RUN] SYSCALL from vm86 mode [SKIP] vm86 not supported [RUN] STI with VIP set from vm86 mode [SKIP] vm86 not supported [RUN] POPF with VIP set and IF clear from vm86 mode [SKIP] vm86 not supported [RUN] POPF with VIP and IF set from vm86 mode [SKIP] vm86 not supported [RUN] POPF with VIP clear and IF set from vm86 mode [SKIP] vm86 not supported [RUN] INT3 from vm86 mode [SKIP] vm86 not supported [RUN] int80 from vm86 mode [SKIP] vm86 not supported [RUN] UMIP tests from vm86 mode [SKIP] vm86 not supported [INFO] Result from SMSW:[0x0000] [INFO] Result from SIDT: limit[0x0000]base[0x00000000] [INFO] Result from SGDT: limit[0x0000]base[0x00000000] [PASS] All the results from SMSW are identical. [PASS] All the results from SGDT are identical. [PASS] All the results from SIDT are identical. [RUN] STR instruction from vm86 mode [SKIP] vm86 not supported [RUN] SLDT instruction from vm86 mode [SKIP] vm86 not supported [RUN] Execute null pointer from vm86 mode [SKIP] vm86 not supported ok 1..12 selftests: entry_from_vm86_32 [PASS] [RUN] #BR from vm86 mode [SKIP] vm86 not supported [RUN] SYSENTER from vm86 mode [SKIP] vm86 not supported [RUN] SYSCALL from vm86 mode [SKIP] vm86 not supported [RUN] STI with VIP set from vm86 mode [SKIP] vm86 not supported [RUN] POPF with VIP set and IF clear from vm86 mode [SKIP] vm86 not supported [RUN] POPF with VIP and IF set from vm86 mode [SKIP] vm86 not supported [RUN] POPF with VIP clear and IF set from vm86 mode [SKIP] vm86 not supported [RUN] INT3 from vm86 mode [SKIP] vm86 not supported [RUN] int80 from vm86 mode [SKIP] vm86 not supported [RUN] UMIP tests from vm86 mode [SKIP] vm86 not supported [INFO] Result from SMSW:[0x0000] [INFO] Result from SIDT: limit[0x0000]base[0x00000000] [INFO] Result from SGDT: limit[0x0000]base[0x00000000] [PASS] All the results from SMSW are identical. [PASS] All the results from SGDT are identical. [PASS] All the results from SIDT are identical. [RUN] STR instruction from vm86 mode [SKIP] vm86 not supported [RUN] SLDT instruction from vm86 mode [SKIP] vm86 not supported [RUN] Execute null pointer from vm86 mode [SKIP] vm86 not supported selftests: syscall_arg_fault_32 ======================================== [RUN] SYSENTER with invalid state [OK] Seems okay [RUN] SYSCALL with invalid state [SKIP] Illegal instruction ok 1..13 selftests: syscall_arg_fault_32 [PASS] selftests: test_syscall_vdso_32 ======================================== [RUN] Executing 6-argument 32-bit syscall via VDSO [WARN] Flags before=0000000000200ed7 id 0 00 o d i s z 0 a 0 p 1 c [WARN] Flags after=0000000000200606 id 0 00 d i 0 0 p 1 [WARN] Flags change=00000000000008d1 0 00 o s z 0 a 0 0 c [OK] Arguments are preserved across syscall [NOTE] R11 has changed:0000000000200606 - assuming clobbered by SYSRET insn [OK] R8..R15 did not leak kernel data [RUN] Executing 6-argument 32-bit syscall via INT 80 [OK] Arguments are preserved across syscall [FAIL] R8 has changed:0000000000000000 [FAIL] R9 has changed:0000000000000000 [FAIL] R10 has changed:0000000000000000 [FAIL] R11 has changed:0000000000000000 [RUN] Executing 6-argument 32-bit syscall via VDSO [WARN] Flags before=0000000000200ed7 id 0 00 o d i s z 0 a 0 p 1 c [WARN] Flags after=0000000000200606 id 0 00 d i 0 0 p 1 [WARN] Flags change=00000000000008d1 0 00 o s z 0 a 0 0 c [OK] Arguments are preserved across syscall [NOTE] R11 has changed:0000000000200606 - assuming clobbered by SYSRET insn [OK] R8..R15 did not leak kernel data [RUN] Executing 6-argument 32-bit syscall via INT 80 [OK] Arguments are preserved across syscall [FAIL] R8 has changed:0000000000000000 [FAIL] R9 has changed:0000000000000000 [FAIL] R10 has changed:0000000000000000 [FAIL] R11 has changed:0000000000000000 [RUN] Running tests under ptrace not ok 1..14 selftests: test_syscall_vdso_32 [FAIL] selftests: unwind_vdso_32 ======================================== AT_SYSINFO is 0xf7f43050 [OK] AT_SYSINFO maps to linux-gate.so.1, loaded at 0x0xf7f42000 [RUN] Set TF and check a fast syscall In vsyscall at 0xf7f43050, returning to 0xf7d378b7 SIGTRAP at 0xf7f43050 0xf7f43050 0xf7d378b7 [OK] NR = 20, args = 1, 2, 3, 4, 5, 6 SIGTRAP at 0xf7f43051 0xf7f43051 0xf7d378b7 [OK] NR = 20, args = 1, 2, 3, 4, 5, 6 SIGTRAP at 0xf7f43052 0xf7f43052 0xf7d378b7 [OK] NR = 20, args = 1, 2, 3, 4, 5, 6 SIGTRAP at 0xf7f43053 0xf7f43053 0xf7d378b7 [OK] NR = 20, args = 1, 2, 3, 4, 5, 6 SIGTRAP at 0xf7f43055 0xf7f43055 0xf7d378b7 [OK] NR = 20, args = 1, 2, 3, 4, 5, 6 SIGTRAP at 0xf7f4305a 0xf7f4305a 0xf7d378b7 [OK] NR = 910, args = 1, 2, 3, 4, 5, 6 SIGTRAP at 0xf7f4305b 0xf7f4305b 0xf7d378b7 [OK] NR = 910, args = 1, 2, 3, 4, 5, 6 SIGTRAP at 0xf7f4305c 0xf7f4305c 0xf7d378b7 [OK] NR = 910, args = 1, 2, 3, 4, 5, 6 Vsyscall is done [OK] All is well ok 1..15 selftests: unwind_vdso_32 [PASS] selftests: test_FCMOV_32 ======================================== [RUN] Testing fcmovCC instructions [OK] fcmovCC ok 1..16 selftests: test_FCMOV_32 [PASS] selftests: test_FCOMI_32 ======================================== [RUN] Testing f[u]comi[p] instructions [OK] f[u]comi[p] ok 1..17 selftests: test_FCOMI_32 [PASS] selftests: test_FISTTP_32 ======================================== [RUN] Testing fisttp instructions [OK] fisttp ok 1..18 selftests: test_FISTTP_32 [PASS] selftests: vdso_restorer_32 ======================================== [OK] SA_SIGINFO handler returned successfully [OK] !SA_SIGINFO handler returned successfully ok 1..19 selftests: vdso_restorer_32 [PASS] selftests: ldt_gdt_32 ======================================== [NOTE] set_thread_area is available; will use GDT index 13 [OK] LDT entry 0 has AR 0x0040FB00 and limit 0x0000000A [OK] LDT entry 0 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00907B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07300 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07100 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07500 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00507700 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507F00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507D00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507B00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [RUN] Test fork [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [OK] LDT entry 1 is invalid [OK] LDT entry 0 is invalid [NOTE] set_thread_area is available; will use GDT index 13 [OK] LDT entry 0 has AR 0x0040FB00 and limit 0x0000000A [OK] LDT entry 0 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00907B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07300 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07100 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07500 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00507700 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507F00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507D00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507B00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [RUN] Test fork [OK] Child succeeded [RUN] Test size [DONE] Size test [OK] modify_ldt failure 22 [OK] LDT entry 0 has AR 0x0000F300 and limit 0x00000000 [OK] LDT entry 0 has AR 0x00007300 and limit 0x00000000 [OK] LDT entry 0 has AR 0x0000F100 and limit 0x00000000 [OK] LDT entry 0 has AR 0x00007300 and limit 0x00000000 [OK] LDT entry 0 has AR 0x00007100 and limit 0x00000001 [OK] LDT entry 0 has AR 0x00007100 and limit 0x00000000 [OK] LDT entry 0 is invalid [OK] LDT entry 0 has AR 0x0040F300 and limit 0x000FFFFF [OK] GDT entry 13 has AR 0x0040F300 and limit 0x000FFFFF [OK] LDT entry 0 has AR 0x00C0F300 and limit 0xFFFFFFFF [OK] GDT entry 13 has AR 0x00C0F300 and limit 0xFFFFFFFF [OK] LDT entry 0 has AR 0x00C0F100 and limit 0xFFFFFFFF [OK] GDT entry 13 has AR 0x00C0F100 and limit 0xFFFFFFFF [OK] LDT entry 0 has AR 0x00C0F700 and limit 0xFFFFFFFF [OK] GDT entry 13 has AR 0x00C0F700 and limit 0xFFFFFFFF [OK] LDT entry 0 has AR 0x00C0F500 and limit 0xFFFFFFFF [OK] GDT entry 13 has AR 0x00C0F500 and limit 0xFFFFFFFF [OK] LDT entry 0 is invalid [RUN] Cross-CPU LDT invalidation [OK] All 5 iterations succeeded [RUN] Test exec [OK] LDT entry 0 has AR 0x0040FB00 and limit 0x0000002A [OK] Child succeeded [OK] Invalidate DS with set_thread_area: new DS = 0x0 [OK] Invalidate ES with set_thread_area: new ES = 0x0 [OK] Invalidate FS with set_thread_area: new FS = 0x0 [OK] Invalidate GS with set_thread_area: new GS = 0x0 ok 1..20 selftests: ldt_gdt_32 [PASS] selftests: ptrace_syscall_32 ======================================== [RUN] Check int80 return regs [OK] getpid() preserves regs [OK] kill(getpid(), SIGUSR1) preserves regs [RUN] Check AT_SYSINFO return regs [OK] getpid() preserves regs [OK] kill(getpid(), SIGUSR1) preserves regs [RUN] ptrace-induced syscall restart [RUN] SYSEMU [OK] Initial nr and args are correct [RUN] Restart the syscall (ip = 0xf7f66059) [OK] Restarted nr and args are correct [RUN] Change nr and args and restart the syscall (ip = 0xf7f66059) [OK] Replacement nr and args are correct [OK] Child exited cleanly [RUN] kernel syscall restart under ptrace [RUN] SYSCALL [OK] Initial nr and args are correct [RUN] SYSCALL [OK] Args after SIGUSR1 are correct (ax = -514) [OK] Child got SIGUSR1 [RUN] Step again [OK] pause(2) restarted correctly ok 1..21 selftests: ptrace_syscall_32 [PASS] selftests: single_step_syscall_64 ======================================== [RUN] Set TF and check nop [OK] Survived with TF set and 9 traps [RUN] Set TF and check syscall-less opportunistic sysret [OK] Survived with TF set and 12 traps [RUN] Set TF and check int80 [OK] Survived with TF set and 9 traps [RUN] Set TF and check a fast syscall [OK] Survived with TF set and 22 traps [RUN] Fast syscall with TF cleared [OK] Nothing unexpected happened ok 1..22 selftests: single_step_syscall_64 [PASS] selftests: sysret_ss_attrs_64 ======================================== [RUN] Syscalls followed by SS validation [OK] We survived ok 1..23 selftests: sysret_ss_attrs_64 [PASS] selftests: syscall_nt_64 ======================================== [RUN] Set NT and issue a syscall [OK] The syscall worked and flags are still set [RUN] Set NT|TF and issue a syscall [OK] The syscall worked and flags are still set ok 1..24 selftests: syscall_nt_64 [PASS] selftests: test_mremap_vdso_64 ======================================== AT_SYSINFO_EHDR is 0x7fff5bff1000 [NOTE] Moving vDSO: [0x7fff5bff1000, 0x7fff5bff2000] -> [0x7f275b8ed000, 0x7f275b8ee000] [NOTE] vDSO partial move failed, will try with bigger size [NOTE] Moving vDSO: [0x7fff5bff1000, 0x7fff5bff3000] -> [0x7f275b8ec000, 0x7f275b8ee000] [OK] ok 1..25 selftests: test_mremap_vdso_64 [PASS] selftests: check_initial_reg_state_64 ======================================== [OK] All GPRs except SP are 0 [OK] FLAGS is 0x202 ok 1..26 selftests: check_initial_reg_state_64 [PASS] selftests: sigreturn_64 ======================================== [OK] set_thread_area refused 16-bit data [OK] set_thread_area refused 16-bit data [RUN] Valid sigreturn: 64-bit CS (33), 32-bit SS (2b, GDT) SP: 8badf00d5aadc0de -> 8badf00d5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 32-bit CS (23), 32-bit SS (2b, GDT) SP: 8badf00d5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 16-bit CS (37), 32-bit SS (2b, GDT) SP: 8badf00d5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 64-bit CS (33), 16-bit SS (3f) SP: 8badf00d5aadc0de -> 8badf00d5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 32-bit CS (23), 16-bit SS (3f) SP: 8badf00d5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 16-bit CS (37), 16-bit SS (3f) SP: 8badf00d5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 32-bit CS (23), 32-bit SS (2b, GDT) Corrupting SS on return to 64-bit mode SP: 8badf00d5aadc0de -> 5aadc0de [OK] all registers okay [RUN] Valid sigreturn: 32-bit CS (23), 16-bit SS (3f) Corrupting SS on return to 64-bit mode SP: 8badf00d5aadc0de -> 5aadc0de [OK] all registers okay [RUN] 64-bit CS (33), bogus SS (47) [OK] Got #GP(0x0) (i.e. Segmentation fault) [RUN] 32-bit CS (23), bogus SS (47) [OK] Got #GP(0x0) (i.e. Segmentation fault) [RUN] 16-bit CS (37), bogus SS (47) [OK] Got #GP(0x0) (i.e. Segmentation fault) [RUN] 64-bit CS (33), bogus SS (33) [OK] Got #GP(0x30) (i.e. GDT index 6, Segmentation fault) [RUN] 32-bit CS (23), bogus SS (33) [OK] Got #GP(0x30) (i.e. GDT index 6, Segmentation fault) [RUN] 16-bit CS (37), bogus SS (33) [OK] Got #GP(0x30) (i.e. GDT index 6, Segmentation fault) [RUN] 32-bit CS (4f), bogus SS (2b) [OK] Got #NP(0x4c) (i.e. LDT index 9, Bus error) [RUN] 32-bit CS (23), bogus SS (57) [OK] Got #GP(0x0) (i.e. Segmentation fault) [RUN] Clear UC_STRICT_RESTORE_SS and corrupt SS [OK] It worked ok 1..27 selftests: sigreturn_64 [PASS] selftests: iopl_64 ======================================== child: set IOPL to 3 [RUN] child: write to 0x80 [OK] Child succeeded [RUN] parent: write to 0x80 (should fail) [OK] write was denied iopl(3) Drop privileges [RUN] iopl(3) unprivileged but with IOPL==3 [RUN] iopl(0) unprivileged [RUN] iopl(3) unprivileged [OK] Failed as expected ok 1..28 selftests: iopl_64 [PASS] selftests: mpx-mini-test_64 ======================================== processor lacks XSAVE, can not run MPX tests ok 1..29 selftests: mpx-mini-test_64 [PASS] selftests: ioperm_64 ======================================== [OK] outb to 0x80 failed [OK] outb to 0xed failed [RUN] enable 0x80 [OK] outb to 0x80 worked [OK] outb to 0xed failed [RUN] disable 0x80 [OK] outb to 0x80 failed [OK] outb to 0xed failed [RUN] child: check that we inherited permissions [OK] outb to 0x80 worked [OK] outb to 0xed failed [OK] outb to 0x80 failed [OK] outb to 0xed failed [RUN] enable 0x80 [OK] outb to 0x80 worked [OK] outb to 0xed failed [RUN] disable 0x80 [OK] outb to 0x80 failed [OK] outb to 0xed failed [OK] Child succeeded Drop privileges [RUN] disable 0x80 [OK] it worked [RUN] enable 0x80 again [OK] it failed ok 1..30 selftests: ioperm_64 [PASS] selftests: test_vdso_64 ======================================== [RUN] Testing getcpu... [OK] CPU 0: syscall: cpu 0, node 0 vdso: cpu 0, node 0 vsyscall: cpu 0, node 0 [OK] CPU 1: syscall: cpu 1, node 0 vdso: cpu 1, node 0 vsyscall: cpu 1, node 0 ok 1..31 selftests: test_vdso_64 [PASS] selftests: test_vsyscall_64 ======================================== vsyscall map: ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] vsyscall permissions are r-x [RUN] test gettimeofday() vDSO time offsets: 0.000024 0.000003 [OK] vDSO gettimeofday()'s timeval was okay vsyscall time offsets: 0.000026 0.000001 [OK] vsyscall gettimeofday()'s timeval was okay [RUN] test time() [OK] vDSO time() is okay [OK] vsyscall time() is okay [RUN] getcpu() on CPU 0 [OK] vDSO reported correct CPU [OK] vDSO reported correct node [OK] vsyscall reported correct CPU [OK] vsyscall reported correct node [RUN] getcpu() on CPU 1 [OK] vDSO reported correct CPU [OK] vDSO reported correct node [OK] vsyscall reported correct CPU [OK] vsyscall reported correct node [RUN] Checking read access to the vsyscall page [OK] got expected result [RUN] checking that vsyscalls are emulated [OK] vsyscalls are emulated (1 instructions in vsyscall page) ok 1..32 selftests: test_vsyscall_64 [PASS] selftests: fsgsbase_64 ======================================== [RUN] ARCH_SET_GS to 0x0 [OK] GSBASE was set as expected (selector 0x0) [OK] ARCH_GET_GS worked as expected (selector 0x0) [RUN] ARCH_SET_GS to 0x1 [OK] GSBASE was set as expected (selector 0x0) [OK] ARCH_GET_GS worked as expected (selector 0x0) [RUN] ARCH_SET_GS to 0x200000000 [OK] GSBASE was set as expected (selector 0x0) [OK] ARCH_GET_GS worked as expected (selector 0x0) [RUN] ARCH_SET_GS to 0x0 [OK] GSBASE was set as expected (selector 0x0) [OK] ARCH_GET_GS worked as expected (selector 0x0) [RUN] ARCH_SET_GS to 0x200000000 [OK] GSBASE was set as expected (selector 0x0) [OK] ARCH_GET_GS worked as expected (selector 0x0) [RUN] ARCH_SET_GS to 0x1 [OK] GSBASE was set as expected (selector 0x0) [OK] ARCH_GET_GS worked as expected (selector 0x0) [RUN] ARCH_SET_GS to 0x0 then mov 0 to %gs [OK] GSBASE is 0x0 [RUN] ARCH_SET_GS to 0x1 then mov 0 to %gs [OK] GSBASE is 0x0 [RUN] ARCH_SET_GS to 0x200000000 then mov 0 to %gs [OK] GSBASE is 0x0 [RUN] ARCH_SET_GS to 0x0 then mov 0 to %gs and schedule [OK] GSBASE is 0x0 [RUN] ARCH_SET_GS to 0x1 then mov 0 to %gs and schedule [OK] GSBASE is 0x0 [RUN] ARCH_SET_GS to 0x200000000 then mov 0 to %gs and schedule [OK] GSBASE is 0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x0 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x0 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x0 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x0 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x0 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0xa1fa5f343cb85fa4 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x1 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x1 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x1 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x1 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x200000000 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x200000000 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x200000000 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x200000000 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0), then schedule to 0x200000000 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x0 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x0 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x0 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x0 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x0 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0xa1fa5f343cb85fa4 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x1 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x1 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x1 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x1 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x200000000 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x200000000 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x200000000 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x200000000 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x0) and clear gs, then schedule to 0x200000000 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x0 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x1 [RUN] ARCH_SET_GS(0x1), then schedule to 0x0 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x0 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x0 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x0 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0xa1fa5f343cb85fa4 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x0/0x1 [RUN] ARCH_SET_GS(0x1), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x1 [RUN] ARCH_SET_GS(0x1), then schedule to 0x1 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x1 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x1 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x1 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x200000000 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x1 [RUN] ARCH_SET_GS(0x1), then schedule to 0x200000000 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x200000000 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x200000000 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x1), then schedule to 0x200000000 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x0 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x200000000 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x0 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x0 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x0 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x0 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0xa1fa5f343cb85fa4 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x0/0x200000000 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0xa1fa5f343cb85fa4 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x200000000 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x1 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x1 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x1 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x1 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x1) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x200000000 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x0/0x200000000 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x200000000 Before schedule, set selector to 0x1 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x1/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x200000000 Before schedule, set selector to 0x2 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x200000000 Before schedule, set selector to 0x3 other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x3/0x0 [RUN] ARCH_SET_GS(0x200000000), then schedule to 0x200000000 Before schedule, set selector to 0x2b other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0 [OK] GS/BASE remained 0x2b/0x0 [RUN] ARCH_SET_GS(0), clear gs, then manipulate GSBASE in a different thread other thread: using LDT slot 0 [OK] GSBASE remained 0 ok 1..33 selftests: fsgsbase_64 [PASS] selftests: sysret_rip_64 ======================================== [RUN] sigreturn to 0x800000000000 [OK] Got SIGSEGV at RIP=0x800000000000 [RUN] sigreturn to 0x1000000000000 [OK] Got SIGSEGV at RIP=0x1000000000000 [RUN] sigreturn to 0x2000000000000 [OK] Got SIGSEGV at RIP=0x2000000000000 [RUN] sigreturn to 0x4000000000000 [OK] Got SIGSEGV at RIP=0x4000000000000 [RUN] sigreturn to 0x8000000000000 [OK] Got SIGSEGV at RIP=0x8000000000000 [RUN] sigreturn to 0x10000000000000 [OK] Got SIGSEGV at RIP=0x10000000000000 [RUN] sigreturn to 0x20000000000000 [OK] Got SIGSEGV at RIP=0x20000000000000 [RUN] sigreturn to 0x40000000000000 [OK] Got SIGSEGV at RIP=0x40000000000000 [RUN] sigreturn to 0x80000000000000 [OK] Got SIGSEGV at RIP=0x80000000000000 [RUN] sigreturn to 0x100000000000000 [OK] Got SIGSEGV at RIP=0x100000000000000 [RUN] sigreturn to 0x200000000000000 [OK] Got SIGSEGV at RIP=0x200000000000000 [RUN] sigreturn to 0x400000000000000 [OK] Got SIGSEGV at RIP=0x400000000000000 [RUN] sigreturn to 0x800000000000000 [OK] Got SIGSEGV at RIP=0x800000000000000 [RUN] sigreturn to 0x1000000000000000 [OK] Got SIGSEGV at RIP=0x1000000000000000 [RUN] sigreturn to 0x2000000000000000 [OK] Got SIGSEGV at RIP=0x2000000000000000 [RUN] sigreturn to 0x4000000000000000 [OK] Got SIGSEGV at RIP=0x4000000000000000 [RUN] sigreturn to 0x8000000000000000 [OK] Got SIGSEGV at RIP=0x8000000000000000 [RUN] Trying a SYSCALL that falls through to 0x7fffffffe000 [OK] We survived [RUN] Trying a SYSCALL that falls through to 0x7ffffffff000 [OK] We survived [RUN] Trying a SYSCALL that falls through to 0x800000000000 [OK] mremap to 0x7ffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0xfffffffff000 [OK] mremap to 0xffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x1000000000000 [OK] mremap to 0xfffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x1fffffffff000 [OK] mremap to 0x1ffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x2000000000000 [OK] mremap to 0x1fffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x3fffffffff000 [OK] mremap to 0x3ffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x4000000000000 [OK] mremap to 0x3fffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x7fffffffff000 [OK] mremap to 0x7ffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x8000000000000 [OK] mremap to 0x7fffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0xffffffffff000 [OK] mremap to 0xfffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x10000000000000 [OK] mremap to 0xffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x1ffffffffff000 [OK] mremap to 0x1fffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x20000000000000 [OK] mremap to 0x1ffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x3ffffffffff000 [OK] mremap to 0x3fffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x40000000000000 [OK] mremap to 0x3ffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x7ffffffffff000 [OK] mremap to 0x7fffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x80000000000000 [OK] mremap to 0x7ffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0xfffffffffff000 [OK] mremap to 0xffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x100000000000000 [OK] mremap to 0xfffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x1fffffffffff000 [OK] mremap to 0x1ffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x200000000000000 [OK] mremap to 0x1fffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x3fffffffffff000 [OK] mremap to 0x3ffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x400000000000000 [OK] mremap to 0x3fffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x7fffffffffff000 [OK] mremap to 0x7ffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x800000000000000 [OK] mremap to 0x7fffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0xffffffffffff000 [OK] mremap to 0xfffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x1000000000000000 [OK] mremap to 0xffffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x1ffffffffffff000 [OK] mremap to 0x1fffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x2000000000000000 [OK] mremap to 0x1ffffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x3ffffffffffff000 [OK] mremap to 0x3fffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x4000000000000000 [OK] mremap to 0x3ffffffffffff000 failed [RUN] Trying a SYSCALL that falls through to 0x7ffffffffffff000 [OK] mremap to 0x7fffffffffffe000 failed [RUN] Trying a SYSCALL that falls through to 0x8000000000000000 [OK] mremap to 0x7ffffffffffff000 failed ok 1..34 selftests: sysret_rip_64 [PASS] selftests: ldt_gdt_64 ======================================== [NOTE] set_thread_area is available; will use GDT index 12 [OK] LDT entry 0 has AR 0x0040FB00 and limit 0x0000000A [OK] LDT entry 0 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00907B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07300 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07100 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07500 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00507700 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507F00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507D00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507B00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [RUN] Test fork [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [OK] LDT entry 1 is invalid [OK] LDT entry 0 is invalid [NOTE] set_thread_area is available; will use GDT index 12 [OK] LDT entry 0 has AR 0x0040FB00 and limit 0x0000000A [OK] LDT entry 0 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 1 is invalid [OK] LDT entry 2 has AR 0x00C0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D0FB00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00907B00 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07300 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07100 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00D07500 and limit 0x0000AFFF [OK] LDT entry 2 has AR 0x00507700 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507F00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507D00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507B00 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [OK] LDT entry 2 has AR 0x00507900 and limit 0x0000000A [RUN] Test fork [OK] Child succeeded [RUN] Test size [DONE] Size test [OK] modify_ldt failure 22 [OK] LDT entry 0 has AR 0x0000F300 and limit 0x00000000 [OK] LDT entry 0 has AR 0x00007300 and limit 0x00000000 [OK] LDT entry 0 has AR 0x0000F100 and limit 0x00000000 [OK] LDT entry 0 has AR 0x00007300 and limit 0x00000000 [OK] LDT entry 0 has AR 0x00007100 and limit 0x00000001 [OK] LDT entry 0 has AR 0x00007100 and limit 0x00000000 [OK] LDT entry 0 is invalid [OK] LDT entry 0 has AR 0x0040F300 and limit 0x000FFFFF [OK] LDT entry 0 has AR 0x00C0F300 and limit 0xFFFFFFFF [OK] LDT entry 0 has AR 0x00C0F100 and limit 0xFFFFFFFF [OK] LDT entry 0 has AR 0x00C0F700 and limit 0xFFFFFFFF [OK] LDT entry 0 has AR 0x00C0F500 and limit 0xFFFFFFFF [OK] LDT entry 0 is invalid [RUN] Cross-CPU LDT invalidation [OK] All 5 iterations succeeded [RUN] Test exec [OK] LDT entry 0 has AR 0x0040FB00 and limit 0x0000002A [OK] Child succeeded [OK] Invalidate DS with set_thread_area: new DS = 0x0 [OK] Invalidate ES with set_thread_area: new ES = 0x0 [OK] Invalidate FS with set_thread_area: new FS = 0x0 [OK] New FSBASE was zero [OK] Invalidate GS with set_thread_area: new GS = 0x0 [OK] New GSBASE was zero ok 1..35 selftests: ldt_gdt_64 [PASS] selftests: ptrace_syscall_64 ======================================== [RUN] Check int80 return regs [OK] getpid() preserves regs [OK] kill(getpid(), SIGUSR1) preserves regs [RUN] ptrace-induced syscall restart [RUN] SYSEMU [OK] Initial nr and args are correct [RUN] Restart the syscall (ip = 0x7f03d70968f9) [OK] Restarted nr and args are correct [RUN] Change nr and args and restart the syscall (ip = 0x7f03d70968f9) [OK] Replacement nr and args are correct [OK] Child exited cleanly [RUN] kernel syscall restart under ptrace [RUN] SYSCALL [OK] Initial nr and args are correct [RUN] SYSCALL [OK] Args after SIGUSR1 are correct (ax = -514) [OK] Child got SIGUSR1 [RUN] Step again [OK] pause(2) restarted correctly ok 1..36 selftests: ptrace_syscall_64 [PASS] make: Leaving directory '/usr/src/linux-selftests-x86_64-rhel-7.2-8bb2610bc4967f19672444a7b0407367f1540028/tools/testing/selftests/x86'