Thread (7 messages) 7 messages, 4 authors, 2012-08-30

Re: [PATCH] skbuff: remove pointless conditional before kfree_skb()

From: Eric Dumazet <hidden>
Date: 2012-08-28 14:12:37

On Tue, 2012-08-28 at 21:10 +0800, Wei Yongjun wrote:
quoted hunk ↗ jump to hunk
From: Wei Yongjun <redacted>

Remove pointless conditional before kfree_skb().

Signed-off-by: Wei Yongjun <redacted>
---
 include/linux/skbuff.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 7632c87..0b846d9 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2464,8 +2464,7 @@ static inline void nf_conntrack_get_reasm(struct sk_buff *skb)
 }
 static inline void nf_conntrack_put_reasm(struct sk_buff *skb)
 {
-	if (skb)
-		kfree_skb(skb);
+	kfree_skb(skb);
 }
 #endif
 #ifdef CONFIG_BRIDGE_NETFILTER

Its not exactly pointless.

Its a tradeoff between kernel code size, and ability for cpu to predict
a branch in kfree_skb()

This test is in hot path, and therefore this patch can potentially have
a performance impact.

I really think most kfree_skb() calls are done with a non NULL param,
so the branch prediction is good.

But after this patch, things are totally different.

Therefore, I am against it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help