Commit dcc0113a authored by David Wei's avatar David Wei Committed by Jakub Kicinski
Browse files

netdev: add io_uring memory provider info



Add a nested attribute for io_uring memory provider info. For now it is
empty and its presence indicates that a particular page pool or queue
has an io_uring memory provider attached.

$ ./cli.py --spec netlink/specs/netdev.yaml --dump page-pool-get
[{'id': 80,
  'ifindex': 2,
  'inflight': 64,
  'inflight-mem': 262144,
  'napi-id': 525},
 {'id': 79,
  'ifindex': 2,
  'inflight': 320,
  'inflight-mem': 1310720,
  'io_uring': {},
  'napi-id': 525},
...

$ ./cli.py --spec netlink/specs/netdev.yaml --dump queue-get
[{'id': 0, 'ifindex': 1, 'type': 'rx'},
 {'id': 0, 'ifindex': 1, 'type': 'tx'},
 {'id': 0, 'ifindex': 2, 'napi-id': 513, 'type': 'rx'},
 {'id': 1, 'ifindex': 2, 'napi-id': 514, 'type': 'rx'},
...
 {'id': 12, 'ifindex': 2, 'io_uring': {}, 'napi-id': 525, 'type': 'rx'},
...

Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Signed-off-by: default avatarDavid Wei <dw@davidwei.uk>
Link: https://patch.msgid.link/20250204215622.695511-6-dw@davidwei.uk


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 57afb483
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -114,6 +114,9 @@ attribute-sets:
        doc: Bitmask of enabled AF_XDP features.
        type: u64
        enum: xsk-flags
  -
    name: io-uring-provider-info
    attributes: []
  -
    name: page-pool
    attributes:
@@ -171,6 +174,11 @@ attribute-sets:
        name: dmabuf
        doc: ID of the dmabuf this page-pool is attached to.
        type: u32
      -
        name: io-uring
        doc: io-uring memory provider information.
        type: nest
        nested-attributes: io-uring-provider-info
  -
    name: page-pool-info
    subset-of: page-pool
@@ -296,6 +304,11 @@ attribute-sets:
        name: dmabuf
        doc: ID of the dmabuf attached to this queue, if any.
        type: u32
      -
        name: io-uring
        doc: io_uring memory provider information.
        type: nest
        nested-attributes: io-uring-provider-info

  -
    name: qstats
@@ -572,6 +585,7 @@ operations:
            - inflight-mem
            - detach-time
            - dmabuf
            - io-uring
      dump:
        reply: *pp-reply
      config-cond: page-pool
@@ -637,6 +651,7 @@ operations:
            - napi-id
            - ifindex
            - dmabuf
            - io-uring
      dump:
        request:
          attributes:
+7 −0
Original line number Diff line number Diff line
@@ -86,6 +86,11 @@ enum {
	NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
};

enum {
	__NETDEV_A_IO_URING_PROVIDER_INFO_MAX,
	NETDEV_A_IO_URING_PROVIDER_INFO_MAX = (__NETDEV_A_IO_URING_PROVIDER_INFO_MAX - 1)
};

enum {
	NETDEV_A_PAGE_POOL_ID = 1,
	NETDEV_A_PAGE_POOL_IFINDEX,
@@ -94,6 +99,7 @@ enum {
	NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
	NETDEV_A_PAGE_POOL_DETACH_TIME,
	NETDEV_A_PAGE_POOL_DMABUF,
	NETDEV_A_PAGE_POOL_IO_URING,

	__NETDEV_A_PAGE_POOL_MAX,
	NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
@@ -136,6 +142,7 @@ enum {
	NETDEV_A_QUEUE_TYPE,
	NETDEV_A_QUEUE_NAPI_ID,
	NETDEV_A_QUEUE_DMABUF,
	NETDEV_A_QUEUE_IO_URING,

	__NETDEV_A_QUEUE_MAX,
	NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
+7 −0
Original line number Diff line number Diff line
@@ -86,6 +86,11 @@ enum {
	NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
};

enum {
	__NETDEV_A_IO_URING_PROVIDER_INFO_MAX,
	NETDEV_A_IO_URING_PROVIDER_INFO_MAX = (__NETDEV_A_IO_URING_PROVIDER_INFO_MAX - 1)
};

enum {
	NETDEV_A_PAGE_POOL_ID = 1,
	NETDEV_A_PAGE_POOL_IFINDEX,
@@ -94,6 +99,7 @@ enum {
	NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
	NETDEV_A_PAGE_POOL_DETACH_TIME,
	NETDEV_A_PAGE_POOL_DMABUF,
	NETDEV_A_PAGE_POOL_IO_URING,

	__NETDEV_A_PAGE_POOL_MAX,
	NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
@@ -136,6 +142,7 @@ enum {
	NETDEV_A_QUEUE_TYPE,
	NETDEV_A_QUEUE_NAPI_ID,
	NETDEV_A_QUEUE_DMABUF,
	NETDEV_A_QUEUE_IO_URING,

	__NETDEV_A_QUEUE_MAX,
	NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)