https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254695
Andrew Gallatin <galla...@freebsd.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |galla...@freebsd.org --- Comment #29 from Andrew Gallatin <galla...@freebsd.org> --- Rather than adding additional epoch enters to the critical path, I'd strongly prefer the hyperv driver be fixed to respect the network epoch. Most network drivers pass packets into the network stack as part of their receive interrupt processing. Code has been added to automatically enter the network epoch in the FreeBSD ithread code, so that the epoch is held for the duration of the interrupt handler's execution on each interrupt delivered. For drivers which use special mechanisms (like, taskqueues), it would be best if they marked themselves with IFF_KNOWSEPOCH and then called NET_EPOCH_ENTER() around calls into the network stack. Since entering an EPOCH uses atomic operations, its best to take and release the epoch as infrequently as possible. Eg, around the loop that processes packets and passes them to lro or if_input(). See iflib for an example. -- You are receiving this mail because: You are on the CC list for the bug.