Page MenuHomeFreeBSD

netgraph/ng_ksocket: Enter epoch on NG_SEND_DATA_ONLY
ClosedPublic

Authored by pouria on Sat, Oct 10, 4:28 PM.
Tags
None
Referenced Files
F175834698: D60589.id.diff
Tue, Oct 13, 6:16 PM
F175807776: D60589.diff
Tue, Oct 13, 12:53 PM
Unknown Object (File)
Mon, Oct 12, 8:08 PM
Unknown Object (File)
Mon, Oct 12, 7:48 PM
Unknown Object (File)
Mon, Oct 12, 2:54 PM
Unknown Object (File)
Mon, Oct 12, 12:10 PM
Unknown Object (File)
Mon, Oct 12, 8:52 AM
Unknown Object (File)
Mon, Oct 12, 4:55 AM

Details

Summary

Call NG_SEND_DATA_ONLY under epoch in receive side of ksocket.
This resolves a panic caused by NET_EPOCH_ASSERT under netisr for
callers like ng_ppp.

Fixes: 104827151e2a ("ng_iface: don't recursively enter epoch ...")

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 77966
Build 74849: arc lint + arc unit

Event Timeline

Can you please share the trace? I wonder how did we come with ng_ppp not working in the epoch in the first place.

This is correct fix, thanks! The commit message should be like this:

The work queued by ng_send_fn() is intentionally processed outside of the epoch in ngthread().  It is ng_ksocket's responsibility to enter epoch if it decides to send data from such work.

Nothing to do with ng_ppp.

This revision is now accepted and ready to land.Sat, Oct 10, 4:53 PM

This is correct fix, thanks! The commit message should be like this:

The work queued by ng_send_fn() is intentionally processed outside of the epoch in ngthread().  It is ng_ksocket's responsibility to enter epoch if it decides to send data from such work.

Nothing to do with ng_ppp.

Oops, in practice, it was ng_l2tp. I had the panic on mpd5 when my users trying to connect.