Skip to contentSkip to conversation

optimize prefetch() usage in skb_queue_walk()

PATCH Applied Oleg Nesterov 2 participants 2 messages Dec 27, 2004 – Dec 28, 2004 Networking

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 optimize prefetch() usage in skb_queue_walk()

Hello.

This patch changes skb_queue_walk() in the same manner as in list_for_each() prefetch optimization, see
http://marc.theaimsgroup.com/?l=linux-kernel&m=110399132418587

Oleg.

include/linux/skbuff.h renamed from include/linux/skbuff.h~ +3 -3
@@ -1071,9 +1071,9 @@
 }
 
 #define skb_queue_walk(queue, skb) \
-		for (skb = (queue)->next, prefetch(skb->next);	\
-		     (skb != (struct sk_buff *)(queue));	\
-		     skb = skb->next, prefetch(skb->next))
+		for (skb = (queue)->next;					\
+		     prefetch(skb->next), (skb != (struct sk_buff *)(queue));	\
+		     skb = skb->next)
 
 
 extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,