Greeting,
FYI, we noticed the following commit (built with gcc-9):
commit: d7ada758319742a3b15264520df6a991e01cc294 ("signal: Add SA_IMMUTABLE to ensure
forced siganls do not get changed")
https://git.kernel.org/cgit/linux/kernel/git/ebiederm/user-namespace.git
exit-cleanups-for-v5.16
in testcase: kernel-selftests
version: kernel-selftests-x86_64-c8c9111a-1_20210929
with following parameters:
group: x86
test-description: The kernel contains a set of "self tests" under the
tools/testing/selftests/ directory. These are intended to be small unit tests to exercise
individual code paths in the kernel.
test-url:
https://www.kernel.org/doc/Documentation/kselftest.txt
on test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G
caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):
If you fix the issue, kindly add following tag
Reported-by: kernel test robot <oliver.sang(a)intel.com>
TAP version 13
1..39
# selftests: x86: single_step_syscall_32
# [RUN] Set TF and check nop
# [OK] Survived with TF set and 15 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 45 traps
# [RUN] Fast syscall with TF cleared
# single_step_syscall_32: sigaction: Invalid argument
# [OK] Nothing unexpected happened
# [RUN] Set TF and check SYSENTER
# Got SIGSEGV with RIP=f7f5e549, TF=256
not ok 1 selftests: x86: single_step_syscall_32 # exit=1
# selftests: x86: sigreturn_32
# sigreturn_32: sigaction: Invalid argument
# [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)
# [OK] all registers okay
# [RUN] Valid sigreturn: 32-bit CS (23), 32-bit SS (2b, GDT)
# [OK] all registers okay
# [RUN] Valid sigreturn: 16-bit CS (37), 32-bit SS (2b, GDT)
# [OK] all registers okay
# [RUN] Valid sigreturn: 64-bit CS (33), 16-bit SS (3f)
# [OK] all registers okay
# [RUN] Valid sigreturn: 32-bit CS (23), 16-bit SS (3f)
# [OK] all registers okay
# [RUN] Valid sigreturn: 16-bit CS (37), 16-bit SS (3f)
# [OK] all registers okay
not ok 6 selftests: x86: sigreturn_32 # exit=1
# selftests: x86: sigaltstack_32
# sigaltstack_32: sigaction: Invalid argument
# [RUN] Test an alternate signal stack of sufficient size.
# Raise SIGALRM. It is expected to be delivered.
# [OK] SIGALRM signal delivered.
not ok 12 selftests: x86: sigaltstack_32 # exit=1
# selftests: x86: single_step_syscall_64
# [RUN] Set TF and check nop
# [OK] Survived with TF set and 10 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
# single_step_syscall_64: sigaction: Invalid argument
# [OK] Nothing unexpected happened
# [RUN] Set TF and check SYSENTER
# Got SIGSEGV with RIP=5bbf0549, TF=256
not ok 22 selftests: x86: single_step_syscall_64 # exit=1
# selftests: x86: sigreturn_64
# sigreturn_64: sigaction: Invalid argument
# [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)
# [OK] all registers okay
# [RUN] Valid sigreturn: 32-bit CS (23), 32-bit SS (2b, GDT)
# [NOTE] SP: 8badf00d5aadc0de -> 5aadc0de
# [OK] all registers okay
# [RUN] Valid sigreturn: 16-bit CS (37), 32-bit SS (2b, GDT)
# [NOTE] SP: 8badf00d5aadc0de -> 5aadc0de
# [OK] all registers okay
# [RUN] Valid sigreturn: 64-bit CS (33), 16-bit SS (3f)
# [OK] all registers okay
# [RUN] Valid sigreturn: 32-bit CS (23), 16-bit SS (3f)
# [NOTE] SP: 8badf00d5aadc0de -> 5aadc0de
# [OK] all registers okay
# [RUN] Valid sigreturn: 16-bit CS (37), 16-bit SS (3f)
# [NOTE] 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
# [NOTE] 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
# [NOTE] SP: 8badf00d5aadc0de -> 5aadc0de
# [OK] all registers okay
not ok 27 selftests: x86: sigreturn_64 # exit=1
# selftests: x86: sigaltstack_64
# sigaltstack_64: sigaction: Invalid argument
# [RUN] Test an alternate signal stack of sufficient size.
# Raise SIGALRM. It is expected to be delivered.
# [OK] SIGALRM signal delivered.
not ok 33 selftests: x86: sigaltstack_64 # exit=1
To reproduce:
# build kernel
cd linux
cp config-5.15.0-rc1-00022-gd7ada7583197 .config
make HOSTCC=gcc-9 CC=gcc-9 ARCH=x86_64 olddefconfig prepare modules_prepare bzImage
git clone
https://github.com/intel/lkp-tests.git
cd lkp-tests
bin/lkp qemu -k <bzImage> job-script # job-script is attached in this email
# if come across any failure that blocks the test,
# please remove ~/.lkp and /lkp dir to run from a clean state.
---
0DAY/LKP+ Test Infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/lkp@lists.01.org Intel Corporation
Thanks,
Oliver Sang