From: Eric Dumazet <eric.dumazet@xxxxxxxxx> Date: Tue, 03 Apr 2012 17:28:28 +0200 > unix_dgram_sendmsg() currently builds linear skbs, and this can stress > page allocator with high order page allocations. When memory gets > fragmented, this can eventually fail. > > We can try to use order-2 allocations for skb head (SKB_MAX_ALLOC) plus > up to 16 page fragments to lower pressure on buddy allocator. > > This patch has no effect on messages of less than 16064 bytes. > (on 64bit arches with PAGE_SIZE=4096) > > For bigger messages (from 16065 to 81600 bytes), this patch brings > reliability at the expense of performance penalty because of extra pages > allocations. > > netperf -t DG_STREAM -T 0,2 -- -m 16064 -s 200000 > ->4086040 Messages / 10s > > netperf -t DG_STREAM -T 0,2 -- -m 16068 -s 200000 > ->3901747 Messages / 10s > > Signed-off-by: Eric Dumazet <eric.dumazet@xxxxxxxxx> > --- > v2: use SKB_MAX_ALLOC instead of SKB_MAX_ORDER(0, 0) to not slow down > applications using up to 16000 bytes messages. Looks good, applied to net-next, thanks Eric! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html