panic in dummynet

Sergey Kandaurov pluknet at gmail.com
Thu Mar 24 09:02:05 UTC 2011


On 21 March 2011 12:43, Sergey Kandaurov <pluknet at gmail.com> wrote:
> Hi.
>
> This is a 8.1 box, not very much loaded.
> It has two simple dummynet rules.
> That's the first time it panics there. Any hints?
>
> db> x/s *panicstr
> 0:      *** error reading from address 0 ***
> db> bt
> Tracing pid 0 tid 100116 td 0xffffff000ab057c0
> m_copym() at m_copym+0x37
> ip_fragment() at ip_fragment+0x132
> ip_output() at ip_output+0xeef
> dummynet_send() at dummynet_send+0x14c
> dummynet_task() at dummynet_task+0x1b7
> taskqueue_run() at taskqueue_run+0x93
> taskqueue_thread_loop() at taskqueue_thread_loop+0x46
> fork_exit() at fork_exit+0x118
> fork_trampoline() at fork_trampoline+0xe
> --- trap 0, rip = 0, rsp = 0xffffff8399222d30, rbp = 0 ---
>

Hmm.. Another crash today.
Looks like it might be due to race with bce intr handler.

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x18
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff80611587
stack pointer           = 0x28:0xffffff82b41da960
frame pointer           = 0x28:0xffffff82b41da9c0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 0 (dummynet)

db> bt
Tracing pid 0 tid 100121 td 0xffffff00094177c0
m_copym() at m_copym+0x37
ip_fragment() at ip_fragment+0x132
ip_output() at ip_output+0xeef
dummynet_send() at dummynet_send+0x14c
dummynet_task() at dummynet_task+0x1b7
taskqueue_run() at taskqueue_run+0x93
taskqueue_thread_loop() at taskqueue_thread_loop+0x46
fork_exit() at fork_exit+0x118
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff82b41dad30, rbp = 0 ---

cpuid        = 0
curthread    = 0xffffff00094177c0: pid 0 "dummynet"
cpuid        = 1
curthread    = 0xffffff00029a23e0: pid 12 "irq257: bce1"
cpuid        = 2
curthread    = 0xffffff00026fc3e0: pid 12 "swi4: clock"

100039                   Run     CPU 1                       [irq257: bce1]
100038                   RunQ                                [irq256: bce0]
100012                   Run     CPU 2                       [swi4: clock]

db> bt 100039
Tracing pid 12 tid 100039 td 0xffffff00029a23e0
cpustop_handler() at cpustop_handler+0x40
ipi_nmi_handler() at ipi_nmi_handler+0x30
trap() at trap+0x175
nmi_calltrap() at nmi_calltrap+0x8
--- trap 0x13, rip = 0xffffffff805c62e4, rsp = 0xffffff8000052fe0, rbp = 0xfffff
f82b155d7b0 ---
callout_lock() at callout_lock+0x54
callout_reset_on() at callout_reset_on+0x43
tcp_do_segment() at tcp_do_segment+0x508
tcp_input() at tcp_input+0xd22
ip_input() at ip_input+0xad
netisr_dispatch_src() at netisr_dispatch_src+0x7e
ether_demux() at ether_demux+0x14d
ether_input() at ether_input+0x17b
ether_demux() at ether_demux+0x6f
ether_input() at ether_input+0x17b
bce_intr() at bce_intr+0x3b0
intr_event_execute_handlers() at intr_event_execute_handlers+0xfd
ithread_loop() at ithread_loop+0x8e
fork_exit() at fork_exit+0x118
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff82b155dd30, rbp = 0 ---

db> bt 100038
Tracing pid 12 tid 100038 td 0xffffff00029a27c0
sched_switch() at sched_switch+0xea
mi_switch() at mi_switch+0x16f
ithread_loop() at ithread_loop+0x1d0
fork_exit() at fork_exit+0x118
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff82b1554d30, rbp = 0 ---

db> bt 100012
Tracing pid 12 tid 100012 td 0xffffff00026fc3e0
cpustop_handler() at cpustop_handler+0x40
ipi_nmi_handler() at ipi_nmi_handler+0x30
trap() at trap+0x175
nmi_calltrap() at nmi_calltrap+0x8
--- trap 0x13, rip = 0xffffffff808a8270, rsp = 0xffffff8000059fe0, rbp
= 0xffffff80000c9bd0 ---
Xinvlpg() at Xinvlpg
ithread_loop() at ithread_loop+0x142
fork_exit() at fork_exit+0x118
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff80000c9d30, rbp = 0 ---


-- 
wbr,
pluknet


More information about the freebsd-net mailing list