On Thu, Oct 19, 2023 at 03:13:48PM +0800, Xuan Zhuo wrote:
On Thu, 19 Oct 2023 02:38:16 -0400, "Michael S. Tsirkin" [off-list ref] wrote:
quoted
On Tue, Oct 17, 2023 at 10:02:05AM +0800, Xuan Zhuo wrote:
quoted
On Mon, 16 Oct 2023 16:44:34 -0700, Jakub Kicinski [off-list ref] wrote:
quoted
On Mon, 16 Oct 2023 20:00:27 +0800 Xuan Zhuo wrote:
quoted
@@ -305,9 +311,15 @@ static inline void virtnet_free_old_xmit(struct virtnet_sq *sq, bool in_napi,
stats->bytes += xdp_get_frame_len(frame);
xdp_return_frame(frame);
+ } else {
+ stats->bytes += virtnet_ptr_to_xsk(ptr);
+ ++xsknum;
}
stats->packets++;
}
+
+ if (xsknum)
+ xsk_tx_completed(sq->xsk.pool, xsknum);
}
sparse complains:
drivers/net/virtio/virtio_net.h:322:41: warning: incorrect type in argument 1 (different address spaces)
drivers/net/virtio/virtio_net.h:322:41: expected struct xsk_buff_pool *pool
drivers/net/virtio/virtio_net.h:322:41: got struct xsk_buff_pool
[noderef] __rcu *pool
please build test with W=1 C=1
OK. I will add C=1 to may script.
Thanks.
And I hope we all understand, rcu has to be used properly it's not just
about casting the warning away.
Yes. I see. I will use rcu_dereference() and rcu_read_xxx().
Thanks.
When you do, pls don't forget to add comments documenting what does
rcu_read_lock and synchronize_rcu.
--
MST