Re: [PATCH] mm: page_alloc: High-order per-cpu page allocator v7

From: Eric Dumazet
Date: Wed Dec 07 2016 - 14:01:57 EST


On Wed, 2016-12-07 at 10:12 +0000, Mel Gorman wrote:

> This is the result from netperf running UDP_STREAM on localhost. It was
> selected on the basis that it is slab-intensive and has been the subject
> of previous SLAB vs SLUB comparisons with the caveat that this is not
> testing between two physical hosts.
>

Interesting results.

netperf UDP_STREAM is not really slab intensive : (for large sendsizes
like 16KB)

Bulk of the storage should be allocated from alloc_skb_with_frags(),
ie using pages.

And I am not sure we enabled high order pages in this path ?

ip_make_skb()
__ip_append_data()
sock_alloc_send_skb()
sock_alloc_send_pskb (..., max_page_order=0)
alloc_skb_with_frags ( max_page_order=0)

So far, I believe net/unix/af_unix.c uses PAGE_ALLOC_COSTLY_ORDER as
max_order, but UDP does not do that yet.

We probably could enable high-order pages there, if we believe this is
okay.

Or maybe I missed and this already happened ? ;)

Thanks.