net: avoid possible false sharing in sk_leave_memory_pressure()
authorEric Dumazet <edumazet@google.com>
Wed, 9 Oct 2019 19:55:53 +0000 (12:55 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jan 2020 13:46:49 +0000 (14:46 +0100)
commit2ffb5a9b396d7857600fdf94432a94490c0cae71
tree773c5ad01dd9a4f996365c630705e87b132a128c
parente891a20643c751e07f1404c6e9e2267391a37f04
net: avoid possible false sharing in sk_leave_memory_pressure()

[ Upstream commit 503978aca46124cd714703e180b9c8292ba50ba7 ]

As mentioned in https://github.com/google/ktsan/wiki/READ_ONCE-and-WRITE_ONCE#it-may-improve-performance
a C compiler can legally transform :

if (memory_pressure && *memory_pressure)
        *memory_pressure = 0;

to :

if (memory_pressure)
        *memory_pressure = 0;

Fixes: 0604475119de ("tcp: add TCPMemoryPressuresChrono counter")
Fixes: 180d8cd942ce ("foundations of per-cgroup memory pressure controlling.")
Fixes: 3ab224be6d69 ("[NET] CORE: Introducing new memory accounting interface.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/core/sock.c