On Tue, Apr 19, 2016 at 8:39 PM, Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, Apr 19, 2016 at 06:25:32PM +0200, Jesper Dangaard Brouer wrote: >> On Mon, 18 Apr 2016 07:17:13 -0700 >> Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: >> > > alloc_pages_exact() > We want to allocate 32 order-0 physically contiguous pages and to free each one of them individually. the documentation states "Memory allocated by this function must be released by free_pages_exact()" Also it returns a pointer to the memory and we need pointers to pages. >> > > allocates many physically contiguous pages with order0 ! so we assume >> > > it is ok to use split_page. >> > >> > Note: I have no idea of split_page() performance : >> >> Maybe Mel knows? > > Irrelevant in comparison to the cost of allocating an order-5 pages if > one is not already available. > we still allocate order-5 pages but now we split them to 32 order-0 pages. the split adds extra few cpu cycles but it is lookless and straightforward, and it does the job in terms of better memory utilization. now in scenarios where small packets can hold a ref on pages for too long they would hold a ref on order-0 pages rather than order-5. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>