All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: Jesper Dangaard Brouer <jbrouer@redhat.com>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	brouer@redhat.com, netdev@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 00/24] Split page pools from struct page
Date: Mon, 5 Dec 2022 17:44:46 +0200	[thread overview]
Message-ID: <Y44R7i65ftm+uGdF@hera> (raw)
In-Reply-To: <cfe0b2ca-824d-3a52-423a-f8262f12fabe@redhat.com>

Hi Jesper,

On Mon, Dec 05, 2022 at 04:34:10PM +0100, Jesper Dangaard Brouer wrote:
> 
> On 30/11/2022 23.07, Matthew Wilcox (Oracle) wrote:
> > The MM subsystem is trying to reduce struct page to a single pointer.
> > The first step towards that is splitting struct page by its individual
> > users, as has already been done with folio and slab.  This attempt chooses
> > 'netmem' as a name, but I am not even slightly committed to that name,
> > and will happily use another.
> 
> I've not been able to come-up with a better name, so I'm okay with
> 'netmem'.  Others are of-cause free to bikesheet this ;-)

Same here. But if anyone has a better name please shout.

> 
> > There are some relatively significant reductions in kernel text
> > size from these changes.  I'm not qualified to judge how they
> > might affect performance, but every call to put_page() includes
> > a call to compound_head(), which is now rather more complex
> > than it once was (at least in a distro config which enables
> > CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP).
> > 
> 
> I have a micro-benchmark [1][2], that I want to run on this patchset.
> Reducing the asm code 'text' size is less likely to improve a
> microbenchmark. The 100Gbit mlx5 driver uses page_pool, so perhaps I can
> run a packet benchmark that can show the (expected) performance improvement.
> 
> [1] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/lib/bench_page_pool_simple.c
> [2] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/lib/bench_page_pool_cross_cpu.c
> 

If you could give it a spin it would be great.  I did apply the patchset
and was running fine on my Arm box. I was about to run these tests, but then
I remembered that this only works for x86.  I don't have any cards supported
by page pool around.

> > I've only converted one user of the page_pool APIs to use the new netmem
> > APIs, all the others continue to use the page based ones.
> > 
> 
> I guess we/netdev-devels need to update the NIC drivers that uses page_pool.
> 
 
[...]

Regards
/Ilias


  reply	other threads:[~2022-12-05 15:44 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-30 22:07 [PATCH 00/24] Split page pools from struct page Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 01/24] netmem: Create new type Matthew Wilcox (Oracle)
2022-12-05 14:42   ` Jesper Dangaard Brouer
2022-11-30 22:07 ` [PATCH 02/24] netmem: Add utility functions Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 03/24] page_pool: Add netmem_set_dma_addr() and netmem_get_dma_addr() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 04/24] page_pool: Convert page_pool_release_page() to page_pool_release_netmem() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 05/24] page_pool: Start using netmem in allocation path Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 06/24] page_pool: Convert page_pool_return_page() to page_pool_return_netmem() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 07/24] page_pool: Convert __page_pool_put_page() to __page_pool_put_netmem() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 08/24] page_pool: Convert pp_alloc_cache to contain netmem Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 09/24] page_pool: Convert page_pool_defrag_page() to page_pool_defrag_netmem() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 10/24] page_pool: Convert page_pool_put_defragged_page() to netmem Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 11/24] page_pool: Convert page_pool_empty_ring() to use netmem Matthew Wilcox (Oracle)
2022-12-02 21:25   ` Alexander H Duyck
2022-11-30 22:07 ` [PATCH 12/24] page_pool: Convert page_pool_alloc_pages() to page_pool_alloc_netmem() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 13/24] page_pool: Convert page_pool_dma_sync_for_device() to take a netmem Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 14/24] page_pool: Convert page_pool_recycle_in_cache() to netmem Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 15/24] page_pool: Remove page_pool_defrag_page() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 16/24] page_pool: Use netmem in page_pool_drain_frag() Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 17/24] page_pool: Convert page_pool_return_skb_page() to use netmem Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 18/24] page_pool: Convert frag_page to frag_nmem Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 19/24] xdp: Convert to netmem Matthew Wilcox (Oracle)
2022-11-30 22:07 ` [PATCH 20/24] mm: Remove page pool members from struct page Matthew Wilcox (Oracle)
2022-11-30 22:08 ` [PATCH 21/24] netmem_to_virt Matthew Wilcox (Oracle)
2022-11-30 22:08 ` [PATCH 22/24] page_pool: Pass a netmem to init_callback() Matthew Wilcox (Oracle)
2022-11-30 22:08 ` [PATCH 23/24] net: Add support for netmem in skb_frag Matthew Wilcox (Oracle)
2022-11-30 22:08 ` [PATCH 24/24] mvneta: Convert to netmem Matthew Wilcox (Oracle)
2022-12-05 15:34 ` [PATCH 00/24] Split page pools from struct page Jesper Dangaard Brouer
2022-12-05 15:44   ` Ilias Apalodimas [this message]
2022-12-05 16:31   ` Matthew Wilcox
2022-12-06  9:43     ` Jesper Dangaard Brouer
2022-12-06 16:08       ` Matthew Wilcox
2022-12-08 15:33         ` Jesper Dangaard Brouer
2022-12-06 16:05 ` [PATCH 25/26] netpool: Additional utility functions Matthew Wilcox (Oracle)
2022-12-06 16:05 ` [PATCH 26/26] mlx5: Convert to netmem Matthew Wilcox (Oracle)
2022-12-08 15:10   ` Jesper Dangaard Brouer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y44R7i65ftm+uGdF@hera \
    --to=ilias.apalodimas@linaro.org \
    --cc=brouer@redhat.com \
    --cc=hawk@kernel.org \
    --cc=jbrouer@redhat.com \
    --cc=linux-mm@kvack.org \
    --cc=netdev@vger.kernel.org \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.