Message ID | 20250128163038.429864-1-jdamato@fastly.com (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [RFC,net-next] netdev-genl: Elide napi_id for TX-only NAPIs | expand |
On Tue, 28 Jan 2025 16:30:37 +0000 Joe Damato wrote: > - if (txq->napi && nla_put_u32(rsp, NETDEV_A_QUEUE_NAPI_ID, > - txq->napi->napi_id)) > + if (!txq->napi) > goto nla_put_failure; Skip the attr but no need to fail. We're reporting info about a queue here, the queue still exists, even if we can't report a valid NAPI ID. > + if (txq->napi->napi_id >= MIN_NAPI_ID) > + if (nla_put_u32(rsp, NETDEV_A_QUEUE_NAPI_ID, > + txq->napi->napi_id)) > + goto nla_put_failure; Similar treatment should be applied to the Rx queues, I reckon.
diff --git a/net/core/netdev-genl.c b/net/core/netdev-genl.c index 715f85c6b62e..3116e683e516 100644 --- a/net/core/netdev-genl.c +++ b/net/core/netdev-genl.c @@ -397,9 +397,12 @@ netdev_nl_queue_fill_one(struct sk_buff *rsp, struct net_device *netdev, break; case NETDEV_QUEUE_TYPE_TX: txq = netdev_get_tx_queue(netdev, q_idx); - if (txq->napi && nla_put_u32(rsp, NETDEV_A_QUEUE_NAPI_ID, - txq->napi->napi_id)) + if (!txq->napi) goto nla_put_failure; + if (txq->napi->napi_id >= MIN_NAPI_ID) + if (nla_put_u32(rsp, NETDEV_A_QUEUE_NAPI_ID, + txq->napi->napi_id)) + goto nla_put_failure; } genlmsg_end(rsp, hdr);
TX-only NAPIs currently do not have NAPI IDs. If a TX queue happens to be linked with a TX-only NAPI, elide the NAPI ID from the netlink output as a NAPI ID of 0 is not useful for users. Signed-off-by: Joe Damato <jdamato@fastly.com> --- net/core/netdev-genl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) base-commit: 0ad9617c78acbc71373fb341a6f75d4012b01d69