Date: Thu, 23 Jan 2020 01:47:43 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357012 - head/sys/net Message-ID: <202001230147.00N1lh9g042266@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glebius Date: Thu Jan 23 01:47:43 2020 New Revision: 357012 URL: https://svnweb.freebsd.org/changeset/base/357012 Log: Stop entering the network epoch in ether_input(), unless driver is marked with IFF_NEEDSEPOCH. Modified: head/sys/net/if_ethersubr.c Modified: head/sys/net/if_ethersubr.c ============================================================================== --- head/sys/net/if_ethersubr.c Thu Jan 23 01:46:05 2020 (r357011) +++ head/sys/net/if_ethersubr.c Thu Jan 23 01:47:43 2020 (r357012) @@ -809,7 +809,8 @@ ether_input(struct ifnet *ifp, struct mbuf *m) * them up. This allows the drivers to amortize the receive lock. */ CURVNET_SET_QUIET(ifp->if_vnet); - NET_EPOCH_ENTER(et); + if (__predict_false(ifp->if_flags & IFF_NEEDSEPOCH)) + NET_EPOCH_ENTER(et); while (m) { mn = m->m_nextpkt; m->m_nextpkt = NULL; @@ -824,7 +825,8 @@ ether_input(struct ifnet *ifp, struct mbuf *m) netisr_dispatch(NETISR_ETHER, m); m = mn; } - NET_EPOCH_EXIT(et); + if (__predict_false(ifp->if_flags & IFF_NEEDSEPOCH)) + NET_EPOCH_EXIT(et); CURVNET_RESTORE(); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001230147.00N1lh9g042266>