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 [email protected] and [email protected].
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++) {