linux/include
Benjamin LaHaise 4947d3ef8d [NET]: Speed up __alloc_skb()
From: Benjamin LaHaise <bcrl@kvack.org>

In __alloc_skb(), the use of skb_shinfo() which casts a u8 * to the 
shared info structure results in gcc being forced to do a reload of the 
pointer since it has no information on possible aliasing.  Fix this by 
using a pointer to refer to skb_shared_info.

By initializing skb_shared_info sequentially, the write combining buffers 
can reduce the number of memory transactions to a single write.  Reorder 
the initialization in __alloc_skb() to match the structure definition.  
There is also an alignment issue on 64 bit systems with skb_shared_info 
by converting nr_frags to a short everything packs up nicely.

Also, pass the slab cache pointer according to the fclone flag instead 
of using two almost identical function calls.

This raises bw_unix performance up to a peak of 707KB/s when combined 
with the spinlock patch.  It should help other networking protocols, too.

Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-03 14:06:50 -08:00
..
acpi [ACPI] increase owner_id limit to 64 from 32 2005-12-21 04:52:16 -05:00
asm-alpha [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-arm [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-arm26 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-cris [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-frv [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-generic [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-h8300 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-i386 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-ia64 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-m32r [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-m68k [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-m68knommu [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-mips [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-parisc [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-powerpc [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-ppc [PATCH] ppc: ppc4xx_dma DMA_MODE_{READ,WRITE} fix 2005-12-16 14:43:05 -08:00
asm-s390 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-sh [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-sh64 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-sparc [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-sparc64 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-um [PATCH] uml: eliminate anonymous union and clean up symlink lossage 2005-11-22 09:13:41 -08:00
asm-v850 [FLS64]: generic version 2006-01-03 13:11:06 -08:00
asm-x86_64 [FLS64]: x86_64 version 2006-01-03 13:11:07 -08:00
asm-xtensa [FLS64]: generic version 2006-01-03 13:11:06 -08:00
keys [PATCH] Keys: Export user-defined keyring operations 2005-10-30 17:37:22 -08:00
linux [NET]: Speed up __alloc_skb() 2006-01-03 14:06:50 -08:00
math-emu
media [PATCH] V4L/DVB: (3086c) Whitespaces cleanups part 4 2005-12-12 08:57:44 -08:00
mtd [MTD] user-abi: Clean up trailing white spaces 2005-11-07 14:43:11 +01:00
net [TCP]: Don't use __constant_htonl for a non const arg 2006-01-03 13:11:22 -08:00
pcmcia [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
rdma [IB] uverbs: have kernel return QP capabilities 2005-11-10 10:22:50 -08:00
rxrpc [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
scsi [SCSI] fix for fc transport recursion problem. 2005-12-15 19:22:14 -08:00
sound [ALSA] version 1.0.10rc3 2005-11-07 14:35:14 +01:00
video [PATCH] drivers/video: Replace custom macro with isdigit() 2005-09-13 08:22:33 -07:00