aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2025-11-21 08:32:52 +0000
committerPaolo Abeni <pabeni@redhat.com>2025-11-25 16:10:32 +0100
commitb2e9821cff6c3c9ac107fce5327070f4462bf8a7 (patch)
tree87ea18a757acf651c8394ca6b90c80963e009a83 /net/core/dev.c
parentnet_sched: sch_fq: prefetch one skb ahead in dequeue() (diff)
downloadwireguard-linux-b2e9821cff6c3c9ac107fce5327070f4462bf8a7.tar.xz
wireguard-linux-b2e9821cff6c3c9ac107fce5327070f4462bf8a7.zip
net: prefech skb->priority in __dev_xmit_skb()
Most qdiscs need to read skb->priority at enqueue time(). In commit 100dfa74cad9 ("net: dev_queue_xmit() llist adoption") I added a prefetch(next), lets add another one for the second half of skb. Note that skb->priority and skb->hash share a common cache line, so this patch helps qdiscs needing both fields. Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20251121083256.674562-11-edumazet@google.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to '')
-rw-r--r--net/core/dev.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index e19eb4e9d77c..53e2496dc429 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4246,6 +4246,7 @@ no_lock_out:
llist_for_each_entry_safe(skb, next, ll_list, ll_node) {
prefetch(next);
+ prefetch(&next->priority);
skb_mark_not_on_list(skb);
rc = dev_qdisc_enqueue(skb, q, &to_free, txq);
count++;