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++) {

Reply via email to