[brauner-github:work.xattr.socket] [kernfs] 3631352a7a: BUG:sleeping_function_called_from_invalid_context_at_kernel/workqueue.c

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-lkp
Message-ID <[email protected]>

Hello,

kernel test robot noticed "BUG:sleeping_function_called_from_invalid_context_at_kernel/workqueue.c" on:

commit: 3631352a7a1d5666723822eb421dd039b3b8ea8e ("kernfs: adapt to rhashtable-based simple_xattrs with lazy allocation")
https://github.com/brauner/linux.git work.xattr.socket

in testcase: boot

config: x86_64-rhel-9.4-rust
compiler: clang-20
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 32G

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


+-------------------------------------------------------------------------+------------+------------+
|                                                                         | 2115f2915b | 3631352a7a |
+-------------------------------------------------------------------------+------------+------------+
| BUG:sleeping_function_called_from_invalid_context_at_kernel/workqueue.c | 0          | 6          |
+-------------------------------------------------------------------------+------------+------------+


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 <[email protected]>
| Closes: https://lore.kernel.org/oe-lkp/[email protected]



[   39.161797][    C0] BUG: sleeping function called from invalid context at kernel/workqueue.c:4390
[   39.164598][    C0] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 110, name: udevadm
[   39.167222][    C0] preempt_count: 100, expected: 0
[   39.168816][    C0] RCU nest depth: 0, expected: 0
[   39.170370][    C0] CPU: 0 UID: 0 PID: 110 Comm: udevadm Not tainted 6.19.0-01456-g3631352a7a1d #1 PREEMPT(voluntary)
[   39.170375][    C0] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   39.170378][    C0] Call Trace:
[   39.170398][    C0]  <IRQ>
[   39.170403][    C0]  dump_stack_lvl (lib/dump_stack.c:123)
[   39.170427][    C0]  __might_resched (kernel/sched/core.c:8830)
[   39.170497][    C0]  __cancel_work_sync (include/linux/kernel.h:61 kernel/workqueue.c:4390)
[   39.170503][    C0]  ? simple_xattrs_free (fs/xattr.c:1747)
[   39.170506][    C0]  rhashtable_free_and_destroy (lib/rhashtable.c:1153)
[   39.170515][    C0]  ? kfree (mm/slub.c:?)
[   39.170521][    C0]  ? kernfs_put (fs/kernfs/dir.c:544)
[   39.170525][    C0]  kernfs_free_rcu (fs/kernfs/dir.c:553)
[   39.170533][    C0]  rcu_do_batch (arch/x86/include/asm/preempt.h:27 kernel/rcu/tree.c:2624)
[   39.170543][    C0]  rcu_core (kernel/rcu/tree.c:2871)
[   39.170546][    C0]  handle_softirqs (arch/x86/include/asm/jump_label.h:37 include/trace/events/irq.h:142 kernel/softirq.c:623)
[   39.170555][    C0]  __irq_exit_rcu (arch/x86/include/asm/jump_label.h:37 kernel/softirq.c:725)
[   39.170559][    C0]  sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1056)
[   39.170570][    C0]  </IRQ>
[   39.170572][    C0]  <TASK>
[   39.170573][    C0]  asm_sysvec_apic_timer_interrupt (arch/x86/include/asm/idtentry.h:697)
[   39.170581][    C0] RIP: 0010:__d_lookup (fs/dcache.c:2418)
[   39.170587][    C0] Code: 00 00 00 00 00 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 66 90 0f 1f 44 00 00 <55> 41 57 41 56 41 55 41 54 53 48 89 f3 49 89 fe 44 8b 2e 49 bf 00
All code
========
   0:	00 00                	add    %al,(%rax)
   2:	00 00                	add    %al,(%rax)
   4:	00 66 66             	add    %ah,0x66(%rsi)
   7:	66 66 66 66 2e 0f 1f 	data16 data16 data16 cs nopw 0x0(%rax,%rax,1)
   e:	84 00 00 00 00 00 
  14:	66 66 66 66 66 66 2e 	data16 data16 data16 data16 data16 cs nopw 0x0(%rax,%rax,1)
  1b:	0f 1f 84 00 00 00 00 
  22:	00 
  23:	66 90                	xchg   %ax,%ax
  25:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
  2a:*	55                   	push   %rbp		<-- trapping instruction
  2b:	41 57                	push   %r15
  2d:	41 56                	push   %r14
  2f:	41 55                	push   %r13
  31:	41 54                	push   %r12
  33:	53                   	push   %rbx
  34:	48 89 f3             	mov    %rsi,%rbx
  37:	49 89 fe             	mov    %rdi,%r14
  3a:	44 8b 2e             	mov    (%rsi),%r13d
  3d:	49                   	rex.WB
  3e:	bf                   	.byte 0xbf
	...

Code starting with the faulting instruction
===========================================
   0:	55                   	push   %rbp
   1:	41 57                	push   %r15
   3:	41 56                	push   %r14
   5:	41 55                	push   %r13
   7:	41 54                	push   %r12
   9:	53                   	push   %rbx
   a:	48 89 f3             	mov    %rsi,%rbx
   d:	49 89 fe             	mov    %rdi,%r14
  10:	44 8b 2e             	mov    (%rsi),%r13d
  13:	49                   	rex.WB
  14:	bf                   	.byte 0xbf
	...
