summaryrefslogtreecommitdiff
path: root/include/linux/debugobjects.h
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2026-07-21 09:37:42 +0200
committerPaolo Abeni <pabeni@redhat.com>2026-07-21 09:37:42 +0200
commitbbc93a389e01aebe73ffb4cfeeedc338b206c8c5 (patch)
tree941e3e196d7bbc98ef928ff838f2ae6f2fd13436 /include/linux/debugobjects.h
parent1e4aed51b7bae9dae05601760a354c06ae23b064 (diff)
parent5415c41a83789f02238a61cecd3f9125045d4306 (diff)
Merge branch 'geneve-make-geneve_fill_info-rtnl-less'
Eric Dumazet says: ==================== geneve: make geneve_fill_info() RTNL-less This series makes geneve_fill_info() independent of the RTNL lock by converting the device configuration to an RCU-protected pointer. Historically, geneve_changelink() updated the device configuration by copying the new configuration over the old one using memcpy() under RTNL. To prevent the transmit/receive data paths from reading torn values during the copy, geneve_quiesce() was used to pause the data path and wait for a synchronize_net(), causing packet loss and latency. By converting the configuration to an RCU-protected pointer, we can perform atomic updates via RCU swap. This allows data path readers to safely access the configuration locklessly under RCU read lock, and removes the need to stop the data path during changelink. With the RCU infrastructure in place, geneve_fill_info() is then updated to read the configuration under RCU read lock, removing its dependency on RTNL. v1: https://lore.kernel.org/netdev/20260701120454.3533252-1-edumazet@google.com/T/#m887804321856d9b5c7142107e81b52553e60e6ab ==================== Link: https://patch.msgid.link/20260707145331.3717941-1-edumazet@google.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions