Hi,
I have an ifconfig on ix(4) that hangs in "sbar" wait queue during
"starting network" while booting.
load: 3.00 cmd: ifconfig 52949 [sbar] 0.01u 0.05s 0% 78k
ddb{0}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
52949 250855 50082 0 3 0x3 sbar ifconfig
50082 468479 32384 0 3 0x10008b sigsusp sh
52583 256132 23859 77 3 0x100092 kqread dhcpleased
26314 670 23859 77 3 0x100092 kqread dhcpleased
23859 213684 1 0 3 0x80 kqread dhcpleased
1084 413649 97426 115 3 0x100092 kqread slaacd
79640 480435 97426 115 3 0x100092 kqread slaacd
97426 244636 1 0 3 0x100080 kqread slaacd
32384 389946 1 0 3 0x10008b sigsusp sh
25127 139046 0 0 3 0x14200 bored smr
38562 94707 0 0 3 0x14200 pgzero zerothread
27589 65355 0 0 3 0x14200 aiodoned aiodoned
20876 273172 0 0 3 0x14200 syncer update
35865 394897 0 0 3 0x14200 cleaner cleaner
89296 37410 0 0 3 0x14200 reaper reaper
4195 18701 0 0 3 0x14200 pgdaemon pagedaemon
70794 65241 0 0 3 0x14200 usbtsk usbtask
42580 105576 0 0 3 0x14200 usbatsk usbatsk
96913 6418 0 0 3 0x40014200 acpi0 acpi0
43860 163896 0 0 1 0x14200 idle7
9928 477713 0 0 7 0x40014200 idle6
19947 457773 0 0 7 0x40014200 idle5
71017 110610 0 0 7 0x40014200 idle4
73733 294276 0 0 7 0x40014200 idle3
73085 302072 0 0 7 0x40014200 idle2
89634 211435 0 0 7 0x40014200 idle1
45877 221411 0 0 2 0x40014200 sensors
41433 306787 0 0 3 0x14200 bored softnet3
85227 338038 0 0 3 0x14200 bored softnet2
72032 215983 0 0 3 0x14200 netlock softnet1
32550 351943 0 0 3 0x14200 bored softnet0
11993 408132 0 0 2 0x40014200 systqmp
58738 210334 0 0 3 0x14200 netlock systq
70352 115696 0 0 3 0x40014200 netlock softclock
*95768 350377 0 0 7 0x40014200 idle0
1 298699 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ifconfig holds the netlock, I guess this prevents progress.
ddb{0}> trace /t 0t250855
sleep_finish(ffff8000248a3928,1) at sleep_finish+0x102
cond_wait(ffff8000248a39c0,ffffffff8207c985) at cond_wait+0x64
sched_barrier(ffff80002253fff0) at sched_barrier+0x77
ixgbe_stop(ffff800000776000) at ixgbe_stop+0x1f7
ixgbe_init(ffff800000776000) at ixgbe_init+0x36
ixgbe_ioctl(ffff800000776048,8020690c,ffff800000842500) at ixgbe_ioctl+0x13e
in_ifinit(ffff800000776048,ffff800000842500,ffff8000248a3cf0,1) at in_ifinit+0x
f3
in_ioctl_change_ifaddr(8040691a,ffff8000248a3ce0,ffff800000776048) at in_ioctl_
change_ifaddr+0x390
ifioctl(fffffd8746c878f8,8040691a,ffff8000248a3ce0,ffff80002487ab00) at ifioctl
+0x988
sys_ioctl(ffff80002487ab00,ffff8000248a3df0,ffff8000248a3e50) at sys_ioctl+0x2c
4
syscall(ffff8000248a3ec0) at syscall+0x3d4
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x74aea7fb4da0, count: -12
systqmp is here, it may wait for the scheduler lock.
ddb{0}> trace /t 0t408132
sched_barrier_task(ffff8000248a39b8) at sched_barrier_task+0x7e
taskq_thread(ffffffff824ac758) at taskq_thread+0x100
end trace frame: 0x0, count: -2
sensors thread seems to wait for scheduler lock, too.
ddb{0}> trace /t 0t221411
sched_peg_curproc(ffff80002253fff0) at sched_peg_curproc+0x69
cpu_hz_update_sensor(ffff80002253fff0) at cpu_hz_update_sensor+0x21
sensor_task_work(ffff800000366700) at sensor_task_work+0x48
taskq_thread(ffff800000362100) at taskq_thread+0x100
ddb{0}> show struct __mp_lock sched_lock
struct sched_lock at 0xffffffff8250fa54 (520 bytes) {mpl_cpus = 10144565, mpl_t
icket = 0x9acb36, mpl_users = 0x9acb35}
systq is blocked by netlock
ddb{0}> trace /t 0t210334
sleep_finish(ffff8000247ab030,1) at sleep_finish+0x102
rw_enter(ffffffff824a4fe8,1) at rw_enter+0x1cf
pf_purge(ffffffff824bb760) at pf_purge+0x38
taskq_thread(ffffffff824ac708) at taskq_thread+0x100
end trace frame: 0x0, count: -4
bluhm