diff options
author | Nikolay Aleksandrov <nikolay@cumulusnetworks.com> | 2017-02-04 18:05:09 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-07 04:53:13 +0100 |
commit | 83a718d6294964fd1b227fa5f1ad001bc1fe7656 (patch) | |
tree | 9582a827ce818aba63b5bb5f0f7a3d1e9f992cf9 /net/bridge/br_fdb.c | |
parent | bridge: move write-heavy fdb members in their own cache line (diff) | |
download | linux-83a718d6294964fd1b227fa5f1ad001bc1fe7656.tar.xz linux-83a718d6294964fd1b227fa5f1ad001bc1fe7656.zip |
bridge: fdb: write to used and updated at most once per jiffy
Writing once per jiffy is enough to limit the bridge's false sharing.
After this change the bridge doesn't show up in the local load HitM stats.
Suggested-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_fdb.c')
-rw-r--r-- | net/bridge/br_fdb.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index 5cbed5c0db88..5028691fa68a 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -597,7 +597,8 @@ void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source, fdb->dst = source; fdb_modified = true; } - fdb->updated = jiffies; + if (jiffies != fdb->updated) + fdb->updated = jiffies; if (unlikely(added_by_user)) fdb->added_by_user = 1; if (unlikely(fdb_modified)) |