On Mon, 2010-03-22 at 22:13 +0800, Stanislaw Gruszka wrote:
Changing default options in upstream kernel is problematic. Since
2.6.33 we have different memory allocations to avoid failures due to
buddy allocator fragmentation. It is optimized for normal usage case,
but with swcrypto when and skb's have to be linearized memory usage by
driver increase about 2 times.
Have you benchmarked about this change? Before paged Rx skb is used, we
have to allocate (8K + sizeof(struct skb_shared_info)) linear skb, which
is an order-2 allocation. Now with paged skb, first we do an order-1
allocation to hold the packet from device, then skb_linearize (if
swcrypto is used) the skb. Note, in most of the time, the skb->len will
be far less than 8K (unless 11n aggregation is used). So normally
skb_linearize only does an order-1 (or even order-0) allocation in most.
So in the swcrypto case, the paged Rx patch changes the memory
allocation from one order-2 into two separated order-1 allocations. It
should still be an improvement. No?
Thanks,
-yi