git: 4dfe70fdbda0 - main - netgraph/ng_bridge: Avoid cache thrashing

Lutz Donnerhacke donner at FreeBSD.org
Thu May 13 19:18:30 UTC 2021


The branch main has been updated by donner:

URL: https://cgit.FreeBSD.org/src/commit/?id=4dfe70fdbda05453e824bc9edfc0d09eab7b2929

commit 4dfe70fdbda05453e824bc9edfc0d09eab7b2929
Author:     Lutz Donnerhacke <donner at FreeBSD.org>
AuthorDate: 2021-02-11 22:59:11 +0000
Commit:     Lutz Donnerhacke <donner at FreeBSD.org>
CommitDate: 2021-05-13 19:14:36 +0000

    netgraph/ng_bridge: Avoid cache thrashing
    
    Hint the compiler, that this update is needed at most once per second.
    Only in this case the memory line needs to be written.  This will
    reduce the amount of cache trashing during forward of most frames.
    
    Suggested by:   zec
    Approved by:    zec
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D28601
---
 sys/netgraph/ng_bridge.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys/netgraph/ng_bridge.c b/sys/netgraph/ng_bridge.c
index 470c0f05f18d..820c93515490 100644
--- a/sys/netgraph/ng_bridge.c
+++ b/sys/netgraph/ng_bridge.c
@@ -788,7 +788,8 @@ ng_bridge_rcvdata(hook_p hook, item_p item)
 		 * This is safe without locking, because it's
 		 * the only operation during shared access.
 		 */
-		host->staleness = 0;
+		if (__predict_false(host->staleness > 0))
+			host->staleness = 0;
 
 	if ((host == NULL && ctx.incoming->learnMac) ||
 	    (host != NULL && host->link != ctx.incoming)) {


More information about the dev-commits-src-all mailing list