Thread (66 messages) 66 messages, 4 authors, 2023-11-15

Re: [PATCH net-next v1 13/19] virtio_net: xsk: tx: virtnet_free_old_xmit() distinguishes xsk buffer

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2023-10-19 08:43:11
Also in: bpf, virtualization

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help