[   39.170590][    C0] RSP: 0018:ffffce2d404db9a0 EFLAGS: 00000246
[   39.170594][    C0] RAX: ffff88920147dd98 RBX: ffffce2d404dbaf8 RCX: 0000000000000006
[   39.170595][    C0] RDX: 0000000000000000 RSI: ffffce2d404dbaf8 RDI: ffff88920ef9c780
[   39.170597][    C0] RBP: 0000000000000100 R08: 0000002800000001 R09: ffffffff90435034
[   39.170599][    C0] R10: 0000000000000000 R11: ffffffff8df80580 R12: ffff88926f3a0000
[   39.170601][    C0] R13: ffff889333fb16c0 R14: ffffce2d404dbae8 R15: ffff88920ef9c780
[   39.170603][    C0]  ? kernfs_evict_inode (fs/kernfs/inode.c:282)
[   39.170612][    C0]  lookup_fast (fs/namei.c:1875)
[   39.170617][    C0]  path_lookupat (include/linux/err.h:78 fs/namei.c:2276 fs/namei.c:2780 fs/namei.c:2804)
[   39.170620][    C0]  do_o_path (fs/namei.c:4802)
[   39.170623][    C0]  ? alloc_empty_file (fs/file_table.c:258)
[   39.170628][    C0]  path_openat (fs/namei.c:4824)
[   39.170632][    C0]  ? kernfs_iop_permission (fs/kernfs/inode.c:299)
[   39.170635][    C0]  do_file_open (fs/namei.c:4860)
[   39.170659][    C0]  ? kernfs_iop_getattr (fs/kernfs/inode.c:202)
[   39.170662][    C0]  ? kmem_cache_alloc_noprof (include/linux/kernel.h:?)
[   39.170665][    C0]  ? do_getname (fs/namei.c:183)
[   39.170667][    C0]  ? __check_object_size (mm/usercopy.c:198)
[   39.170674][    C0]  ? strncpy_from_user (arch/x86/include/asm/uaccess_64.h:70 lib/strncpy_from_user.c:129)
[   39.170680][    C0]  do_sys_openat2 (include/linux/err.h:78 include/linux/file.h:177 fs/open.c:1366)
[   39.170689][    C0]  __x64_sys_openat (fs/open.c:1383)
[   39.170692][    C0]  do_syscall_64 (arch/x86/entry/syscall_64.c:?)
[   39.170703][    C0]  ? __memcg_slab_free_hook (include/linux/mm.h:2516)
[   39.170708][    C0]  ? __x64_sys_close (fs/open.c:1511)
[   39.170711][    C0]  ? kmem_cache_free (mm/slub.c:?)
[   39.170714][    C0]  ? __x64_sys_close (fs/open.c:1511)
[   39.170717][    C0]  ? do_syscall_64 (arch/x86/include/asm/atomic64_64.h:15 include/linux/atomic/atomic-arch-fallback.h:2583 include/linux/atomic/atomic-long.h:38 include/linux/atomic/atomic-instrumented.h:3189 include/linux/unwind_deferred.h:37 include/linux/irq-entry-common.h:296 include/linux/entry-common.h:196 arch/x86/entry/syscall_64.c:100)
[   39.170720][    C0]  ? do_sys_openat2 (fs/open.c:1367)
[   39.170722][    C0]  ? __x64_sys_openat (fs/open.c:1383)
[   39.170725][    C0]  ? do_syscall_64 (arch/x86/include/asm/atomic64_64.h:15 include/linux/atomic/atomic-arch-fallback.h:2583 include/linux/atomic/atomic-long.h:38 include/linux/atomic/atomic-instrumented.h:3189 include/linux/unwind_deferred.h:37 include/linux/irq-entry-common.h:296 include/linux/entry-common.h:196 arch/x86/entry/syscall_64.c:100)
[   39.170731][    C0]  ? do_syscall_64 (arch/x86/include/asm/atomic64_64.h:15 include/linux/atomic/atomic-arch-fallback.h:2583 include/linux/atomic/atomic-long.h:38 include/linux/atomic/atomic-instrumented.h:3189 include/linux/unwind_deferred.h:37 include/linux/irq-entry-common.h:296 include/linux/entry-common.h:196 arch/x86/entry/syscall_64.c:100)
[   39.170735][    C0]  entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:131)
[   39.170740][    C0] RIP: 0033:0x7fbfe837a687
[   39.170745][    C0] Code: 48 89 fa 4c 89 df e8 58 b3 00 00 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 1a 5b c3 0f 1f 84 00 00 00 00 00 48 8b 44 24 10 0f 05 <5b> c3 0f 1f 80 00 00 00 00 83 e2 39 83 fa 08 75 de e8 23 ff ff ff
All code
========
   0:	48 89 fa             	mov    %rdi,%rdx
   3:	4c 89 df             	mov    %r11,%rdi
   6:	e8 58 b3 00 00       	call   0xb363
   b:	8b 93 08 03 00 00    	mov    0x308(%rbx),%edx
  11:	59                   	pop    %rcx
  12:	5e                   	pop    %rsi
  13:	48 83 f8 fc          	cmp    $0xfffffffffffffffc,%rax
  17:	74 1a                	je     0x33
  19:	5b                   	pop    %rbx
  1a:	c3                   	ret
  1b:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  22:	00 
  23:	48 8b 44 24 10       	mov    0x10(%rsp),%rax
  28:	0f 05                	syscall
  2a:*	5b                   	pop    %rbx		<-- trapping instruction
  2b:	c3                   	ret
  2c:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
  33:	83 e2 39             	and    $0x39,%edx
  36:	83 fa 08             	cmp    $0x8,%edx
  39:	75 de                	jne    0x19
  3b:	e8 23 ff ff ff       	call   0xffffffffffffff63

Code starting with the faulting instruction
===========================================
   0:	5b                   	pop    %rbx
   1:	c3                   	ret
   2:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
   9:	83 e2 39             	and    $0x39,%edx
   c:	83 fa 08             	cmp    $0x8,%edx
   f:	75 de                	jne    0xffffffffffffffef
  11:	e8 23 ff ff ff       	call   0xffffffffffffff39


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260212/[email protected]



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.