Page MenuHomeFreeBSD

Add missing EPOCH(9) wrapper in ipfw
ClosedPublic

Authored by • hselasky on Feb 10 2020, 9:13 AM.
Tags
None
Referenced Files
F173441197: D23599.diff
Fri, Sep 25, 11:11 PM
F173436031: D23599.id68095.diff
Fri, Sep 25, 10:29 PM
Unknown Object (File)
Sat, Sep 19, 1:12 AM
Unknown Object (File)
Fri, Sep 11, 2:19 PM
Unknown Object (File)
Fri, Sep 11, 1:54 PM
Unknown Object (File)
Fri, Sep 11, 1:09 PM
Unknown Object (File)
Thu, Sep 10, 5:44 PM
Unknown Object (File)
Thu, Sep 10, 1:02 PM

Details

Summary

Backtrace:
panic()
ip_output()
dyn_tick()
softclock_call_cc()
softclock()
ithread_loop()

Found by: mmacy@
Reported by: jmd@
Sponsored by: Mellanox Technologies

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Feb 10 2020, 10:26 AM

Thanks for the find. I'd rather move the entrance to dyn_tick(). Would use less lines of code and would make it easier to spot it later, when we have callouts supporting epoch.

• hselasky retitled this revision from Add missing EPOCH wrappers in firewall code to Add missing EPOCH(9) wrapper in ipfw.
This revision now requires review to proceed.Feb 10 2020, 8:51 PM
This revision is now accepted and ready to land.Feb 11 2020, 6:09 PM
This revision was automatically updated to reflect the committed changes.

IPFW/Dummynet appears to now panic with EPOCH assertions (netpfil/ip_dn_*)

In D23599#521566, @rscheff_gmx.at wrote:

IPFW/Dummynet appears to now panic with EPOCH assertions (netpfil/ip_dn_*)

Do you have a backtrace?

--HPS

panic: Assertion in_epoch(net_epoch_preempt) failed at /root/freebsd-master/freebsd/sys/netpfil/ipfw/ip_dn_io.c:745
cpuid = 0
time = 1582039197
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00084ff890
vpanic() at vpanic+0x185/frame 0xfffffe00084ff8f0
panic() at panic+0x43/frame 0xfffffe00084ff950
dummynet_send() at dummynet_send+0x43/frame 0xfffffe00084ff990
dummynet_task() at dummynet_task+0x31e/frame 0xfffffe00084ffa00
taskqueue_run_locked() at taskqueue_run_locked+0xaa/frame 0xfffffe00084ffa80
taskqueue_thread_loop() at taskqueue_thread_loop+0xc2/frame 0xfffffe00084ffab0
fork_exit() at fork_exit+0x80/frame 0xfffffe00084ffaf0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00084ffaf0

  • trap 0, rip = 0, rsp = 0, rbp = 0 ---

KDB: enter: panic
Uptime: 7m36s