Re: [PATCH net-next 1/2] virtio-net: correctly update XDP_TX counters

From: Toshiaki Makita
Date: Tue Jul 31 2018 - 21:43:26 EST


On 2018/08/01 10:31, Jason Wang wrote:
> On 2018å07æ31æ 17:57, Toshiaki Makita wrote:
>> On 2018/07/31 18:43, Jason Wang wrote:
>>> Commit 5b8f3c8d30a6 ("virtio_net: Add XDP related stats") tries to
>>> count TX XDP stats in virtnet_receive(). This will cause several
>>> issues:
>>>
>>> - virtnet_xdp_sq() was called without checking whether or not XDP is
>>> ÂÂ set. This may cause out of bound access when there's no enough txq
>>> ÂÂ for XDP.
>>> - Stats were updated even if there's no XDP/XDP_TX.>
>>> Fixing this by reusing virtnet_xdp_xmit() for XDP_TX which can counts
>>> TX XDP counter itself and remove the unnecessary tx stats embedded in
>>> rx stats.
>> Thanks for fixing this.
>> I wanted to avoid calling u64_stats_update_begin() (i.e. smp_wmb() in 32
>> bit systems) for every packet. So I'd like to keep sq stats in
>> virtnet_rx_stats.
>>
>
> We can optimize this by adding batching on top. (virtnet_xdp_xmit()
> accepts an array of xdp frames). If you like, please send a patch for this.

Yes, that sounds like a better optimization. will think about it...

Thanks,
Toshiaki Makita