Hi, all! Me again. In the vanilla torvalds tree kernel v6.11-7341-gbaeb9a7d8b60, I came across this bug. Or is it a feature? Now, we came across this a couple of months ago, in fact a year and a half, and this came from a call with a different context, so I thought it would be prudent to investigate. The work was nothing demanding, but the "make kselftest". Please find the config attached: Maybe the interesting part would be LOCKDEP-related stuff: CONFIG_LOCKDEP_SUPPORT=y CONFIG_LOCKDEP=y CONFIG_LOCKDEP_BITS=15 CONFIG_LOCKDEP_CHAINS_BITS=16 CONFIG_LOCKDEP_STACK_TRACE_BITS=19 CONFIG_LOCKDEP_STACK_TRACE_HASH_BITS=14 CONFIG_LOCKDEP_CIRCULAR_QUEUE_BITS=12 # CONFIG_DEBUG_LOCKDEP is not set Best regards, Mirsad Todorovac ---------------------------------------------------------------------------------------------------------------------------------------------------- kernel: BUG: MAX_LOCKDEP_ENTRIES too low! kernel: turning off the locking correctness validator. kernel: CPU: 20 UID: 0 PID: 34450 Comm: tc Not tainted 6.11.0-gc13-x86-64-tmem-07341-gbaeb9a7d8b60 #76 kernel: Hardware name: ASRock X670E PG Lightning/X670E PG Lightning, BIOS 1.21 04/26/2023 kernel: Call Trace: kernel: kernel: dump_stack_lvl (lib/dump_stack.c:122) kernel: dump_stack (lib/dump_stack.c:129) kernel: add_lock_to_list (kernel/locking/lockdep.c:1409 kernel/locking/lockdep.c:1430) kernel: __lock_acquire (kernel/locking/lockdep.c:3232 kernel/locking/lockdep.c:3277 kernel/locking/lockdep.c:3901 kernel/locking/lockdep.c:5199) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: lock_acquire (kernel/locking/lockdep.c:467 (discriminator 4) kernel/locking/lockdep.c:5824 (discriminator 4) kernel/locking/lockdep.c:5787 (discriminator 4)) kernel: ? dev_reset_queue (net/sched/sch_generic.c:1308) kernel: ? dev_deactivate_many (./include/linux/bottom_half.h:20 (discriminator 1) ./include/linux/netdevice.h:4442 (discriminator 1) net/sched/sch_generic.c:568 (discriminator 1) net/sched/sch_generic.c:1363 (discriminator 1)) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? trace_preempt_off (kernel/trace/trace_preemptirq.c:111) kernel: ? dev_deactivate_many (./include/linux/bottom_half.h:20 (discriminator 1) ./include/linux/netdevice.h:4442 (discriminator 1) net/sched/sch_generic.c:568 (discriminator 1) net/sched/sch_generic.c:1363 (discriminator 1)) kernel: _raw_spin_lock_bh (./include/linux/spinlock_api_smp.h:127 kernel/locking/spinlock.c:178) kernel: ? dev_reset_queue (net/sched/sch_generic.c:1308) kernel: dev_reset_queue (net/sched/sch_generic.c:1308) kernel: ? dev_deactivate_many (./include/linux/bottom_half.h:20 (discriminator 1) ./include/linux/netdevice.h:4442 (discriminator 1) net/sched/sch_generic.c:568 (discriminator 1) net/sched/sch_generic.c:1363 (discriminator 1)) kernel: dev_deactivate_many (./include/linux/netdevice.h:2503 (discriminator 1) net/sched/sch_generic.c:1374 (discriminator 1)) kernel: dev_deactivate (./include/linux/list.h:124 ./include/linux/list.h:215 ./include/linux/list.h:229 net/sched/sch_generic.c:1398) kernel: qdisc_graft (net/sched/sch_api.c:1137) kernel: ? lock_is_held_type (kernel/locking/lockdep.c:5563 (discriminator 1) kernel/locking/lockdep.c:5894 (discriminator 1)) kernel: tc_modify_qdisc (net/sched/sch_api.c:1789) kernel: ? preempt_count_sub (kernel/sched/core.c:5748 kernel/sched/core.c:5744 kernel/sched/core.c:5766) kernel: rtnetlink_rcv_msg (net/core/rtnetlink.c:6646) kernel: ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6540) kernel: netlink_rcv_skb (net/netlink/af_netlink.c:2550) kernel: rtnetlink_rcv (net/core/rtnetlink.c:6665) kernel: netlink_unicast (net/netlink/af_netlink.c:1331 net/netlink/af_netlink.c:1357) kernel: netlink_sendmsg (net/netlink/af_netlink.c:1901) kernel: ____sys_sendmsg (net/socket.c:730 (discriminator 1) net/socket.c:745 (discriminator 1) net/socket.c:2603 (discriminator 1)) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ___sys_sendmsg (net/socket.c:2659) kernel: __sys_sendmsg (net/socket.c:2686) kernel: __x64_sys_sendmsg (net/socket.c:2693) kernel: x64_sys_call (arch/x86/entry/syscall_64.c:36) kernel: do_syscall_64 (arch/x86/entry/common.c:52 (discriminator 1) arch/x86/entry/common.c:83 (discriminator 1)) kernel: ? syscall_exit_to_user_mode (kernel/entry/common.c:221) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? do_syscall_64 (./arch/x86/include/asm/cpufeature.h:178 arch/x86/entry/common.c:98) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? ___sys_recvmsg (net/socket.c:2867) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? __sys_recvmsg (net/socket.c:2894) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? syscall_exit_to_user_mode (kernel/entry/common.c:221) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? do_syscall_64 (./arch/x86/include/asm/cpufeature.h:178 arch/x86/entry/common.c:98) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? irqentry_exit_to_user_mode (kernel/entry/common.c:234) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? irqentry_exit (kernel/entry/common.c:367) kernel: ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182) kernel: ? exc_page_fault (arch/x86/mm/fault.c:1543) kernel: entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) kernel: RIP: 0033:0x75972092c004 kernel: Code: 15 19 6e 0d 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d 45 f0 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55 All code ======== 0: 15 19 6e 0d 00 adc $0xd6e19,%eax 5: f7 d8 neg %eax 7: 64 89 02 mov %eax,%fs:(%rdx) a: b8 ff ff ff ff mov $0xffffffff,%eax f: eb bf jmp 0xffffffffffffffd0 11: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 16: f3 0f 1e fa endbr64 1a: 80 3d 45 f0 0d 00 00 cmpb $0x0,0xdf045(%rip) # 0xdf066 21: 74 13 je 0x36 23: b8 2e 00 00 00 mov $0x2e,%eax 28: 0f 05 syscall 2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction 30: 77 4c ja 0x7e 32: c3 ret 33: 0f 1f 00 nopl (%rax) 36: 55 push %rbp 37: 48 89 e5 mov %rsp,%rbp 3a: 48 83 ec 20 sub $0x20,%rsp 3e: 89 .byte 0x89 3f: 55 push %rbp Code starting with the faulting instruction =========================================== 0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 6: 77 4c ja 0x54 8: c3 ret 9: 0f 1f 00 nopl (%rax) c: 55 push %rbp d: 48 89 e5 mov %rsp,%rbp 10: 48 83 ec 20 sub $0x20,%rsp 14: 89 .byte 0x89 15: 55 push %rbp kernel: RSP: 002b:00007ffc08ba32d8 EFLAGS: 00000202 ORIG_RAX: 000000000000002e kernel: RAX: ffffffffffffffda RBX: 00005fff600ab480 RCX: 000075972092c004 kernel: RDX: 0000000000000000 RSI: 00007ffc08ba3340 RDI: 0000000000000005 kernel: RBP: 0000000066eea9e8 R08: 0000000000000010 R09: 0000000000000000 kernel: R10: 00005fff74839920 R11: 0000000000000202 R12: 00007ffc08ba3340 kernel: R13: 00005fff600ab480 R14: 00005fff600841fa R15: 00007ffc08bb3658 kernel: ----------------------------------------------------------------------------------------------------------------------------------------------------