On Fri, 2 Feb 2024 11:23:28 -0600 Samudrala, Sridhar wrote: > > 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?