Deadlock under recent 6.0

John Baldwin jhb at FreeBSD.org
Thu Jan 6 13:21:10 PST 2005


On Saturday 18 December 2004 05:13 pm, Kris Kennaway wrote:
> After updating it earlier this week, one of my SMP machines (with
> SCHED_4BSD) is regularly deadlocking under load; nothing is reported
> by WITNESS.  A sample process listing from DDB and some strack traces
> are as follows:
>
> db> ps
>   pid   proc     uid  ppid  pgrp  flag   stat  wmesg    wchan  cmd
> 83025 c8142dc8    0 83014 77576 0004000 [CPU 1] kldload

 [ snip, many threads blocked on Giant ]

>    12 c563e9d8    0     0     0 000020c [CPU 0] idle: cpu0
>    11 c563ebd0    0     0     0 000020c [Can run] idle: cpu1
>     1 c563edc8    0     0     1 0004200 [SLPQ wait 0xc563edc8][SLP] init
>    10 c5647000    0     0     0 0000204 [SLPQ ktrace 0xc074e818][SLP]
> ktrace 0 c074dd80    0     0     0 0000200 [SLPQ sched 0xc074dd80][SLP]
> swapper db> tr 83025
> Tracing pid 83025 tid 100398 td 0xc8145b80
> sched_switch(c0758848,c075f120,1,c0758848,c075f0e0) at sched_switch+0xfe
> w_data(e8721c73,8b01c783,75db851b,83d231d0,d08914c4) at w_data+0x16a8

Unless you are on CPU 1, you aren't going to get an accurate trace of that 
thread.  That thread is the one holding Giant, so it is the one that needs to 
be looked at.  If kldload is the thread that is always running across several 
different attempts at breaking into ddb, doing a ps, and then doing a 
continue, then I'd try to look for some kind of infinite loop while holding 
Giant.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-current mailing list