lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202311131653.14708bb6-oliver.sang@intel.com>
Date:   Mon, 13 Nov 2023 16:31:38 +0800
From:   kernel test robot <oliver.sang@...el.com>
To:     Alexey Gladkov <legion@...nel.org>
CC:     <oe-lkp@...ts.linux.dev>, <lkp@...el.com>,
        <linux-kernel@...r.kernel.org>, <linux-fsdevel@...r.kernel.org>,
        <linux-mm@...ck.org>, <cgroups@...r.kernel.org>,
        <oliver.sang@...el.com>
Subject: [legion:patchset/meminfo/v2.1] [proc]  8dade3a353:
 WARNING:suspicious_RCU_usage



Hello,

kernel test robot noticed "WARNING:suspicious_RCU_usage" on:

commit: 8dade3a353290abfbfd3c38279c29c3c4ecd7356 ("proc: Implement /proc/self/meminfo")
https://git.kernel.org/cgit/linux/kernel/git/legion/linux.git patchset/meminfo/v2.1

in testcase: trinity
version: trinity-i386-abe9de86-1_20230429
with following parameters:

	runtime: 600s

test-description: Trinity is a linux system call fuzz tester.
test-url: http://codemonkey.org.uk/projects/trinity/


compiler: gcc-12
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G

(please refer to attached dmesg/kmsg for entire log/backtrace)



If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@...el.com>
| Closes: https://lore.kernel.org/oe-lkp/202311131653.14708bb6-oliver.sang@intel.com


the issue doesn't always happen, as below, we observed it 21 times out of 50
runs, but keeps clean on parent.

        v6.6-rc7 8dade3a353290abfbfd3c38279c
---------------- ---------------------------
       fail:runs  %reproduction    fail:runs
           |             |             |
           :50          42%          21:50    dmesg.WARNING:suspicious_RCU_usage
           :50          42%          21:50    dmesg.include/linux/cgroup.h:#suspicious_rcu_dereference_check()usage



