Re: [PATCH] lock/lockdep: Add missing graph_unlock in validate_chain

From: kernel test robot
Date: Mon Jan 08 2024 - 08:54:04 EST




Hello,

kernel test robot noticed "WARNING:at_kernel/locking/lockdep.c:#lock_acquire" on:

commit: 1033f8642b6ca8652763f95013e30ff1c220f3c9 ("[PATCH] lock/lockdep: Add missing graph_unlock in validate_chain")
url: https://github.com/intel-lab-lkp/linux/commits/Xuewen-Yan/lock-lockdep-Add-missing-graph_unlock-in-validate_chain/20240104-134335
base: https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git 67a1723344cfe05430977483d6d3c7a999480143
patch link: https://lore.kernel.org/all/20240104054030.14733-1-xuewen.yan@xxxxxxxxxx/
patch subject: [PATCH] lock/lockdep: Add missing graph_unlock in validate_chain

in testcase: boot

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

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


+---------------------------------------------------------+------------+------------+
| | 67a1723344 | 1033f8642b |
+---------------------------------------------------------+------------+------------+
| WARNING:at_kernel/locking/lockdep.c:#lock_acquire | 0 | 8 |
| EIP:lock_acquire | 0 | 8 |
+---------------------------------------------------------+------------+------------+


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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202401082116.303fea3-oliver.sang@xxxxxxxxx


[ 0.755622][ T0] ------------[ cut here ]------------
[ 0.756871][ T0] WARNING: CPU: 0 PID: 0 at kernel/locking/lockdep.c:467 lock_acquire (kernel/locking/lockdep.c:467)
[ 0.757950][ T0] Modules linked in:
[ 0.758418][ T0] CPU: 0 PID: 0 Comm: swapper Not tainted 6.7.0-rc8-00007-g1033f8642b6c #1
[ 0.759457][ T0] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 0.760652][ T0] EIP: lock_acquire (kernel/locking/lockdep.c:467)
[ 0.761215][ T0] Code: 03 c1 e3 10 8b 45 0c 83 e0 01 c1 e0 12 01 d8 05 00 40 08 00 89 45 e8 8d 55 d4 89 f9 56 e8 47 00 00 00 83 c4 04 e9 67 ff ff ff <0f> 0b b8 c8 51 6a c2 e8 b7 66 f7 00 c7 05 e4 50 8b c2 00 00 00 00
All code
========
0: 03 c1 add %ecx,%eax
2: e3 10 jrcxz 0x14
4: 8b 45 0c mov 0xc(%rbp),%eax
7: 83 e0 01 and $0x1,%eax
a: c1 e0 12 shl $0x12,%eax
d: 01 d8 add %ebx,%eax
f: 05 00 40 08 00 add $0x84000,%eax
14: 89 45 e8 mov %eax,-0x18(%rbp)
17: 8d 55 d4 lea -0x2c(%rbp),%edx
1a: 89 f9 mov %edi,%ecx
1c: 56 push %rsi
1d: e8 47 00 00 00 call 0x69
22: 83 c4 04 add $0x4,%esp
25: e9 67 ff ff ff jmp 0xffffffffffffff91
2a:* 0f 0b ud2 <-- trapping instruction
2c: b8 c8 51 6a c2 mov $0xc26a51c8,%eax
31: e8 b7 66 f7 00 call 0xf766ed
36: c7 05 e4 50 8b c2 00 movl $0x0,-0x3d74af1c(%rip) # 0xffffffffc28b5124
3d: 00 00 00

Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: b8 c8 51 6a c2 mov $0xc26a51c8,%eax
7: e8 b7 66 f7 00 call 0xf766c3
c: c7 05 e4 50 8b c2 00 movl $0x0,-0x3d74af1c(%rip) # 0xffffffffc28b50fa
13: 00 00 00
[ 0.763535][ T0] EAX: 00000000 EBX: 00200246 ECX: 00000000 EDX: 00000000
[ 0.764339][ T0] ESI: 00000000 EDI: c2c299b4 EBP: c2877f3c ESP: c2877f10
[ 0.765192][ T0] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 EFLAGS: 00210097
[ 0.766057][ T0] CR0: 80050033 CR2: ffd96000 CR3: 02e96000 CR4: 00000090
[ 0.766888][ T0] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 0.767677][ T0] DR6: fffe0ff0 DR7: 00000400
[ 0.768224][ T0] Call Trace:
[ 0.768615][ T0] ? show_regs (arch/x86/kernel/dumpstack.c:478)
[ 0.769115][ T0] ? __warn (kernel/panic.c:236 kernel/panic.c:677)
[ 0.769584][ T0] ? lock_acquire (kernel/locking/lockdep.c:467)
[ 0.770147][ T0] ? report_bug (lib/bug.c:199)
[ 0.770697][ T0] ? exc_overflow (arch/x86/kernel/traps.c:250)
[ 0.771253][ T0] ? handle_bug (arch/x86/kernel/traps.c:237)
[ 0.771781][ T0] ? exc_invalid_op (arch/x86/kernel/traps.c:258)
[ 0.772375][ T0] ? handle_exception (arch/x86/entry/entry_32.S:1056)
[ 0.772953][ T0] ? exc_overflow (arch/x86/kernel/traps.c:250)
[ 0.773465][ T0] ? lock_acquire (kernel/locking/lockdep.c:467)
[ 0.774005][ T0] ? exc_overflow (arch/x86/kernel/traps.c:250)
[ 0.774531][ T0] ? lock_acquire (kernel/locking/lockdep.c:467)
[ 0.775079][ T0] ? vprintk_emit (arch/x86/include/asm/preempt.h:104 kernel/printk/printk.c:3899 kernel/printk/printk.c:3914 kernel/printk/printk.c:2310)
[ 0.775628][ T0] _raw_spin_lock (include/linux/spinlock_api_smp.h:133 kernel/locking/spinlock.c:154)
[ 0.776177][ T0] ? AA_spin (lib/locking-selftest.c:310)
[ 0.776678][ T0] AA_spin (lib/locking-selftest.c:310)
[ 0.777139][ T0] dotest (lib/locking-selftest.c:1455)
[ 0.777627][ T0] ? _printk (kernel/printk/printk.c:2331)
[ 0.778068][ T0] locking_selftest (lib/locking-selftest.c:2821)
[ 0.778571][ T0] start_kernel (init/main.c:1023)
[ 0.779072][ T0] i386_start_kernel (arch/x86/kernel/head32.c:79)
[ 0.779655][ T0] startup_32_smp (arch/x86/kernel/head_32.S:295)
[ 0.780199][ T0] irq event stamp: 221
[ 0.780678][ T0] hardirqs last enabled at (221): console_unlock (arch/x86/include/asm/irqflags.h:19 arch/x86/include/asm/irqflags.h:67 arch/x86/include/asm/irqflags.h:127 kernel/printk/printk.c:341 kernel/printk/printk.c:2706 kernel/printk/printk.c:3038)
[ 0.781708][ T0] hardirqs last disabled at (220): console_unlock (kernel/printk/printk.c:339)
[ 0.782687][ T0] softirqs last enabled at (0): 0x0
[ 0.783367][ T0] softirqs last disabled at (0): 0x0
[ 0.783995][ T0] ---[ end trace 0000000000000000 ]---



The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240108/202401082116.303fea3-oliver.sang@xxxxxxxxx



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