Re: [net-next 0/3] Per epoll context busy poll support
From: Jakub Kicinski <kuba@kernel.org>
Date: 2024-02-02 18:22:41
Also in:
lkml, netdev
On Fri, 2 Feb 2024 11:23:28 -0600 Samudrala, Sridhar wrote:
quoted
I know I am replying to a stale thread on the patches I've submit (there is a v5 now [1]), but I just looked at your message - sorry I didn't reply sooner. The per-queue and per-napi netlink APIs look extremely useful, thanks for pointing this out. In my development tree, I had added SIOCGIFNAME_BY_NAPI_ID which works similar to SIOCGIFNAME: it takes a NAPI ID and returns the IF name. This is useful on machines with multiple NICs where each NIC could be located in one of many different NUMA zones. The idea was that apps would use SO_INCOMING_NAPI_ID, distribute the NAPI ID to a worker thread which could then use SIOCGIFNAME_BY_NAPI_ID to compute which NIC the connection came in on. The app would then (via configuration) know where to pin that worker thread; ideally somewhere NUMA local to the NIC. I had assumed that such a change would be rejected, but I figured I'd send an RFC for it after the per epoll context stuff was done and see if anyone thought SIOCGIFNAME_BY_NAPI_ID would be useful for them, as well.I think you should be able to get this functionality via the netdev-genl API to get napi parameters. It returns ifindex as one of the parameters and you should able to get the name from ifindex. $ ./cli.py --spec netdev.yaml --do napi-get --json='{"id": 593}' {'id': 593, 'ifindex': 12, 'irq': 291, 'pid': 3727}
FWIW we also have a C library to access those. Out of curiosity what's the programming language you'd use in user space, Joe?