On Thu, Jan 23, 2020 at 08:17:46PM -0500, Ryan Stone wrote: R> On Thu, Jan 23, 2020 at 6:05 PM Gleb Smirnoff <gleb...@freebsd.org> wrote: R> > R> > On Thu, Jan 23, 2020 at 02:17:33PM -0500, Ryan Stone wrote: R> > R> What is a driver's responsibility now for entering/leaving the net epoch now? R> > R> > For drivers that are 'special', entering the net epoch is necessary. Special R> > usually means running if_input outside network interrupt context. R> > R> > However, there is plan to generalize entering/exiting epoch for taskqueues R> > and callouts. R> R> Why on earth is it done that way rather than putting the network epoch R> enter/exit in ether_input? I'm with Ian; this sounds like a huge R> layering violation.
Because at interrupt level we can batch multiple packets in a single epoch. This speeds up unfiltered packet forwarding performance by 5%. With driver level pfil hooks I would claim even more improvement, because before the change we needed to enter epoch twice - once for filtering, than for ether_input. Epoch isn't a layer, it is a synchronisation primitive, so I disagree about statement on layering violation. -- Gleb Smirnoff _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"