On Thu, 30 Jun 2022 13:53:11 +0200 Maciej Fijalkowski wrote: > > > Would it be possible to move the marking to when the queue is getting > > > bound instead of the recv/send paths? > > > > I mean when socket is getting bound. > > So Bjorn said that it was the design choice to follow the standard > sockets' approach. I'm including a dirty diff for a discussion which > allows me to get napi_id at bind() time. But, this works for ice as this > driver during the XDP prog/XSK pool load only disables the NAPI, so we are > sure that napi_id stays the same. That might not be the case for other > AF_XDP ZC enabled drivers though, they might delete the NAPI and this > approach wouldn't work...or am I missing something? Possible, but IDK if we're changing anything substantially in that regard. The existing code already uses sk_mark_napi_id_once() so if the NAPI ID changes during the lifetime of the socket the user will be out of luck already. But no strong feelings. > I'd prefer the diff below though as it simplifies the data path, but I > can't say if it's safe to do so. We would have to be sure about drivers > keeping their NAPI struct. This would also allow us to drop napi_id from > xdp_rxq_info.