[Bug 254695] Hyper-V + TCP_BBR: Kernel Panic: Assertion in_epoch(net_epoch_preempt) failed at netinet/tcp_lro.c:915
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 15 Jul 2021 15:42:28 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254695 Andrew Gallatin <gallatin@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gallatin@FreeBSD.org --- Comment #29 from Andrew Gallatin <gallatin@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.