[  366.327498][ T3447] WARNING: suspicious RCU usage
[  366.328145][ T3447] 6.6.0-rc7-00001-g8dade3a35329 #1 Not tainted
[  366.329177][ T3447] -----------------------------
[  366.329833][ T3447] include/linux/cgroup.h:436 suspicious rcu_dereference_check() usage!
[  366.330891][ T3447]
[  366.330891][ T3447] other info that might help us debug this:
[  366.330891][ T3447]
[  366.332203][ T3447]
[  366.332203][ T3447] rcu_scheduler_active = 2, debug_locks = 1
[  366.333484][ T3447] 2 locks held by trinity-c5/3447:
[ 366.334175][ T3447] #0: ffff88814ee10858 (&f->f_pos_lock){+.+.}-{3:3}, at: __fdget_pos (fs/file.c:1066) 
[ 366.335356][ T3447] #1: ffff88814f3836c0 (&p->lock){+.+.}-{3:3}, at: seq_read_iter (fs/seq_file.c:188) 
[  366.336736][ T3447]
[  366.336736][ T3447] stack backtrace:
[  366.337562][ T3447] CPU: 1 PID: 3447 Comm: trinity-c5 Not tainted 6.6.0-rc7-00001-g8dade3a35329 #1 10f1bfacea84478d84947570355f5fbda1b33451
[  366.339032][ T3447] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[  366.340233][ T3447] Call Trace:
[  366.340701][ T3447]  <TASK>
[ 366.341175][ T3447] dump_stack_lvl (lib/dump_stack.c:107) 
[ 366.341814][ T3447] lockdep_rcu_suspicious (include/linux/context_tracking.h:153 kernel/locking/lockdep.c:6712) 
[ 366.342512][ T3447] mem_fill_meminfo (include/linux/cgroup.h:436 mm/memcontrol.c:4133) 
[ 366.343143][ T3447] proc_meminfo_show (fs/proc/meminfo.c:202) 
[ 366.343745][ T3447] ? meminfo_proc_show (fs/proc/meminfo.c:197) 
[ 366.344423][ T3447] ? get_pid_task (include/linux/rcupdate.h:308 include/linux/rcupdate.h:782 kernel/pid.c:458) 
[ 366.345071][ T3447] proc_single_show (include/linux/instrumented.h:96 include/linux/atomic/atomic-instrumented.h:400 include/linux/refcount.h:272 include/linux/refcount.h:315 include/linux/refcount.h:333 include/linux/sched/task.h:125 fs/proc/base.c:779) 
[ 366.345750][ T3447] seq_read_iter (fs/seq_file.c:230) 
[ 366.346411][ T3447] seq_read (fs/seq_file.c:163) 
[ 366.346973][ T3447] ? seq_read_iter (fs/seq_file.c:152) 
[ 366.347621][ T3447] ? seq_read_iter (fs/seq_file.c:152) 
[ 366.348247][ T3447] do_loop_readv_writev+0x130/0x440 
[ 366.349039][ T3447] do_iter_read (fs/read_write.c:748 fs/read_write.c:797) 
[ 366.349683][ T3447] vfs_readv (fs/read_write.c:916) 
[ 366.350285][ T3447] ? vfs_iter_read (fs/read_write.c:907) 
[ 366.350879][ T3447] ? __fdget_pos (fs/file.c:1066) 
[ 366.351470][ T3447] ? mutex_lock_io_nested (kernel/locking/mutex.c:746) 
[ 366.352216][ T3447] ? preempt_count_sub (kernel/sched/core.c:5863 kernel/sched/core.c:5859 kernel/sched/core.c:5881) 
[ 366.352916][ T3447] do_readv (fs/read_write.c:952) 
[ 366.356628][ T3447] ? vfs_readv (fs/read_write.c:942) 
[ 366.357285][ T3447] __do_fast_syscall_32 (arch/x86/entry/common.c:112 arch/x86/entry/common.c:178) 
[ 366.357972][ T3447] do_fast_syscall_32 (arch/x86/entry/common.c:203) 
[ 366.358626][ T3447] entry_SYSENTER_compat_after_hwframe (arch/x86/entry/entry_64_compat.S:122) 
[  366.359427][ T3447] RIP: 0023:0xf7f2a579
[ 366.360000][ T3447] Code: 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 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 cc 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00
All code
========
   0:	b8 01 10 06 03       	mov    $0x3061001,%eax
   5:	74 b4                	je     0xffffffffffffffbb
   7:	01 10                	add    %edx,(%rax)
   9:	07                   	(bad)
   a:	03 74 b0 01          	add    0x1(%rax,%rsi,4),%esi
   e:	10 08                	adc    %cl,(%rax)
  10:	03 74 d8 01          	add    0x1(%rax,%rbx,8),%esi
	...
  20:	00 51 52             	add    %dl,0x52(%rcx)
  23:	55                   	push   %rbp
  24:*	89 e5                	mov    %esp,%ebp		<-- trapping instruction
  26:	0f 34                	sysenter
  28:	cd 80                	int    $0x80
  2a:	5d                   	pop    %rbp
  2b:	5a                   	pop    %rdx
  2c:	59                   	pop    %rcx
  2d:	c3                   	ret
  2e:	cc                   	int3
  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                   	ret
   4:	cc                   	int3
   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
[  366.362302][ T3447] RSP: 002b:00000000ffa75f8c EFLAGS: 00000296 ORIG_RAX: 0000000000000091
[  366.363394][ T3447] RAX: ffffffffffffffda RBX: 00000000000000f7 RCX: 00000000580da6e0
[  366.364419][ T3447] RDX: 000000000000005c RSI: 00000000710d3b51 RDI: 00000000ffffffff
[  366.365453][ T3447] RBP: 00000000ffff0100 R08: 0000000000000000 R09: 0000000000000000
[  366.366492][ T3447] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
[  366.367518][ T3447] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[  366.368584][ T3447]  </TASK>
[  382.029705][ T3448] trinity-c6 (3448): attempted to duplicate a private mapping with mremap.  This is not supported.
[  393.577743][ T3063] [main] 10786 iterations. [F:8083 S:2663 HI:1623]



The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20231113/202311131653.14708bb6-oliver.sang@intel.com



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