Thread (24 messages) read the whole thread 24 messages, 6 authors, 2008-03-12

Re: [RFC PATCH 3/8] [NET]: uninline dev_alloc_skb, de-bloats a lot

From: Jan Engelhardt <hidden>
Date: 2008-02-20 16:35:58
Also in: lkml

On Feb 20 2008 15:47, Ilpo Järvinen wrote:
-23668  392 funcs, 104 +, 23772 -, diff: -23668 --- dev_alloc_skb

-static inline struct sk_buff *dev_alloc_skb(unsigned int length)
-{
-	return __dev_alloc_skb(length, GFP_ATOMIC);
-}
+extern struct sk_buff *dev_alloc_skb(unsigned int length);
Striking. How can this even happen? A callsite which calls

	dev_alloc_skb(n)

is just equivalent to

	__dev_alloc_skb(n, GFP_ATOMIC);

which means there's like 4 (or 8 if it's long) bytes more on the
stack. For a worst case, count in another 8 bytes for push and pop or mov on
the stack. But that still does not add up to 23 kb.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help