linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/4] net: consolidate page_is_pfmemalloc() usage
@ 2021-01-27 20:10 Alexander Lobakin
  2021-01-27 20:11 ` [PATCH v2 net-next 1/4] mm: constify page_is_pfmemalloc() argument Alexander Lobakin
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Alexander Lobakin @ 2021-01-27 20:10 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: David Rientjes, Yisen Zhuang, Salil Mehta, Jesse Brandeburg,
	Tony Nguyen, Saeed Mahameed, Leon Romanovsky, Andrew Morton,
	Jesper Dangaard Brouer, Ilias Apalodimas, Jonathan Lemon,
	Willem de Bruijn, Randy Dunlap, Pablo Neira Ayuso, Dexuan Cui,
	Jakub Sitnicki, Marco Elver, Paolo Abeni, Alexander Lobakin,
	netdev, linux-kernel, intel-wired-lan, linux-rdma, linux-mm

page_is_pfmemalloc() is used mostly by networking drivers to test
if a page can be considered for reusing/recycling.
It doesn't write anything to the struct page itself, so its sole
argument can be constified, as well as the first argument of
skb_propagate_pfmemalloc().
In Page Pool core code, it can be simply inlined instead.
Most of the callers from NIC drivers were just doppelgangers of
the same condition tests. Derive them into a new common function
do deduplicate the code.

Since v1 [0]:
 - new: reduce code duplication by introducing a new common function
   to test if a page can be reused/recycled (David Rientjes);
 - collect autographs for Page Pool bits (Jesper Dangaard Brouer,
   Ilias Apalodimas).

[0] https://lore.kernel.org/netdev/20210125164612.243838-1-alobakin@pm.me

Alexander Lobakin (4):
  mm: constify page_is_pfmemalloc() argument
  skbuff: constify skb_propagate_pfmemalloc() "page" argument
  net: introduce common dev_page_is_reserved()
  net: page_pool: simplify page recycling condition tests

 .../net/ethernet/hisilicon/hns3/hns3_enet.c   | 10 ++--------
 drivers/net/ethernet/intel/fm10k/fm10k_main.c |  9 ++-------
 drivers/net/ethernet/intel/i40e/i40e_txrx.c   | 15 +--------------
 drivers/net/ethernet/intel/iavf/iavf_txrx.c   | 15 +--------------
 drivers/net/ethernet/intel/ice/ice_txrx.c     | 11 +----------
 drivers/net/ethernet/intel/igb/igb_main.c     |  7 +------
 drivers/net/ethernet/intel/igc/igc_main.c     |  7 +------
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |  7 +------
 .../net/ethernet/intel/ixgbevf/ixgbevf_main.c |  7 +------
 .../net/ethernet/mellanox/mlx5/core/en_rx.c   |  7 +------
 include/linux/mm.h                            |  2 +-
 include/linux/skbuff.h                        | 19 +++++++++++++++++--
 net/core/page_pool.c                          | 14 ++++----------
 13 files changed, 34 insertions(+), 96 deletions(-)

-- 
2.30.0




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

end of thread, other threads:[~2021-01-30 21:23 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-27 20:10 [PATCH v2 net-next 0/4] net: consolidate page_is_pfmemalloc() usage Alexander Lobakin
2021-01-27 20:11 ` [PATCH v2 net-next 1/4] mm: constify page_is_pfmemalloc() argument Alexander Lobakin
2021-01-28 22:44   ` David Rientjes
2021-01-30  2:30   ` Jakub Kicinski
2021-01-27 20:11 ` [PATCH v2 net-next 2/4] skbuff: constify skb_propagate_pfmemalloc() "page" argument Alexander Lobakin
2021-01-28 22:45   ` David Rientjes
2021-01-27 20:11 ` [PATCH v2 net-next 3/4] net: introduce common dev_page_is_reserved() Alexander Lobakin
2021-01-27 21:47   ` Jesse Brandeburg
2021-01-28 22:48   ` David Rientjes
2021-01-30  2:39   ` Jakub Kicinski
2021-01-30 15:42     ` Alexander Lobakin
2021-01-30 19:07       ` Jakub Kicinski
2021-01-30 19:45         ` Alexander Lobakin
2021-01-30 21:23           ` John Hubbard
2021-01-27 20:11 ` [PATCH v2 net-next 4/4] net: page_pool: simplify page recycling condition tests Alexander Lobakin
2021-01-28 22:49   ` David Rientjes
2021-01-27 21:52 ` [PATCH v2 net-next 0/4] net: consolidate page_is_pfmemalloc() usage 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).