netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/8] net: make sure we retain NAPI ordering on netdev->napi_list
@ 2025-01-07 16:08 Jakub Kicinski
  2025-01-07 16:08 ` [PATCH net-next v2 1/8] " Jakub Kicinski
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Jakub Kicinski @ 2025-01-07 16:08 UTC (permalink / raw)
  To: davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms,
	willemdebruijn.kernel, sdf, Jakub Kicinski

I promised Eric to remove the rtnl protection of the NAPI list,
when I sat down to implement it over the break I realized that
the recently added NAPI ID retention will break the list ordering
assumption we have in netlink dump. The ordering used to happen
"naturally", because we'd always add NAPIs that the head of the
list, and assign a new monotonically increasing ID.

Before the first patch of this series we'd still only add at
the head of the list but now the newly added NAPI may inherit
from its config an ID lower than something else already on the list.

The fix is in the first patch, the rest is netdevsim churn to test it.
I'm posting this for net-next, because AFAICT the problem can't
be triggered in net, given the very limited queue API adoption.

v2:
 - [patch 2] allocate the array with kcalloc() instead of kvcalloc()
 - [patch 2] set GFP_KERNEL_ACCOUNT when allocating queues
 - [patch 6] don't null-check page pool before page_pool_destroy()
 - [patch 6] controled -> controlled
 - [patch 7] change mode to 0200
 - [patch 7] reorder removal to be inverse of add
 - [patch 7] fix the spaces vs tabs
v1: https://lore.kernel.org/20250103185954.1236510-1-kuba@kernel.org

Jakub Kicinski (8):
  net: make sure we retain NAPI ordering on netdev->napi_list
  netdev: define NETDEV_INTERNAL
  netdevsim: support NAPI config
  netdevsim: allocate rqs individually
  netdevsim: add queue alloc/free helpers
  netdevsim: add queue management API support
  netdevsim: add debugfs-triggered queue reset
  selftests: net: test listing NAPI vs queue resets

 Documentation/networking/netdevices.rst  |  10 +
 drivers/net/netdevsim/netdev.c           | 259 ++++++++++++++++++++---
 drivers/net/netdevsim/netdevsim.h        |   5 +-
 net/core/dev.c                           |  42 +++-
 net/core/netdev_rx_queue.c               |   1 +
 tools/testing/selftests/net/nl_netdev.py |  19 +-
 6 files changed, 294 insertions(+), 42 deletions(-)

-- 
2.47.1


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

end of thread, other threads:[~2025-01-09 14:40 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-07 16:08 [PATCH net-next v2 0/8] net: make sure we retain NAPI ordering on netdev->napi_list Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 1/8] " Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 2/8] netdev: define NETDEV_INTERNAL Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 3/8] netdevsim: support NAPI config Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 4/8] netdevsim: allocate rqs individually Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 5/8] netdevsim: add queue alloc/free helpers Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 6/8] netdevsim: add queue management API support Jakub Kicinski
2025-01-07 22:53   ` Mina Almasry
2025-01-08  0:45     ` Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 7/8] netdevsim: add debugfs-triggered queue reset Jakub Kicinski
2025-01-07 23:00   ` Mina Almasry
2025-01-08  0:50     ` Jakub Kicinski
2025-01-07 16:08 ` [PATCH net-next v2 8/8] selftests: net: test listing NAPI vs queue resets Jakub Kicinski
2025-01-09 14:40 ` [PATCH net-next v2 0/8] net: make sure we retain NAPI ordering on netdev->napi_list patchwork-bot+netdevbpf

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).