From: Daniel Wagner <redacted>
Do not make the cache line dirty when nothing has changed.
sock_update_classid() does exactly the same thing.
Signed-off-by: Daniel Wagner <redacted>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Cc: Kamezawa Hiroyuki <redacted>
Cc: Glauber Costa <redacted>
Cc: Tejun Heo <tj@kernel.org>
Cc: Li Zefan <redacted>
Cc: Eric Dumazet <edumazet@google.com>
Cc: "David S. Miller" <davem@davemloft.net>
---
net/core/sock.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/net/core/sock.c b/net/core/sock.c
index 929bdcc..bbab10d 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1182,10 +1182,14 @@ EXPORT_SYMBOL(sock_update_classid);
void sock_update_netprioidx(struct sock *sk)
{
+ u32 prioidx;
+
if (in_interrupt())
return;
- sk->sk_cgrp_prioidx = task_netprioidx(current);
+ prioidx = task_netprioidx(current);
+ if (prioidx != sk->sk_cgrp_prioidx)
+ sk->sk_cgrp_prioidx = prioidx;
}
EXPORT_SYMBOL_GPL(sock_update_netprioidx);
#endif--
1.7.11.1.165.g299666c