2018-07-04 07:00:30

by kernel test robot

[permalink] [raw]
Subject: [lkp-robot] [x86/entry/64/compat] 8bb2610bc4: kernel_selftests.x86.test_syscall_vdso_32.fail


FYI, we noticed the following commit (built with gcc-7):

commit: 8bb2610bc4967f19672444a7b0407367f1540028 ("x86/entry/64/compat: Preserve r8-r11 in int $0x80")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

in testcase: kernel_selftests
with following parameters:

group: kselftests-03

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 host -smp 2 -m 4G

caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):


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]


To reproduce:

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



Thanks,
Xiaolong


Attachments:
(No filename) (2.39 kB)
config-4.17.0-rc2-00006-g8bb2610 (167.16 kB)
job-script (4.81 kB)
dmesg.xz (13.40 kB)
kernel_selftests (54.71 kB)
Download all attachments

2018-07-04 16:24:39

by Linus Torvalds

[permalink] [raw]
Subject: Re: [lkp-robot] [x86/entry/64/compat] 8bb2610bc4: kernel_selftests.x86.test_syscall_vdso_32.fail

On Tue, Jul 3, 2018 at 11:58 PM kernel test robot <[email protected]> wrote:
>
> FYI, we noticed the following commit (built with gcc-7):
>
> commit: 8bb2610bc4967f19672444a7b0407367f1540028 ("x86/entry/64/compat: Preserve r8-r11 in int $0x80")
> [...]
> caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):

So that commit is expected to fix things, but it also *enabled* the
selftests to warn about the change.

Did you run the new selftest on an old kernel?

It looks that way, because you talk about running the selftests for
commit 8bb2610bc496 (which is 4.17-rc2+), but the dmesg you include is
some ancient version"

Linux version 4.12.0-10998-g6974f0c

Hmm. Some of those self-tests are very much expected to break on old kernels.

Linus

2018-07-05 00:43:58

by kernel test robot

[permalink] [raw]
Subject: Re: [lkp-robot] [x86/entry/64/compat] 8bb2610bc4: kernel_selftests.x86.test_syscall_vdso_32.fail

On 07/04, Linus Torvalds wrote:
>On Tue, Jul 3, 2018 at 11:58 PM kernel test robot <[email protected]> wrote:
>>
>> FYI, we noticed the following commit (built with gcc-7):
>>
>> commit: 8bb2610bc4967f19672444a7b0407367f1540028 ("x86/entry/64/compat: Preserve r8-r11 in int $0x80")
>> [...]
>> caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):
>
>So that commit is expected to fix things, but it also *enabled* the
>selftests to warn about the change.
>
>Did you run the new selftest on an old kernel?
>
>It looks that way, because you talk about running the selftests for
>commit 8bb2610bc496 (which is 4.17-rc2+), but the dmesg you include is
>some ancient version"
>
> Linux version 4.12.0-10998-g6974f0c

Just double checked the attached dmesg, the version seems correct, did you
check the right one?

[ 0.000000] Linux version 4.17.0-rc2-00006-g8bb2610 (kbuild@cairo) (gcc version 7.3.0 (Debian 7.3.0-16)) #1 SMP Thu Jun 7 15:10:14 CST 2018


Thanks,
Xiaolong
>
>Hmm. Some of those self-tests are very much expected to break on old kernels.
>
> Linus