aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLutz Donnerhacke <donner@FreeBSD.org>2021-02-11 22:59:11 +0000
committerLutz Donnerhacke <donner@FreeBSD.org>2021-05-27 10:55:52 +0000
commit7fd88ba72eb353c9dd43063f5faea019ad5b0ea9 (patch)
tree34081abde87f52df88ae86ffb378e0db04ef9acc
parentfb5e2f4d613eee6839f25084fdcf078081c080bc (diff)
downloadsrc-7fd88ba72eb353c9dd43063f5faea019ad5b0ea9.tar.gz
src-7fd88ba72eb353c9dd43063f5faea019ad5b0ea9.zip
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 Differential Revision: https://reviews.freebsd.org/D28601 (cherry picked from commit 4dfe70fdbda05453e824bc9edfc0d09eab7b2929)
-rw-r--r--sys/netgraph/ng_bridge.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netgraph/ng_bridge.c b/sys/netgraph/ng_bridge.c
index 0bed50fc240b..baedeb911e6d 100644
--- a/sys/netgraph/ng_bridge.c
+++ b/sys/netgraph/ng_bridge.c
@@ -863,7 +863,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)) {