Thread (16 messages) 16 messages, 4 authors, 2024-01-30

Re: [PATCH net-next 2/2] tun: AF_XDP Rx zero-copy support

From: Jason Wang <jasowang@redhat.com>
Date: 2024-01-29 03:03:39
Also in: kvm, lkml, netdev

On Thu, Jan 25, 2024 at 8:54 PM wangyunjian [off-list ref] wrote:

quoted
-----Original Message-----
From: Jason Wang [mailto:jasowang@redhat.com]
Sent: Thursday, January 25, 2024 12:49 PM
To: wangyunjian <redacted>
Cc: mst@redhat.com; willemdebruijn.kernel@gmail.com; kuba@kernel.org;
davem@davemloft.net; magnus.karlsson@intel.com; netdev@vger.kernel.org;
linux-kernel@vger.kernel.org; kvm@vger.kernel.org;
virtualization@lists.linux.dev; xudingke [off-list ref]
Subject: Re: [PATCH net-next 2/2] tun: AF_XDP Rx zero-copy support

On Wed, Jan 24, 2024 at 5:38 PM Yunjian Wang [off-list ref]
wrote:
quoted
Now the zero-copy feature of AF_XDP socket is supported by some
drivers, which can reduce CPU utilization on the xdp program.
This patch set allows tun to support AF_XDP Rx zero-copy feature.

This patch tries to address this by:
- Use peek_len to consume a xsk->desc and get xsk->desc length.
- When the tun support AF_XDP Rx zero-copy, the vq's array maybe empty.
So add a check for empty vq's array in vhost_net_buf_produce().
- add XDP_SETUP_XSK_POOL and ndo_xsk_wakeup callback support
- add tun_put_user_desc function to copy the Rx data to VM
Code explains themselves, let's explain why you need to do this.

1) why you want to use peek_len
2) for "vq's array", what does it mean?
3) from the view of TUN/TAP tun_put_user_desc() is the TX path, so I guess you
meant TX zerocopy instead of RX (as I don't see codes for
RX?)
OK, I agree and use TX zerocopy instead of RX zerocopy. I meant RX zerocopy
from the view of vhost-net.
Ok.
quoted
A big question is how could you handle GSO packets from userspace/guests?
Now by disabling VM's TSO and csum feature.
Btw, how could you do that?

Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help