aboutsummaryrefslogtreecommitdiff
path: root/sys/nfs/bootp_subr.c
diff options
context:
space:
mode:
authorMatt Macy <mmacy@FreeBSD.org>2018-05-23 21:02:14 +0000
committerMatt Macy <mmacy@FreeBSD.org>2018-05-23 21:02:14 +0000
commit4f6c66cc9c75c857341b6ca6ca92d4808be8d3b5 (patch)
tree4bfcf94f0a6ca1b0584e050e141fcc97051aad44 /sys/nfs/bootp_subr.c
parent630ba2c514d723e8c55b5a513b541b614338047f (diff)
downloadsrc-4f6c66cc9c75c857341b6ca6ca92d4808be8d3b5.tar.gz
src-4f6c66cc9c75c857341b6ca6ca92d4808be8d3b5.zip
UDP: further performance improvements on tx
Cumulative throughput while running 64 netperf -H $DUT -t UDP_STREAM -- -m 1 on a 2x8x2 SKL went from 1.1Mpps to 2.5Mpps Single stream throughput increases from 910kpps to 1.18Mpps Baseline: https://people.freebsd.org/~mmacy/2018.05.11/udpsender2.svg - Protect read access to global ifnet list with epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender3.svg - Protect short lived ifaddr references with epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender4.svg - Convert if_afdata read lock path to epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender5.svg A fix for the inpcbhash contention is pending sufficient time on a canary at LLNW. Reviewed by: gallatin Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15409
Notes
Notes: svn path=/head/; revision=334118
Diffstat (limited to 'sys/nfs/bootp_subr.c')
-rw-r--r--sys/nfs/bootp_subr.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/nfs/bootp_subr.c b/sys/nfs/bootp_subr.c
index 8bf89850fa5c..d7657155f55d 100644
--- a/sys/nfs/bootp_subr.c
+++ b/sys/nfs/bootp_subr.c
@@ -409,12 +409,12 @@ bootpboot_p_iflist(void)
printf("Interface list:\n");
IFNET_RLOCK();
- for (ifp = TAILQ_FIRST(&V_ifnet);
+ for (ifp = CK_STAILQ_FIRST(&V_ifnet);
ifp != NULL;
- ifp = TAILQ_NEXT(ifp, if_link)) {
+ ifp = CK_STAILQ_NEXT(ifp, if_link)) {
for (ifa = CK_STAILQ_FIRST(&ifp->if_addrhead);
ifa != NULL;
- ifa = TAILQ_NEXT(ifa, ifa_link))
+ ifa = CK_STAILQ_NEXT(ifa, ifa_link))
if (ifa->ifa_addr->sa_family == AF_INET)
bootpboot_p_if(ifp, ifa);
}
@@ -1637,7 +1637,7 @@ bootpc_init(void)
*/
ifcnt = 0;
IFNET_RLOCK();
- TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
+ CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) {
if ((ifp->if_flags &
(IFF_LOOPBACK | IFF_POINTOPOINT | IFF_BROADCAST)) !=
IFF_BROADCAST)
@@ -1660,7 +1660,7 @@ bootpc_init(void)
retry:
ifctx = STAILQ_FIRST(&gctx->interfaces);
IFNET_RLOCK();
- TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
+ CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) {
if (ifctx == NULL)
break;
#ifdef BOOTP_WIRED_TO