2021-12-15 14:56:05

by kernel test robot

[permalink] [raw]
Subject: [cgroup] 26b1b4f9c8: WARNING:at_lib/refcount.c:#refcount_warn_saturate



Greeting,

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

commit: 26b1b4f9c86e294d1e9b07478d725412601e804d ("cgroup: Use open-time cgroup namespace for process migration perm checks")
https://git.kernel.org/cgit/linux/kernel/git/tj/cgroup.git review-migration-perms

in testcase: boot

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 <[email protected]>


[ 7.207892][ T1] WARNING: CPU: 0 PID: 1 at lib/refcount.c:28 refcount_warn_saturate (lib/refcount.c:28 (discriminator 3))
[ 7.208794][ T1] Modules linked in: ip_tables
[ 7.209281][ T1] CPU: 0 PID: 1 Comm: systemd Not tainted 5.16.0-rc4-00166-g26b1b4f9c86e #1
[ 7.210135][ T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
[ 7.211044][ T1] RIP: 0010:refcount_warn_saturate (lib/refcount.c:28 (discriminator 3))
[ 7.211638][ T1] Code: 05 4d 42 77 01 01 e8 4a 5e 65 00 0f 0b c3 80 3d 3b 42 77 01 00 75 95 48 c7 c7 a0 6f ba 8f c6 05 2b 42 77 01 01 e8 2b 5e 65 00 <0f> 0b c3 80 3d 1a 42 77 01 00 0f 85 72 ff ff ff 48 c7 c7 f8 6f ba
All code
========
0: 05 4d 42 77 01 add $0x177424d,%eax
5: 01 e8 add %ebp,%eax
7: 4a 5e rex.WX pop %rsi
9: 65 00 0f add %cl,%gs:(%rdi)
c: 0b c3 or %ebx,%eax
e: 80 3d 3b 42 77 01 00 cmpb $0x0,0x177423b(%rip) # 0x1774250
15: 75 95 jne 0xffffffffffffffac
17: 48 c7 c7 a0 6f ba 8f mov $0xffffffff8fba6fa0,%rdi
1e: c6 05 2b 42 77 01 01 movb $0x1,0x177422b(%rip) # 0x1774250
25: e8 2b 5e 65 00 callq 0x655e55
2a:* 0f 0b ud2 <-- trapping instruction
2c: c3 retq
2d: 80 3d 1a 42 77 01 00 cmpb $0x0,0x177421a(%rip) # 0x177424e
34: 0f 85 72 ff ff ff jne 0xffffffffffffffac
3a: 48 rex.W
3b: c7 .byte 0xc7
3c: c7 .byte 0xc7
3d: f8 clc
3e: 6f outsl %ds:(%rsi),(%dx)
3f: ba .byte 0xba

Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: c3 retq
3: 80 3d 1a 42 77 01 00 cmpb $0x0,0x177421a(%rip) # 0x1774224
a: 0f 85 72 ff ff ff jne 0xffffffffffffff82
10: 48 rex.W
11: c7 .byte 0xc7
12: c7 .byte 0xc7
13: f8 clc
14: 6f outsl %ds:(%rsi),(%dx)
15: ba .byte 0xba
[ 7.213432][ T1] RSP: 0018:ffffb7be40013e48 EFLAGS: 00010286
[ 7.214142][ T1] RAX: 0000000000000000 RBX: ffff9677729f9200 RCX: c0000000ffff7fff
[ 7.214995][ T1] RDX: ffffb7be40013c70 RSI: 00000000ffff7fff RDI: 0000000000000000
[ 7.215825][ T1] RBP: ffff9678fafafa80 R08: 0000000000000000 R09: ffffb7be40013c68
[ 7.216687][ T1] R10: 0000000000000001 R11: 0000000000000001 R12: ffff96777297c500
[ 7.217499][ T1] R13: ffff9678fafaf540 R14: ffff96776f912600 R15: ffff967740290000
[ 7.218309][ T1] FS: 0000000000000000(0000) GS:ffff967a6fc00000(0063) knlGS:00000000f77736c0
[ 7.219217][ T1] CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033
[ 7.219876][ T1] CR2: 0000000057b5f724 CR3: 0000000100066000 CR4: 00000000000406f0
[ 7.220694][ T1] Call Trace:
[ 7.221066][ T1] <TASK>
[ 7.221400][ T1] cgroup_file_release (include/linux/refcount.h:283 include/linux/refcount.h:315 include/linux/refcount.h:333 include/linux/cgroup.h:889 include/linux/cgroup.h:887 kernel/cgroup/cgroup.c:3848)
[ 7.221926][ T1] kernfs_fop_release (fs/kernfs/file.c:745 fs/kernfs/file.c:726 fs/kernfs/file.c:756)
[ 7.222474][ T1] __fput (fs/file_table.c:281)
[ 7.222899][ T1] task_work_run (kernel/task_work.c:166 (discriminator 1))
[ 7.223358][ T1] exit_to_user_mode_prepare (include/linux/tracehook.h:189 kernel/entry/common.c:175 kernel/entry/common.c:207)
[ 7.223964][ T1] syscall_exit_to_user_mode (arch/x86/include/asm/jump_label.h:27 include/linux/context_tracking_state.h:31 include/linux/context_tracking.h:40 kernel/entry/common.c:130 kernel/entry/common.c:302)
[ 7.224555][ T1] __do_fast_syscall_32 (arch/x86/entry/common.c:183)
[ 7.225089][ T1] do_fast_syscall_32 (arch/x86/entry/common.c:203)
[ 7.225601][ T1] entry_SYSENTER_compat_after_hwframe (arch/x86/entry/entry_64_compat.S:141)
[ 7.226222][ T1] RIP: 0023:0xf7edf549
[ 7.226687][ T1] Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00
All code
========
0: 03 74 c0 01 add 0x1(%rax,%rax,8),%esi
4: 10 05 03 74 b8 01 adc %al,0x1b87403(%rip) # 0x1b8740d
a: 10 06 adc %al,(%rsi)
c: 03 74 b4 01 add 0x1(%rsp,%rsi,4),%esi
10: 10 07 adc %al,(%rdi)
12: 03 74 b0 01 add 0x1(%rax,%rsi,4),%esi
16: 10 08 adc %cl,(%rax)
18: 03 74 d8 01 add 0x1(%rax,%rbx,8),%esi
1c: 00 00 add %al,(%rax)
1e: 00 00 add %al,(%rax)
20: 00 51 52 add %dl,0x52(%rcx)
23: 55 push %rbp
24: 89 e5 mov %esp,%ebp
26: 0f 34 sysenter
28: cd 80 int $0x80
2a:* 5d pop %rbp <-- trapping instruction
2b: 5a pop %rdx
2c: 59 pop %rcx
2d: c3 retq
2e: 90 nop
2f: 90 nop
30: 90 nop
31: 90 nop
32: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi
39: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi

Code starting with the faulting instruction
===========================================
0: 5d pop %rbp
1: 5a pop %rdx
2: 59 pop %rcx
3: c3 retq
4: 90 nop
5: 90 nop
6: 90 nop
7: 90 nop
8: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi
f: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi
[ 7.228546][ T1] RSP: 002b:00000000ffaebba8 EFLAGS: 00000206 ORIG_RAX: 0000000000000006
[ 7.229383][ T1] RAX: 0000000000000000 RBX: 000000000000001e RCX: 0000000000000660
[ 7.230197][ T1] RDX: 00000000f7b70300 RSI: 00000000f7b70960 RDI: 0000000000000000
[ 7.231031][ T1] RBP: 00000000f7b72000 R08: 0000000000000000 R09: 0000000000000000
[ 7.231848][ T1] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[ 7.232663][ T1] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 7.233526][ T1] </TASK>
[ 7.233888][ T1] ---[ end trace 41a8ced2c1edd838 ]---
[ 7.251575][ T1] list_add corruption. next->prev should be prev (ffff96777261ab38), but was 0000000000000000. (next=ffff9677724c5da0).
[ 7.252805][ T1] ------------[ cut here ]------------


To reproduce:

# build kernel
cd linux
cp config-5.16.0-rc4-00166-g26b1b4f9c86e .config
make HOSTCC=gcc-9 CC=gcc-9 ARCH=x86_64 olddefconfig prepare modules_prepare bzImage modules
make HOSTCC=gcc-9 CC=gcc-9 ARCH=x86_64 INSTALL_MOD_PATH=<mod-install-dir> modules_install
cd <mod-install-dir>
find lib/ | cpio -o -H newc --quiet | gzip > modules.cgz


git clone https://github.com/intel/lkp-tests.git
cd lkp-tests
bin/lkp qemu -k <bzImage> -m modules.cgz 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/[email protected] Intel Corporation

Thanks,
Oliver Sang


Attachments:
(No filename) (8.09 kB)
config-5.16.0-rc4-00166-g26b1b4f9c86e (169.48 kB)
job-script (4.52 kB)
dmesg.xz (12.92 kB)
Download all attachments