netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/24] Split netmem from struct page
@ 2023-01-05 21:46 Matthew Wilcox (Oracle)
  2023-01-05 21:46 ` [PATCH v2 01/24] netmem: Create new type Matthew Wilcox (Oracle)
                   ` (24 more replies)
  0 siblings, 25 replies; 84+ messages in thread
From: Matthew Wilcox (Oracle) @ 2023-01-05 21:46 UTC (permalink / raw)
  To: Jesper Dangaard Brouer, Ilias Apalodimas
  Cc: Matthew Wilcox (Oracle), netdev, linux-mm, Shakeel Butt

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 patchset does
that for netmem which is used for page pools.

There are some relatively significant reductions in kernel text size
from these changes.  They don't appear to affect performance at all,
but it's nice to save a bit of memory.

v2:
 - Rebase to next-20230105
 - Add kernel-doc for struct netmem
 - Add mlx5 compilation fixes from Jesper
 - Folded in minor nit from Alex Duyck

Matthew Wilcox (Oracle) (24):
  netmem: Create new type
  netmem: Add utility functions
  page_pool: Add netmem_set_dma_addr() and netmem_get_dma_addr()
  page_pool: Convert page_pool_release_page() to
    page_pool_release_netmem()
  page_pool: Start using netmem in allocation path.
  page_pool: Convert page_pool_return_page() to
    page_pool_return_netmem()
  page_pool: Convert __page_pool_put_page() to __page_pool_put_netmem()
  page_pool: Convert pp_alloc_cache to contain netmem
  page_pool: Convert page_pool_defrag_page() to
    page_pool_defrag_netmem()
  page_pool: Convert page_pool_put_defragged_page() to netmem
  page_pool: Convert page_pool_empty_ring() to use netmem
  page_pool: Convert page_pool_alloc_pages() to page_pool_alloc_netmem()
  page_pool: Convert page_pool_dma_sync_for_device() to take a netmem
  page_pool: Convert page_pool_recycle_in_cache() to netmem
  page_pool: Remove page_pool_defrag_page()
  page_pool: Use netmem in page_pool_drain_frag()
  page_pool: Convert page_pool_return_skb_page() to use netmem
  page_pool: Convert frag_page to frag_nmem
  xdp: Convert to netmem
  mm: Remove page pool members from struct page
  page_pool: Pass a netmem to init_callback()
  net: Add support for netmem in skb_frag
  mvneta: Convert to netmem
  mlx5: Convert to netmem

 Documentation/networking/page_pool.rst        |   5 +
 drivers/net/ethernet/marvell/mvneta.c         |  48 +--
 drivers/net/ethernet/mellanox/mlx5/core/en.h  |  10 +-
 .../net/ethernet/mellanox/mlx5/core/en/txrx.h |   4 +-
 .../net/ethernet/mellanox/mlx5/core/en/xdp.c  |  24 +-
 .../net/ethernet/mellanox/mlx5/core/en/xdp.h  |   2 +-
 .../net/ethernet/mellanox/mlx5/core/en_main.c |  12 +-
 .../net/ethernet/mellanox/mlx5/core/en_rx.c   | 130 +++++----
 include/linux/mm_types.h                      |  22 --
 include/linux/skbuff.h                        |  11 +
 include/net/page_pool.h                       | 209 +++++++++++--
 include/trace/events/page_pool.h              |  28 +-
 net/bpf/test_run.c                            |   4 +-
 net/core/page_pool.c                          | 274 +++++++++---------
 net/core/xdp.c                                |   7 +-
 15 files changed, 471 insertions(+), 319 deletions(-)

-- 
2.35.1

^ permalink raw reply	[flat|nested] 84+ messages in thread

end of thread, other threads:[~2023-01-11 13:59 UTC | newest]

