]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: add prefetch() in skb_defer_free_flush()
authorEric Dumazet <edumazet@google.com>
Thu, 6 Nov 2025 08:55:00 +0000 (08:55 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 8 Nov 2025 03:00:16 +0000 (19:00 -0800)
skb_defer_free_flush() is becoming more important these days.

Add a prefetch operation to reduce latency a bit on some
platforms like AMD EPYC 7B12.

On more recent cpus, a stall happens when reading skb_shinfo().
Avoiding it will require a more elaborate strategy.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Link: https://patch.msgid.link/20251106085500.2438951-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/dev.c

index 537aa43edff0e4bfedb42593146cfdf7511d8c37..69515edd17bc6a157046f31b3dd343a59ae192ab 100644 (file)
@@ -6782,6 +6782,7 @@ static void skb_defer_free_flush(void)
                free_list = llist_del_all(&sdn->defer_list);
 
                llist_for_each_entry_safe(skb, next, free_list, ll_node) {
+                       prefetch(next);
                        napi_consume_skb(skb, 1);
                }
        }