Module Name: src Committed By: knakahara Date: Tue Aug 16 04:35:57 UTC 2022
Modified Files: src/sys/net: pfil.c Log Message: micro optimaize for pfil_run_hooks(), ok'ed by ozaki-r@n.o and ryo@n.o. That can improve IPv4 forwarding throughput 5% - 10%. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/net/pfil.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/pfil.c diff -u src/sys/net/pfil.c:1.41 src/sys/net/pfil.c:1.42 --- src/sys/net/pfil.c:1.41 Tue May 17 10:28:08 2022 +++ src/sys/net/pfil.c Tue Aug 16 04:35:57 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pfil.c,v 1.41 2022/05/17 10:28:08 riastradh Exp $ */ +/* $NetBSD: pfil.c,v 1.42 2022/08/16 04:35:57 knakahara Exp $ */ /* * Copyright (c) 2013 Mindaugas Rasiukevicius <rmind at NetBSD org> @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pfil.c,v 1.41 2022/05/17 10:28:08 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pfil.c,v 1.42 2022/08/16 04:35:57 knakahara Exp $"); #if defined(_KERNEL_OPT) #include "opt_net_mpsafe.h" @@ -425,6 +425,11 @@ pfil_run_hooks(pfil_head_t *ph, struct m bound = curlwp_bind(); s = pserialize_read_enter(); phlist = atomic_load_consume(&phlistset->active); + if (phlist->nhooks == 0) { + pserialize_read_exit(s); + curlwp_bindx(bound); + return ret; + } psref_acquire(&psref, &phlist->psref, pfil_psref_class); pserialize_read_exit(s); for (u_int i = 0; i < phlist->nhooks; i++) {