Thread overview: 84+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-05 21:46 [PATCH v2 00/24] Split netmem from struct page Matthew Wilcox (Oracle)
2023-01-05 21:46 ` [PATCH v2 01/24] netmem: Create new type Matthew Wilcox (Oracle)
2023-01-06 13:07   ` Jesper Dangaard Brouer
2023-01-09 17:20   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 02/24] netmem: Add utility functions Matthew Wilcox (Oracle)
2023-01-06  2:24   ` kernel test robot
2023-01-06 20:35     ` Matthew Wilcox
2023-01-06 13:35   ` Jesper Dangaard Brouer
2023-01-05 21:46 ` [PATCH v2 03/24] page_pool: Add netmem_set_dma_addr() and netmem_get_dma_addr() Matthew Wilcox (Oracle)
2023-01-06 13:43   ` Jesper Dangaard Brouer
2023-01-09 17:30   ` Ilias Apalodimas
2023-01-10  9:17     ` Ilias Apalodimas
2023-01-10 18:16       ` Matthew Wilcox
2023-01-10 18:15     ` Matthew Wilcox
2023-01-05 21:46 ` [PATCH v2 04/24] page_pool: Convert page_pool_release_page() to page_pool_release_netmem() Matthew Wilcox (Oracle)
2023-01-06 13:46   ` Jesper Dangaard Brouer
2023-01-10  9:28   ` Ilias Apalodimas
2023-01-10 18:47     ` Matthew Wilcox
2023-01-11 13:56       ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 05/24] page_pool: Start using netmem in allocation path Matthew Wilcox (Oracle)
2023-01-06  2:34   ` kernel test robot
2023-01-06 13:59   ` Jesper Dangaard Brouer
2023-01-06 15:36     ` Matthew Wilcox
2023-01-10  9:30   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 06/24] page_pool: Convert page_pool_return_page() to page_pool_return_netmem() Matthew Wilcox (Oracle)
2023-01-06 14:10   ` Jesper Dangaard Brouer
2023-01-10  9:39   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 07/24] page_pool: Convert __page_pool_put_page() to __page_pool_put_netmem() Matthew Wilcox (Oracle)
2023-01-06 14:14   ` Jesper Dangaard Brouer
2023-01-10  9:47   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 08/24] page_pool: Convert pp_alloc_cache to contain netmem Matthew Wilcox (Oracle)
2023-01-06 14:18   ` Jesper Dangaard Brouer
2023-01-10  9:58   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 09/24] page_pool: Convert page_pool_defrag_page() to page_pool_defrag_netmem() Matthew Wilcox (Oracle)
2023-01-06 14:29   ` Jesper Dangaard Brouer
2023-01-10 10:27   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 10/24] page_pool: Convert page_pool_put_defragged_page() to netmem Matthew Wilcox (Oracle)
2023-01-06 14:32   ` Jesper Dangaard Brouer
2023-01-10 10:36   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 11/24] page_pool: Convert page_pool_empty_ring() to use netmem Matthew Wilcox (Oracle)
2023-01-06 15:22   ` Jesper Dangaard Brouer
2023-01-10 10:38   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 12/24] page_pool: Convert page_pool_alloc_pages() to page_pool_alloc_netmem() Matthew Wilcox (Oracle)
2023-01-06 15:27   ` Jesper Dangaard Brouer
2023-01-10 10:45   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 13/24] page_pool: Convert page_pool_dma_sync_for_device() to take a netmem Matthew Wilcox (Oracle)
2023-01-06 15:28   ` Jesper Dangaard Brouer
2023-01-10 10:47   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 14/24] page_pool: Convert page_pool_recycle_in_cache() to netmem Matthew Wilcox (Oracle)
2023-01-06 15:29   ` Jesper Dangaard Brouer
2023-01-10 10:48   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 15/24] page_pool: Remove page_pool_defrag_page() Matthew Wilcox (Oracle)
2023-01-06 15:29   ` Jesper Dangaard Brouer
2023-01-10  9:47   ` Ilias Apalodimas
2023-01-10 22:00     ` Matthew Wilcox
2023-01-11 13:58       ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 16/24] page_pool: Use netmem in page_pool_drain_frag() Matthew Wilcox (Oracle)
2023-01-06 15:30   ` Jesper Dangaard Brouer
2023-01-10 11:00   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 17/24] page_pool: Convert page_pool_return_skb_page() to use netmem Matthew Wilcox (Oracle)
2023-01-06 15:49   ` Jesper Dangaard Brouer
2023-01-06 16:53     ` Matthew Wilcox
2023-01-06 20:16       ` Jesper Dangaard Brouer
2023-01-09 18:36         ` Matthew Wilcox
2023-01-10 10:04           ` Jesper Dangaard Brouer
2023-01-05 21:46 ` [PATCH v2 18/24] page_pool: Convert frag_page to frag_nmem Matthew Wilcox (Oracle)
2023-01-06 15:51   ` Jesper Dangaard Brouer
2023-01-10 11:36   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 19/24] xdp: Convert to netmem Matthew Wilcox (Oracle)
2023-01-06 15:53   ` Jesper Dangaard Brouer
2023-01-10 11:50   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 20/24] mm: Remove page pool members from struct page Matthew Wilcox (Oracle)
2023-01-06 15:56   ` Jesper Dangaard Brouer
2023-01-10 11:51   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 21/24] page_pool: Pass a netmem to init_callback() Matthew Wilcox (Oracle)
2023-01-06 16:02   ` Jesper Dangaard Brouer
2023-01-10 11:32   ` Ilias Apalodimas
2023-01-05 21:46 ` [PATCH v2 22/24] net: Add support for netmem in skb_frag Matthew Wilcox (Oracle)
2023-01-05 21:46 ` [PATCH v2 23/24] mvneta: Convert to netmem Matthew Wilcox (Oracle)
2023-01-05 21:46 ` [PATCH v2 24/24] mlx5: " Matthew Wilcox (Oracle)
2023-01-06 16:31   ` Jesper Dangaard Brouer
2023-01-09 11:46     ` Tariq Toukan
2023-01-09 12:27   ` Tariq Toukan
2023-01-06  1:20 ` [PATCH v2 00/24] Split netmem from struct page Jesse Brandeburg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).