On Fri, Jan 24, 2025 at 1:00 AM Sankararaman Jayaraman <sankararaman.jayaraman@xxxxxxxxxxxx> wrote: > > If XDP traffic runs on a CPU which is greater than or equal to > the number of the Tx queues of the NIC, then vmxnet3_xdp_get_tq() > always picks up queue 0 for transmission as it uses reciprocal scale > instead of simple modulo operation. > > vmxnet3_xdp_xmit() and vmxnet3_xdp_xmit_frame() use the above > returned queue without any locking which can lead to race conditions > when multiple XDP xmits run in parallel on different CPU's. > > This patch uses a simple module scheme when the current CPU equals or > exceeds the number of Tx queues on the NIC. It also adds locking in > vmxnet3_xdp_xmit() and vmxnet3_xdp_xmit_frame() functions. > > Fixes: 54f00cce1178 ("vmxnet3: Add XDP support.") > Signed-off-by: Sankararaman Jayaraman <sankararaman.jayaraman@xxxxxxxxxxxx> > Signed-off-by: Ronak Doshi <ronak.doshi@xxxxxxxxxxxx> > --- LGTM Acked-by: William Tu <u9012063@xxxxxxxxx>