On Mon, Jun 29, 2020 at 12:53:23PM +0900, Kengo NAKAHARA wrote: > It seems some other code have held KERNEL_LOCK too long time. > Could you show the function of last locked address? > # e.g. addr2line -e "your kernel image" -f 0xffffffff80a7d2f5
With Jun 28 14:26 code # addr2line -e netbsd.3.gdb -f 0xffffffff80a4c526 doifioctl /usr/src/sys/arch/amd64/compile/QUANTZDBG/../../../../net/if.c:3403 (discriminator 3) > If the panic can reappear, could you show "show all locks/t" of ddb? It is nicely reproducible (boot single user, type "ifconfig wm0 up"), I have a core dump and a serial console, but debugging locking issues is "interesting"! Thanks, Patrick
type : spin initialized : 0xffffffff80ada119 shared holds : 0 exclusive: 1 shares wanted: 0 exclusive: 3 relevant cpu : 1 last held: 0 relevant lwp : 0xfffff1c63767f200 last held: 0xfffff1c6387c8a40 last locked* : 0xffffffff80a4c526 unlocked : 0xffffffff80a4c517 curcpu holds : 0 wanted by: 0xfffff1c63767f200 db{1}> show all locks /t [Locks tracked through LWPs] ****** LWP 330.330 (ifconfig) @ 0xfffff1c6387c8a40, l_stat=7 *** Locks held: * Lock 0 (ick address : 0xfffff1c637a4e380 type : sleep/adaptive initialized : 0xffffffff80a475fd shared holds : 0 exclusive: 1 shares wanted: 0 exclusive: 0 relevant cpu : 0 last held: 0 relevant lwp : 0xfffff1c6388a40 last locked* : 0xffffffff80a4bf94 unlocked : 0xffffffff80a4c02b owner field : 0xfffff1c6387c8a40 wait/spin: 0/0 Turnstile: no active turnstile for this lock. *** Loczed at module_hook_init) lock address : 0xffffffff8106a800 type : sleep/adaptive initialized : 0xffffffff80952c6e shared holds : 0 exclusive: 0 shares wanted: 0 exclusive: 0 relevant cpu : 0 last held: 0 relevant lwp : 0xfffff1c6387c8a40 last held: 000000000000000000 last locked : 000000000000000000 unlocked*: 000000000000000000 owner field : 000000000000000000 wait/spin: 0/0 Turnstile: no active turnstile for this lock. *** Traceback: trace: pid 330 lid 330 at 0x8 address 0x283 is invalid ?() at 283 address 0x10 is invalid address 0x8 is invalid db_printf() at netbsd:db_printf ****** LWP 0.402 (iic1) @ 0xfffff1c637f1aa40, l_stat=7 *** Locks held: none *** Locks wanted: * Lock 0 (initialized at main) lock address : 0xffffffff8106a700 type : 0xffffffff80ada119 shared holds : 0 exclusive: 1 shares wanted: 0 exclusive: 3 relevant cpu : 2 last hellwp : 0xfffff1c637f1aa40 last held: 0xfffff1c6387c8a40 last locked* : 0xffffffff80a4c526 unlocked : 0xffffffff80a4c517 curcpu holds : 0 wanted by: 0xfffff1c63767f200 *** 02 at 0xffffb0025da16ec0 sleepq_block() at netbsd:sleepq_block+0x211 iic_smbus_intr_thread() at netbsd:iic_smbus_intr_thread+0x52 ****** LWP 0.401 (iic0) @ 0xfffff1c637f1a600, l_stat=7 *** Locks held: none *** Locks wanted: * Lock 0 (initiaxffffffff8106a700 type : spin initialized : 0xffffffff80ada119 shared holds : 0 exclusive: 1 shares wanted: 0 exclusive: 3 relevant cpu : 1 last held: 0 relevant lwp : 0xfffff1c637f1a600 last held: 0xfffff1c6387c8a40 last locked* : 0xffffffff80a4c526 unlocked : 0xffffffff80a4c517 curcpu holds : 0 wanted by: 0xfffff1c63767f200 *** Traceback: trace: pid 0 lid 401 at 0xffffb0025da11ec0 sleepq_block() at netbsd:sleepq_block+0x211 iic_smbus_intr_thread() at netbsd:iic_smbus_intr_thread+0x52 ****** LWP 0.23 (softclk/1) @ 0xfffff1c63767f200, l_stat=7 *** Locks held: * Lock 0 (initialized at soinit) lock address : 0xfffff1cd177e3080 type : sleep/adaptive initialed holds : 0 exclusive: 1 shares wanted: 0 exclusive: 0 relevant cpu : 1 last held: 1 r last held: 0xfffff1c63767f200 last locked* : 0xffffffff806c3e65 unlocked : 0xffffffff806d5ebd owner field : 0xfffff1c63767f200 wait/spin: 0/0 Turnstile: no active turnstileted: * Lock 0 (initialized at main) lock address : 0xffffffff8106a700 type : spin initialized : 0xffffffff80ada119 shared holds : 0 exclusive: 1 shares wanted: 0 exclusive: 3 relevant cpu : 1 last held: 0 relevant lwp : 0xfffff1c63767f200 last held: 0xfffff1c6387c8a40 last locked* : 0xffffffff80a4c526 unlocked : 0xffffffff80a4c517 curcpu holds : 0 wanted by: 0xfffff1c63767f200 *** Traceback: trace: pid 0 lid 23 at 0xffffb0025d02ed70 breakpoint() at netbsd:breakpoint+0x5 vpanic() at netbsd:vpanic+0x152 snprintf() at netbsd:snprintf lockdebug_more() at netbsd:lockdebug_more _kernel_lock() at netbsd:_kernel_lock+0x244 ip_slowtimo() at netbsd:ip_slowtimo+0x1a pfslowtimo() at netbsd:pfslowtimo+0x34 callout_softclock() at netbsd:callout_softclock+0x10f softint_dispatch() at netbsd:softint_dispatch+0x108 DDB lost frame for netbsd:Xsoftintr+0x4f, trying 0xffffb0025d02eff0 Xsoftintr() at netbsd:Xsoftintr+0x4f --- interrupt --- 0: [Locks tracked through CPUs] ******* Locks held on cpu0: * Lock 0 (initialized at main) lock address : 0xffffffff8106a700 type : spin initialized : 0xffffffff80ada1 0 exclusive: 1 shares wanted: 0 exclusive: 3 relevant cpu : 0 last held: 0 relevant lwp : 0xfffff1c67c8a40 last locked* : 0xffffffff80a4c526 unlocked : 0xffffffff80a4c517 curcpu holds : 0 wanted by: 0xfffff1c63767f200 trace: pid 330 lid 330 at 0x8 address 0x283 is invalid ?() at 283 address 0x10 is invalid address 0x8 is invalid db_printf() at netbsd:db_printf * Lock 1 (initialized at ifmedia_init_with_lock) lock address : 0xfffff1c637a4e300 type : spin initialize holds : 0 exclusive: 1 shares wanted: 0 exclusive: 0 0 last held: 0 relevant lwp : 0xfffff1c6387c8a40 last held: 0xfffff1c6387c8a40 last locked* : 0xffffffff80a57f0f unlocked : 0xffffffff8029f74b owner field : 0x0000000000010600 wait/spin: 0/1 trace: pid 330 lid 330 at 0x8 address 0x283 is invalid ?() at 283 address 0x10 is invalid address 0x8 is invalid db_printf() at netbsd:db_printf