Re: [PATCH bpf] xsk: mark napi_id on sendmsg()
From: Jakub Kicinski <kuba@kernel.org>
Date: 2022-06-30 15:52:57
Also in:
bpf
On Thu, 30 Jun 2022 13:53:11 +0200 Maciej Fijalkowski wrote:
quoted
quoted
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.