Hi all,
Chris Cappuccio kindly asked me if I can reproduce his PF NAT problem in
lab.
His mail:
On my NAT cluster I recently switched from nat-to source-hash $key to
nat-to round-robin and started getting hangs. The boxes would hang where
the network would stop responding and one core would be at 100% with
softnet.
Commands at the console would hang like ifconfig or even reboot. I'm
curious if you might be able to reproduce this in your own testing. It
seems to take around 24 hours in my case but I also have pfsync and
pflow turned on.
I've manage to reproduce his problem and pf conf with which I can
trigger hang is
set skip on { lo ix2 }
set limit states 5000000
match out on ix1 nat-to 49/27 round-robin
#match out on ix1 nat-to 49/27
block
pass
I'm sending traffic from host connected to ix0 to host connected to ix1
and that host is default gateway.
Traffic is 100 Kpps (very low) of UDP from random 16/16 port 9 to random
48/28 port 9. And I'm sniffing traffic on linux port connected to ix1.
As box behaves exactly as Chris described.
vmstat, top and ddb output are inline and in attachment.
After 10 sec of traffic box stops to do NAT or forward traffic and at
that point I'm immediately stopping traffic.
immediately after traffic is stopped
r620-1# vmstat -m | egrep "Name|pf"
Name Size Requests Fail InUse Pgreq Pgrel Npage Hiwat Minpg
Maxpg Idle
pfrule 1360 3 0 3 1 0 1 1 0
8 0
pfstate 336 461459 0 461398 38450 0 38450 38450 0
8 0
pfstkey 120 692184 0 692097 20973 0 20973 20973 0
8 0
pfstitem 24 692184 0 692097 4170 0 4170 4170 0
8 0
pfruleitem 16 230726 0 230700 927 0 927 927 0
8 0
pfosfpen 112 714 0 714 21 0 21 21 0
8 0
pfosfp 40 714 0 423 5 0 5 5 0
8 0
after 10 minutes
r620-1# vmstat -m | egrep "Name|pf"
Name Size Requests Fail InUse Pgreq Pgrel Npage Hiwat Minpg
Maxpg Idle
pfrule 1360 3 0 3 1 0 1 1 0
8 0
pfstate 336 461459 0 461398 38450 0 38450 38450 0
8 0
pfstkey 120 692184 0 692097 20973 0 20973 20973 0
8 0
pfstitem 24 692184 0 692097 4170 0 4170 4170 0
8 0
pfruleitem 16 230726 0 230700 927 0 927 927 0
8 0
pfosfpen 112 714 0 714 21 0 21 21 0
8 0
pfosfp 40 714 0 423 5 0 5 5 0
8 0
It seems that pf states are never cleared and what I can see with
tcpdump on host connected to ix1 is that pf nat only to 49.0.0.0.
immediately after traffic is stopped
PID TID PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
43797 410290 54 0 0K 900K onproc/3 - 0:03 91.21% softnet
40810 512893 10 0 0K 900K idle pf_lock 0:04 0.88% softnet
82004 472857 10 0 0K 900K idle pf_lock 0:03 0.68% softnet
7921 447270 10 0 0K 900K idle netlock 0:02 0.24% softnet
after 10 minutes
PID TID PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
43797 410290 64 0 0K 900K onproc/3 - 0:03 99.02% softnet
17097 135479 -22 0 0K 900K sleep/5 - 14:38 0.00% idle5
8526 296669 28 0 0K 900K onproc/0 - 14:35 0.00% idle0
66780 349165 28 0 0K 900K onproc/4 - 14:34 0.00% idle4
26781 248132 28 0 0K 900K onproc/1 - 14:33 0.00% idle1
21078 476731 28 0 0K 900K onproc/2 - 14:04 0.00% idle2
39533 504239 -22 0 0K 900K sleep/3 - 11:47 0.00% idle3
40810 512893 10 0 0K 900K idle pf_lock 0:04 0.00% softnet
82004 472857 10 0 0K 900K idle pf_lock 0:03 0.00% softnet
7921 447270 10 0 0K 900K idle netlock 0:02 0.00% softnet
at this point if one wants to do ifconifg or pfctl -vsi or some other
network command, that command hangs and box needs to be rebooted from
idrac or you can drop to ddb :)
r620-1# Stopped at db_enter+0x10: popq %rbp
ddb{0}> trace
db_enter() at db_enter+0x10
comintr(ffff800000082000) at comintr+0x2de
intr_handler(ffff800022d4d620,ffff80000007a080) at intr_handler+0x6e
Xintr_ioapic_edge16_untramp() at Xintr_ioapic_edge16_untramp+0x18f
acpicpu_idle() at acpicpu_idle+0x203
sched_idle(ffffffff822a4ff0) at sched_idle+0x280
end trace frame: 0x0, count: -6
ddb{0}>
ddb{0}> show reg
rdi 0x2f8
rsi 0
rbp 0xffff800022d4d550
rbx 0x82252bf9 __kernel_virt_to_phys+0x2252bf9
rdx 0x2f8
rcx 0x286
rax 0xffffffff82252b00 kstat_pv_tree_RBT_INFO+0x10
r8 0xffffffff82364040 w_locklistdata+0x330
r9 0xffff800022d4d770
r10 0
r11 0x8119b24451f54eee
r12 0xffff800000170000
r13 0xffff800000086158
r14 0xffff800000082000
r15 0xffff80000002ed00
rip 0xffffffff8145ceb0 db_enter+0x10
cs 0x8
rflags 0x286
rsp 0xffff800022d4d550
ss 0x10
db_enter+0x10: popq %rbp
ddb{0}>
ddb{0}> show locks
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8247bc08)
#0 witness_lock+0x311
#1 intr_handler+0x44
#2 Xintr_ioapic_edge16_untramp+0x18f
#3 acpicpu_idle+0x203
#4 sched_idle+0x280
#5 proc_trampoline+0x1c
ddb{0}>
ddb{0}> show all locks
Process 75647 (sensors) thread 0xffff8000ffffe000 (500594)
exclusive rwlock sensor r = 0 (0xffff8000000314a0)
#0 witness_lock+0x311
#1 sensor_task_work+0x26
#2 taskq_thread+0x11a
#3 proc_trampoline+0x1c
shared rwlock sensors r = 0 (0xffff800000031b70)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 43797 (softnet) thread 0xffff8000ffffe540 (310290)
exclusive rwlock pf_lock r = 0 (0xffffffff822b0ea8)
#0 witness_lock+0x311
#1 rw_enter+0x292
#2 pf_test+0x11fc
#3 ip_output+0x6b7
#4 ip_forward+0x2da
#5 ip_input_if+0x353
#6 ipv4_input+0x39
#7 ether_input+0x3b1
#8 if_input_process+0x6f
#9 ifiq_process+0x69
#10 taskq_thread+0x11a
#11 proc_trampoline+0x1c
shared rwlock netlock r = 0 (0xffffffff822dffa0)
#0 witness_lock+0x311
#1 if_input_process+0x43
#2 ifiq_process+0x69
#3 taskq_thread+0x11a
#4 proc_trampoline+0x1c
shared rwlock softnet r = 0 (0xffff800000031370)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 40810 (softnet) thread 0xffff8000ffffea80 (412893)
shared rwlock netlock r = 0 (0xffffffff822dffa0)
#0 witness_lock+0x311
#1 if_input_process+0x43
#2 ifiq_process+0x69
#3 taskq_thread+0x11a
#4 proc_trampoline+0x1c
shared rwlock softnet r = 0 (0xffff800000031270)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 82004 (softnet) thread 0xffff8000ffffed20 (372857)
shared rwlock netlock r = 0 (0xffffffff822dffa0)
#0 witness_lock+0x311
#1 if_input_process+0x43
#2 ifiq_process+0x69
#3 taskq_thread+0x11a
#4 proc_trampoline+0x1c
shared rwlock softnet r = 0 (0xffff800000031170)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 7921 (softnet) thread 0xffff8000ffffefc0 (347270)
shared rwlock softnet r = 0 (0xffff800000031070)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 96824 (systq) thread 0xffff8000fffff500 (303098)
shared rwlock systq r = 0 (0xffffffff822a8cf0)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 31537 (softclock) thread 0xffff8000fffff7a0 (397164)
shared rwlock timeout r = 0 (0xffffffff822ab0c8)
#0 witness_lock+0x311
#1 timeout_run+0x88
#2 softclock_thread+0x11d
#3 proc_trampoline+0x1c
Process 8526 (idle0) thread 0xffff8000fffffa40 (196669)
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8247bc08)
#0 witness_lock+0x311
#1 intr_handler+0x44
#2 Xintr_ioapic_edge16_untramp+0x18f
#3 acpicpu_idle+0x203
#4 sched_idle+0x280
#5 proc_trampoline+0x1c
ddb{0}>
ddb{0}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
89019 78559 41112 83 3 0x1100012 netlock ntpd
12465 409372 41112 83 3 0x1100012 netlock ntpd
16530 46288 1 0 3 0x100083 ttyin ksh
51679 258849 1 0 3 0x100098 kqread cron
32638 230713 26219 95 3 0x1100092 kqread smtpd
11424 259708 26219 103 3 0x1100092 kqread smtpd
31704 480673 26219 95 3 0x1100092 kqread smtpd
63399 221016 26219 95 3 0x100092 kqread smtpd
90229 10675 26219 95 3 0x1100092 kqread smtpd
96251 305221 26219 95 3 0x1100092 kqread smtpd
26219 309011 1 0 3 0x100080 kqread smtpd
34920 497035 1 0 3 0x88 kqread sshd
41112 27008 1 0 3 0x100080 kqread ntpd
75762 122344 8428 83 3 0x100012 netlock ntpd
8428 41188 1 83 3 0x1100092 kqread ntpd
14240 470123 38180 73 3 0x1100090 kqread syslogd
38180 41265 1 0 3 0x100082 netio syslogd
93299 71436 0 0 3 0x14200 bored smr
43677 56247 0 0 3 0x14200 pgzero zerothread
47260 300285 0 0 3 0x14200 aiodoned aiodoned
17531 110382 0 0 3 0x14200 syncer update
99223 387898 0 0 3 0x14200 cleaner cleaner
13968 53355 0 0 3 0x14200 reaper reaper
58909 457909 0 0 3 0x14200 pgdaemon pagedaemon
32859 117108 0 0 3 0x14200 usbtsk usbtask
37632 434410 0 0 3 0x14200 usbatsk usbatsk
76190 421706 0 0 3 0x40014200 acpi0 acpi0
17097 35479 0 0 7 0x40014200 idle5
66780 249165 0 0 7 0x40014200 idle4
39533 404239 0 0 3 0x40014200 idle3
21078 376731 0 0 7 0x40014200 idle2
26781 148132 0 0 7 0x40014200 idle1
75647 500594 0 0 2 0x40014200 sensors
43797 310290 0 0 7 0x14200 softnet
40810 412893 0 0 3 0x14200 pf_lock softnet
82004 372857 0 0 3 0x14200 pf_lock softnet
7921 347270 0 0 3 0x14200 netlock softnet
91193 248353 0 0 3 0x14200 bored systqmp
96824 303098 0 0 3 0x14200 netlock systq
31537 397164 0 0 3 0x40014200 netlock softclock
* 8526 196669 0 0 7 0x40014200 idle0
1 230059 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{0}>
ddb{0}> ps /o
TID PID UID PRFLAGS PFLAGS CPU COMMAND
310290 43797 0 0x14000 0x200 3 softnet
ddb{0}>
ddb{0}> trace /t 0t310290
end trace frame: 0x0, count: -1
ddb{0}> trace /t 0t412893
sleep_finish(ffff800022d71040,1) at sleep_finish+0xfe
rw_enter(ffffffff822b0e98,1) at rw_enter+0x232
pf_test(2,3,ffff80000009b048,ffff800022d71318) at pf_test+0x11fc
ip_output(fffffd80a4363700,0,ffff800022d714a8,1,0,0,e11895f503ebac2b) at
ip_output+0x6b7
ip_forward(fffffd80a4363700,ffff800000095048,fffffd83b4550a10,0) at
ip_forward+0x2da
ip_input_if(ffff800022d715e8,ffff800022d715f4,4,0,ffff800000095048) at
ip_input_if+0x353
ipv4_input(ffff800000095048,fffffd80a4363700) at ipv4_input+0x39
ether_input(ffff800000095048,fffffd80a4363700) at ether_input+0x3b1
if_input_process(ffff800000095048,ffff800022d716d8) at if_input_process+0x6f
ifiq_process(ffff800000099900) at ifiq_process+0x69
taskq_thread(ffff800000031200) at taskq_thread+0x11a
end trace frame: 0x0, count: -11
ddb{0}> trace /t 0t372857
sleep_finish(ffff800022d6aef0,1) at sleep_finish+0xfe
rw_enter(ffffffff822b0e98,1) at rw_enter+0x232
pf_test(2,1,ffff800000095048,ffff800022d6b1d8) at pf_test+0x11fc
ip_input_if(ffff800022d6b1d8,ffff800022d6b1e4,4,0,ffff800000095048) at
ip_input_if+0xcd
ipv4_input(ffff800000095048,fffffd80a3aba400) at ipv4_input+0x39
ether_input(ffff800000095048,fffffd80a3aba400) at ether_input+0x3b1
if_input_process(ffff800000095048,ffff800022d6b2c8) at if_input_process+0x6f
ifiq_process(ffff800000099800) at ifiq_process+0x69
taskq_thread(ffff800000031100) at taskq_thread+0x11a
end trace frame: 0x0, count: -9
ddb{0}> trace /t 0t347270
sleep_finish(ffff800022d65cf0,1) at sleep_finish+0xfe
rw_enter(ffffffff822dff90,1) at rw_enter+0x232
if_netisr(0) at if_netisr+0x16
taskq_thread(ffff800000031000) at taskq_thread+0x11a
end trace frame: 0x0, count: -4
ddb{0}> trace /t 0t248353
sleep_finish(ffff800022d5eed0,1) at sleep_finish+0xfe
msleep(ffffffff822a8d10,ffffffff822a8d28,20,ffffffff81f67c51,0) at
msleep+0xc7
taskq_next_work(ffffffff822a8d10,ffff800022d5ef98) at taskq_next_work+0x61
taskq_thread(ffffffff822a8d10) at taskq_thread+0xfb
end trace frame: 0x0, count: -4
ddb{0}> trace /t 0t303098
sleep_finish(ffff800022d59d60,1) at sleep_finish+0xfe
rw_enter(ffffffff822dff90,1) at rw_enter+0x232
pf_purge(ffffffff822f1010) at pf_purge+0x34
taskq_thread(ffffffff822a8c80) at taskq_thread+0x11a
end trace frame: 0x0, count: -4
ddb{0}> trace /t 0t397164
sleep_finish(ffff800022d53a90,1) at sleep_finish+0xfe
rw_enter(ffffffff822dff90,1) at rw_enter+0x232
igmp_fasttimo() at igmp_fasttimo+0x13
pffasttimo(ffffffff824979b8) at pffasttimo+0xc7
timeout_run(ffffffff824979b8) at timeout_run+0x93
softclock_thread(ffff8000fffff7a0) at softclock_thread+0x11d
end trace frame: 0x0, count: -6
ddb{0}> trace /t 0t196669
sched_idle(ffffffff822a4ff0) at sched_idle+0x280
end trace frame: 0x0, count: -1
ddb{0}>
ddb{0}> trace /t 0t500594
sched_peg_curproc(ffff80002251bff0) at sched_peg_curproc+0x65
cpu_hz_update_sensor(ffff80002251bff0) at cpu_hz_update_sensor+0x1d
sensor_task_work(ffff800000031400) at sensor_task_work+0x44
taskq_thread(ffff800000031b00) at taskq_thread+0x11a
end trace frame: 0x0, count: -4
ddb{0}>immediately after traffic is stopped
r620-1# vmstat -m | egrep "Name|pf"
Name Size Requests Fail InUse Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
pfrule 1360 3 0 3 1 0 1 1 0 8 0
pfstate 336 461459 0 461398 38450 0 38450 38450 0 8 0
pfstkey 120 692184 0 692097 20973 0 20973 20973 0 8 0
pfstitem 24 692184 0 692097 4170 0 4170 4170 0 8 0
pfruleitem 16 230726 0 230700 927 0 927 927 0 8 0
pfosfpen 112 714 0 714 21 0 21 21 0 8 0
pfosfp 40 714 0 423 5 0 5 5 0 8 0
after 10 minutes
r620-1# vmstat -m | egrep "Name|pf"
Name Size Requests Fail InUse Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
pfrule 1360 3 0 3 1 0 1 1 0 8 0
pfstate 336 461459 0 461398 38450 0 38450 38450 0 8 0
pfstkey 120 692184 0 692097 20973 0 20973 20973 0 8 0
pfstitem 24 692184 0 692097 4170 0 4170 4170 0 8 0
pfruleitem 16 230726 0 230700 927 0 927 927 0 8 0
pfosfpen 112 714 0 714 21 0 21 21 0 8 0
pfosfp 40 714 0 423 5 0 5 5 0 8 0
It seems that pf states are never cleared and what I can see with tcpdump on
host connected to ix1 is that pf nat only to 49.0.0.0.
immediately after traffic is stopped
PID TID PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
43797 410290 54 0 0K 900K onproc/3 - 0:03 91.21% softnet
40810 512893 10 0 0K 900K idle pf_lock 0:04 0.88% softnet
82004 472857 10 0 0K 900K idle pf_lock 0:03 0.68% softnet
7921 447270 10 0 0K 900K idle netlock 0:02 0.24% softnet
after 10 minutes
PID TID PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
43797 410290 64 0 0K 900K onproc/3 - 0:03 99.02% softnet
17097 135479 -22 0 0K 900K sleep/5 - 14:38 0.00% idle5
8526 296669 28 0 0K 900K onproc/0 - 14:35 0.00% idle0
66780 349165 28 0 0K 900K onproc/4 - 14:34 0.00% idle4
26781 248132 28 0 0K 900K onproc/1 - 14:33 0.00% idle1
21078 476731 28 0 0K 900K onproc/2 - 14:04 0.00% idle2
39533 504239 -22 0 0K 900K sleep/3 - 11:47 0.00% idle3
40810 512893 10 0 0K 900K idle pf_lock 0:04 0.00% softnet
82004 472857 10 0 0K 900K idle pf_lock 0:03 0.00% softnet
7921 447270 10 0 0K 900K idle netlock 0:02 0.00% softnet
at this point if one wants to do ifconifg or pfctl -vsi or some other network
command, that command hangs and box needs to be rebooted from idrac or you can
drop to ddb :)
r620-1# Stopped at db_enter+0x10: popq %rbp
ddb{0}> trace
db_enter() at db_enter+0x10
comintr(ffff800000082000) at comintr+0x2de
intr_handler(ffff800022d4d620,ffff80000007a080) at intr_handler+0x6e
Xintr_ioapic_edge16_untramp() at Xintr_ioapic_edge16_untramp+0x18f
acpicpu_idle() at acpicpu_idle+0x203
sched_idle(ffffffff822a4ff0) at sched_idle+0x280
end trace frame: 0x0, count: -6
ddb{0}>
ddb{0}> show reg
rdi 0x2f8
rsi 0
rbp 0xffff800022d4d550
rbx 0x82252bf9 __kernel_virt_to_phys+0x2252bf9
rdx 0x2f8
rcx 0x286
rax 0xffffffff82252b00 kstat_pv_tree_RBT_INFO+0x10
r8 0xffffffff82364040 w_locklistdata+0x330
r9 0xffff800022d4d770
r10 0
r11 0x8119b24451f54eee
r12 0xffff800000170000
r13 0xffff800000086158
r14 0xffff800000082000
r15 0xffff80000002ed00
rip 0xffffffff8145ceb0 db_enter+0x10
cs 0x8
rflags 0x286
rsp 0xffff800022d4d550
ss 0x10
db_enter+0x10: popq %rbp
ddb{0}>
ddb{0}> show locks
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8247bc08)
#0 witness_lock+0x311
#1 intr_handler+0x44
#2 Xintr_ioapic_edge16_untramp+0x18f
#3 acpicpu_idle+0x203
#4 sched_idle+0x280
#5 proc_trampoline+0x1c
ddb{0}>
ddb{0}> show all locks
Process 75647 (sensors) thread 0xffff8000ffffe000 (500594)
exclusive rwlock sensor r = 0 (0xffff8000000314a0)
#0 witness_lock+0x311
#1 sensor_task_work+0x26
#2 taskq_thread+0x11a
#3 proc_trampoline+0x1c
shared rwlock sensors r = 0 (0xffff800000031b70)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 43797 (softnet) thread 0xffff8000ffffe540 (310290)
exclusive rwlock pf_lock r = 0 (0xffffffff822b0ea8)
#0 witness_lock+0x311
#1 rw_enter+0x292
#2 pf_test+0x11fc
#3 ip_output+0x6b7
#4 ip_forward+0x2da
#5 ip_input_if+0x353
#6 ipv4_input+0x39
#7 ether_input+0x3b1
#8 if_input_process+0x6f
#9 ifiq_process+0x69
#10 taskq_thread+0x11a
#11 proc_trampoline+0x1c
shared rwlock netlock r = 0 (0xffffffff822dffa0)
#0 witness_lock+0x311
#1 if_input_process+0x43
#2 ifiq_process+0x69
#3 taskq_thread+0x11a
#4 proc_trampoline+0x1c
shared rwlock softnet r = 0 (0xffff800000031370)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 40810 (softnet) thread 0xffff8000ffffea80 (412893)
shared rwlock netlock r = 0 (0xffffffff822dffa0)
#0 witness_lock+0x311
#1 if_input_process+0x43
#2 ifiq_process+0x69
#3 taskq_thread+0x11a
#4 proc_trampoline+0x1c
shared rwlock softnet r = 0 (0xffff800000031270)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 82004 (softnet) thread 0xffff8000ffffed20 (372857)
shared rwlock netlock r = 0 (0xffffffff822dffa0)
#0 witness_lock+0x311
#1 if_input_process+0x43
#2 ifiq_process+0x69
#3 taskq_thread+0x11a
#4 proc_trampoline+0x1c
shared rwlock softnet r = 0 (0xffff800000031170)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 7921 (softnet) thread 0xffff8000ffffefc0 (347270)
shared rwlock softnet r = 0 (0xffff800000031070)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 96824 (systq) thread 0xffff8000fffff500 (303098)
shared rwlock systq r = 0 (0xffffffff822a8cf0)
#0 witness_lock+0x311
#1 taskq_thread+0x10d
#2 proc_trampoline+0x1c
Process 31537 (softclock) thread 0xffff8000fffff7a0 (397164)
shared rwlock timeout r = 0 (0xffffffff822ab0c8)
#0 witness_lock+0x311
#1 timeout_run+0x88
#2 softclock_thread+0x11d
#3 proc_trampoline+0x1c
Process 8526 (idle0) thread 0xffff8000fffffa40 (196669)
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8247bc08)
#0 witness_lock+0x311
#1 intr_handler+0x44
#2 Xintr_ioapic_edge16_untramp+0x18f
#3 acpicpu_idle+0x203
#4 sched_idle+0x280
#5 proc_trampoline+0x1c
ddb{0}>
ddb{0}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
89019 78559 41112 83 3 0x1100012 netlock ntpd
12465 409372 41112 83 3 0x1100012 netlock ntpd
16530 46288 1 0 3 0x100083 ttyin ksh
51679 258849 1 0 3 0x100098 kqread cron
32638 230713 26219 95 3 0x1100092 kqread smtpd
11424 259708 26219 103 3 0x1100092 kqread smtpd
31704 480673 26219 95 3 0x1100092 kqread smtpd
63399 221016 26219 95 3 0x100092 kqread smtpd
90229 10675 26219 95 3 0x1100092 kqread smtpd
96251 305221 26219 95 3 0x1100092 kqread smtpd
26219 309011 1 0 3 0x100080 kqread smtpd
34920 497035 1 0 3 0x88 kqread sshd
41112 27008 1 0 3 0x100080 kqread ntpd
75762 122344 8428 83 3 0x100012 netlock ntpd
8428 41188 1 83 3 0x1100092 kqread ntpd
14240 470123 38180 73 3 0x1100090 kqread syslogd
38180 41265 1 0 3 0x100082 netio syslogd
93299 71436 0 0 3 0x14200 bored smr
43677 56247 0 0 3 0x14200 pgzero zerothread
47260 300285 0 0 3 0x14200 aiodoned aiodoned
17531 110382 0 0 3 0x14200 syncer update
99223 387898 0 0 3 0x14200 cleaner cleaner
13968 53355 0 0 3 0x14200 reaper reaper
58909 457909 0 0 3 0x14200 pgdaemon pagedaemon
32859 117108 0 0 3 0x14200 usbtsk usbtask
37632 434410 0 0 3 0x14200 usbatsk usbatsk
76190 421706 0 0 3 0x40014200 acpi0 acpi0
17097 35479 0 0 7 0x40014200 idle5
66780 249165 0 0 7 0x40014200 idle4
39533 404239 0 0 3 0x40014200 idle3
21078 376731 0 0 7 0x40014200 idle2
26781 148132 0 0 7 0x40014200 idle1
75647 500594 0 0 2 0x40014200 sensors
43797 310290 0 0 7 0x14200 softnet
40810 412893 0 0 3 0x14200 pf_lock softnet
82004 372857 0 0 3 0x14200 pf_lock softnet
7921 347270 0 0 3 0x14200 netlock softnet
91193 248353 0 0 3 0x14200 bored systqmp
96824 303098 0 0 3 0x14200 netlock systq
31537 397164 0 0 3 0x40014200 netlock softclock
* 8526 196669 0 0 7 0x40014200 idle0
1 230059 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{0}>
ddb{0}> ps /o
TID PID UID PRFLAGS PFLAGS CPU COMMAND
310290 43797 0 0x14000 0x200 3 softnet
ddb{0}>
ddb{0}> trace /t 0t310290
end trace frame: 0x0, count: -1
ddb{0}> trace /t 0t412893
sleep_finish(ffff800022d71040,1) at sleep_finish+0xfe
rw_enter(ffffffff822b0e98,1) at rw_enter+0x232
pf_test(2,3,ffff80000009b048,ffff800022d71318) at pf_test+0x11fc
ip_output(fffffd80a4363700,0,ffff800022d714a8,1,0,0,e11895f503ebac2b) at
ip_output+0x6b7
ip_forward(fffffd80a4363700,ffff800000095048,fffffd83b4550a10,0) at
ip_forward+0x2da
ip_input_if(ffff800022d715e8,ffff800022d715f4,4,0,ffff800000095048) at
ip_input_if+0x353
ipv4_input(ffff800000095048,fffffd80a4363700) at ipv4_input+0x39
ether_input(ffff800000095048,fffffd80a4363700) at ether_input+0x3b1
if_input_process(ffff800000095048,ffff800022d716d8) at if_input_process+0x6f
ifiq_process(ffff800000099900) at ifiq_process+0x69
taskq_thread(ffff800000031200) at taskq_thread+0x11a
end trace frame: 0x0, count: -11
ddb{0}> trace /t 0t372857
sleep_finish(ffff800022d6aef0,1) at sleep_finish+0xfe
rw_enter(ffffffff822b0e98,1) at rw_enter+0x232
pf_test(2,1,ffff800000095048,ffff800022d6b1d8) at pf_test+0x11fc
ip_input_if(ffff800022d6b1d8,ffff800022d6b1e4,4,0,ffff800000095048) at
ip_input_if+0xcd
ipv4_input(ffff800000095048,fffffd80a3aba400) at ipv4_input+0x39
ether_input(ffff800000095048,fffffd80a3aba400) at ether_input+0x3b1
if_input_process(ffff800000095048,ffff800022d6b2c8) at if_input_process+0x6f
ifiq_process(ffff800000099800) at ifiq_process+0x69
taskq_thread(ffff800000031100) at taskq_thread+0x11a
end trace frame: 0x0, count: -9
ddb{0}> trace /t 0t347270
sleep_finish(ffff800022d65cf0,1) at sleep_finish+0xfe
rw_enter(ffffffff822dff90,1) at rw_enter+0x232
if_netisr(0) at if_netisr+0x16
taskq_thread(ffff800000031000) at taskq_thread+0x11a
end trace frame: 0x0, count: -4
ddb{0}> trace /t 0t248353
sleep_finish(ffff800022d5eed0,1) at sleep_finish+0xfe
msleep(ffffffff822a8d10,ffffffff822a8d28,20,ffffffff81f67c51,0) at msleep+0xc7
taskq_next_work(ffffffff822a8d10,ffff800022d5ef98) at taskq_next_work+0x61
taskq_thread(ffffffff822a8d10) at taskq_thread+0xfb
end trace frame: 0x0, count: -4
ddb{0}> trace /t 0t303098
sleep_finish(ffff800022d59d60,1) at sleep_finish+0xfe
rw_enter(ffffffff822dff90,1) at rw_enter+0x232
pf_purge(ffffffff822f1010) at pf_purge+0x34
taskq_thread(ffffffff822a8c80) at taskq_thread+0x11a
end trace frame: 0x0, count: -4
ddb{0}> trace /t 0t397164
sleep_finish(ffff800022d53a90,1) at sleep_finish+0xfe
rw_enter(ffffffff822dff90,1) at rw_enter+0x232
igmp_fasttimo() at igmp_fasttimo+0x13
pffasttimo(ffffffff824979b8) at pffasttimo+0xc7
timeout_run(ffffffff824979b8) at timeout_run+0x93
softclock_thread(ffff8000fffff7a0) at softclock_thread+0x11d
end trace frame: 0x0, count: -6
ddb{0}> trace /t 0t196669
sched_idle(ffffffff822a4ff0) at sched_idle+0x280
end trace frame: 0x0, count: -1
ddb{0}>
ddb{0}> trace /t 0t500594
sched_peg_curproc(ffff80002251bff0) at sched_peg_curproc+0x65
cpu_hz_update_sensor(ffff80002251bff0) at cpu_hz_update_sensor+0x1d
sensor_task_work(ffff800000031400) at sensor_task_work+0x44
taskq_thread(ffff800000031b00) at taskq_thread+0x11a
end trace frame: 0x0, count: -4
ddb{0}>