Files
linux/include/net
Maciej Fijalkowski ca2e1a6270 xsk: Mark napi_id on sendmsg()
When application runs in busy poll mode and does not receive a single
packet but only sends them, it is currently impossible to get into
napi_busy_loop() as napi_id is only marked on Rx side in xsk_rcv_check().
In there, napi_id is being taken from xdp_rxq_info carried by xdp_buff.
From Tx perspective, we do not have access to it. What we have handy is
the xsk pool.

Xsk pool works on a pool of internal xdp_buff wrappers called xdp_buff_xsk.
AF_XDP ZC enabled drivers call xp_set_rxq_info() so each of xdp_buff_xsk
has a valid pointer to xdp_rxq_info of underlying queue. Therefore, on Tx
side, napi_id can be pulled from xs->pool->heads[0].xdp.rxq->napi_id. Hide
this pointer chase under helper function, xsk_pool_get_napi_id().

Do this only for sockets working in ZC mode as otherwise rxq pointers would
not be initialized.

Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Magnus Karlsson <magnus.karlsson@intel.com>
Link: https://lore.kernel.org/bpf/20220707130842.49408-1-maciej.fijalkowski@intel.com
2022-07-14 22:45:34 +02:00
..
2022-01-10 10:00:09 +09:00
2021-07-01 13:19:48 -07:00
2022-06-22 12:59:43 +01:00
2022-05-25 21:36:16 -07:00
2022-06-02 10:37:57 +02:00
2021-10-13 09:40:46 -07:00
2021-10-13 09:40:46 -07:00
2020-05-05 13:23:29 -07:00
2021-12-16 07:18:35 -08:00
2019-12-09 10:36:44 -08:00
2020-06-22 21:12:44 -07:00
2021-10-15 11:33:08 +01:00
2021-11-19 20:09:55 -08:00
2021-10-13 09:40:46 -07:00
2021-07-27 13:05:56 +01:00
2019-12-09 10:36:44 -08:00
2022-05-11 12:43:10 +01:00
2020-03-04 13:25:55 -08:00
2021-05-17 15:29:35 -07:00
2022-06-21 11:38:29 +02:00
2022-06-19 10:00:02 +01:00
2021-10-13 09:40:45 -07:00
2019-04-22 21:47:25 -07:00
2019-10-05 16:29:00 -07:00
2021-08-03 13:05:26 +01:00
2022-07-08 18:38:45 -07:00
2020-06-18 20:46:23 -07:00
2019-12-09 10:28:43 -08:00
2022-07-14 22:45:34 +02:00