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


Reply via email to