-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Description
As pointed out at https://lore.kernel.org/lkml/CANpmjNOc4Z6Qy_L3pjuW84BOxoiqXgLC1tWbJuZwRUZqs2ioMA@mail.gmail.com/T/, KMSAN hangs at boot time if CONFIG_DEBUG_LOCK_ALLOC is enabled:
(gdb)
0xffffffff825a0cd4 106 return in_task() ? ¤t->kmsan_ctx : raw_cpu_ptr(&kmsan_percpu_ctx);
(gdb) bt
#0 0xffffffff825a0cd4 in kmsan_get_context () at mm/kmsan/kmsan.h:106
#1 __msan_get_context_state () at mm/kmsan/instrumentation.c:331
#2 0xffffffff8185bea0 in lock_acquire (lock=0xffffffff8afcad60 <rcu_sched_lock_map>, subclass=0, trylock=0, read=2, check=0, nest_lock=0x0 <fixed_percpu_data>, ip=18446744071601531329) at kernel/locking/lockdep.c:5722
#3 0xffffffff825a29dd in rcu_lock_acquire (map=<optimized out>) at ./include/linux/rcupdate.h:329
#4 rcu_read_lock_sched () at ./include/linux/rcupdate.h:873
#5 pfn_valid (pfn=<optimized out>) at ./include/linux/mmzone.h:2022
#6 kmsan_virt_addr_valid (addr=0xffff88807fca1b40, addr@entry=0xffffffff825a29c1 <virt_to_page_or_null+193>) at ./arch/x86/include/asm/kmsan.h:94
#7 virt_to_page_or_null (vaddr=vaddr@entry=0xffff88807fca1b40) at mm/kmsan/shadow.c:75
#8 0xffffffff825a2870 in kmsan_get_metadata (address=0xffff88807fca1b40, is_origin=false) at mm/kmsan/shadow.c:143
#9 0xffffffff825a2695 in kmsan_get_shadow_origin_ptr (address=0xffff88807fca1b40, size=4, store=false) at mm/kmsan/shadow.c:97
#10 0xffffffff8259fff4 in get_shadow_origin_ptr (addr=0xffffffff8afcad60 <rcu_sched_lock_map>, size=4, store=false) at mm/kmsan/instrumentation.c:36
#11 __msan_metadata_ptr_for_load_4 (addr=0xffffffff8afcad60 <rcu_sched_lock_map>) at mm/kmsan/instrumentation.c:91
#12 0xffffffff8197040a in arch_atomic_read (v=0xffffffff8afcad60 <rcu_sched_lock_map>) at ./arch/x86/include/asm/atomic.h:23
#13 raw_atomic_read (v=0xffffffff8afcad60 <rcu_sched_lock_map>) at ./include/linux/atomic/atomic-arch-fallback.h:457
#14 rcu_dynticks_curr_cpu_in_eqs () at ./include/linux/context_tracking.h:122
#15 rcu_is_watching () at kernel/rcu/tree.c:724
#16 0xffffffff8185bec8 in trace_lock_acquire (lock=<optimized out>, subclass=<optimized out>, trylock=<optimized out>, read=<optimized out>, check=<optimized out>, next_lock=<optimized out>, ip=<optimized out>) at ./include/trace/events/lock.h:24
#17 lock_acquire (lock=0xffffffff8afcad60 <rcu_sched_lock_map>, subclass=0, trylock=0, read=2, check=0, nest_lock=0x0 <fixed_percpu_data>, ip=18446744071601531329) at kernel/locking/lockdep.c:5725
#18 0xffffffff825a29dd in rcu_lock_acquire (map=<optimized out>) at ./include/linux/rcupdate.h:329
#19 rcu_read_lock_sched () at ./include/linux/rcupdate.h:873
#20 pfn_valid (pfn=<optimized out>) at ./include/linux/mmzone.h:2022
#21 kmsan_virt_addr_valid (addr=0xffffffff8ae03c50, addr@entry=0xffffffff825a29c1 <virt_to_page_or_null+193>) at ./arch/x86/include/asm/kmsan.h:94
#22 virt_to_page_or_null (vaddr=vaddr@entry=0xffffffff8ae03c50) at mm/kmsan/shadow.c:75
#23 0xffffffff825a2870 in kmsan_get_metadata (address=0xffffffff8ae03c50, is_origin=false) at mm/kmsan/shadow.c:143
#24 0xffffffff825a2695 in kmsan_get_shadow_origin_ptr (address=0xffffffff8ae03c50, size=8, store=false) at mm/kmsan/shadow.c:97
#25 0xffffffff825a0094 in get_shadow_origin_ptr (addr=0xffffffff8afcad60 <rcu_sched_lock_map>, size=8, store=false) at mm/kmsan/instrumentation.c:36
#26 __msan_metadata_ptr_for_load_8 (addr=0xffffffff8afcad60 <rcu_sched_lock_map>) at mm/kmsan/instrumentation.c:92
#27 0xffffffff81a046c9 in filter_irq_stacks (entries=<optimized out>, nr_entries=4) at kernel/stacktrace.c:397
#28 0xffffffff85dd026b in stack_depot_save_flags (entries=0xffffffff8afcad60 <rcu_sched_lock_map>, nr_entries=0, alloc_flags=0, depot_flags=1) at lib/stackdepot.c:609
#29 0xffffffff85dd0a22 in stack_depot_save (entries=0xffffffff8afcad60 <rcu_sched_lock_map>, nr_entries=0, alloc_flags=0) at lib/stackdepot.c:678
#30 0xffffffff825a09c2 in __msan_poison_alloca (address=0xffffffff8ae03ce0, size=40, descr=<optimized out>) at mm/kmsan/instrumentation.c:285
#31 0xffffffff89e75f87 in __mutex_lock_common (nest_lock=<optimized out>, ww_ctx=0x0 <fixed_percpu_data>, use_ww_ctx=false, lock=<optimized out>, state=<optimized out>, subclass=<optimized out>, ip=<optimized out>) at kernel/locking/mutex.c:578
#32 __mutex_lock (lock=lock@entry=0xffffffff8b009d30 <slab_mutex>, state=state@entry=2, subclass=subclass@entry=0, nest_lock=nest_lock@entry=0x0 <fixed_percpu_data>, ip=18446744071598433441) at kernel/locking/mutex.c:752
#33 0xffffffff89e75f24 in mutex_lock_nested (lock=0xffffffff8b009d30 <slab_mutex>, subclass=0) at kernel/locking/mutex.c:804
#34 0xffffffff822ae4a1 in kmem_cache_create_usercopy (name=0xffffffff8aac3044 "mm_struct", size=2256, align=0, flags=16656, useroffset=0, usersize=0, ctor=0x0 <fixed_percpu_data>) at mm/slab_common.c:297
#35 0xffffffff8b4e879a in mm_cache_init () at kernel/fork.c:3157
#36 0xffffffff8b52bdb2 in mm_core_init () at mm/mm_init.c:2760
#37 0xffffffff8b441e6b in start_kernel () at init/main.c:962
#38 0xffffffff8b471e7e in x86_64_start_reservations (real_mode_data=0x13f30 <exception_stacks+28464> <error: Cannot access memory at address 0x13f30>) at arch/x86/kernel/head64.c:507
#39 0xffffffff8b471d68 in x86_64_start_kernel (real_mode_data=0x13f30 <exception_stacks+28464> <error: Cannot access memory at address 0x13f30>) at arch/x86/kernel/head64.c:488
#40 0xffffffff81457415 in secondary_startup_64 () at arch/x86/kernel/head_64.S:420
#41 0x0000000000000000 in ?? ()
Metadata
Metadata
Assignees
Labels
No labels