Re: [PATCH] slub: prefetch next freelist pointer in slab_alloc()
From: Eric Dumazet
Date: Sat Dec 17 2011 - 17:56:47 EST
Le vendredi 16 dÃcembre 2011 Ã 18:18 +0100, Eric Dumazet a Ãcrit :
> I wouldnt expect TCP being a huge win (most of cpu is consumed in tcp
> stack, not really memory allocations), but still...
>
> [I expect much better gain on an UDP load, where memory allocator costs
> are higher ]
Update on benches. UDP results are really good.
UDP test : One cpu (cpu0) handling NIC irqs, one cpu (cpu1) running a
mono threaded UDP receiver (only receives UDP messages, no xmits)
NUMA machine, feeded with 1.000.000 64bytes packets per second (from
another pktgen machine)
cpu0/cpu1 are on different sockets, to force cache line bouncings and
stress SLUB (allocations done on cpu0, frees on cpu1)
bnx2x adapter (using new build_skb() service for low memory latencies,
available in net-next tree)
Before slub prefetch patch :
590.000 messages received per second by application,
410.000 drops per second.
After slub prefetch patch :
740.000 messages received per second by application,
260.000 drops per second.
[ If application runs on cpu2 (same socket than cpu0), it can receive
920.000 pps (after patch) instead of 890.000 pps (before patch) ]
Thanks
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/