mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
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>
This commit is contained in:
parent
1214628cb1
commit
83a718d629
@ -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))
|
||||
|
@ -198,7 +198,8 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb
|
||||
if (dst->is_local)
|
||||
return br_pass_frame_up(skb);
|
||||
|
||||
dst->used = jiffies;
|
||||
if (jiffies != dst->used)
|
||||
dst->used = jiffies;
|
||||
br_forward(dst->dst, skb, local_rcv, false);
|
||||
} else {
|
||||
if (!mcast_hit)
|
||||
|
Loading…
Reference in New Issue
Block a user