On Thu, 17 Jun 2021 14:03:29 +0800, Jason Wang <jasowang@xxxxxxxxxx> wrote: > > 在 2021/6/17 下午1:53, Xuan Zhuo 写道: > > On Thu, 17 Jun 2021 11:23:52 +0800, Jason Wang <jasowang@xxxxxxxxxx> wrote: > >> 在 2021/6/10 下午4:22, Xuan Zhuo 写道: > >>> Compared to the case of xsk tx, the case of xsk zc rx is more > >>> complicated. > >>> > >>> When we process the buf received by vq, we may encounter ordinary > >>> buffers, or xsk buffers. What makes the situation more complicated is > >>> that in the case of mergeable, when num_buffer > 1, we may still > >>> encounter the case where xsk buffer is mixed with ordinary buffer. > >>> > >>> Another thing that makes the situation more complicated is that when we > >>> get an xsk buffer from vq, the xsk bound to this xsk buffer may have > >>> been unbound. > >>> > >>> Signed-off-by: Xuan Zhuo <xuanzhuo@xxxxxxxxxxxxxxxxx> > >> > >> This is somehow similar to the case of tx where we don't have per vq reset. > >> > >> [...] > >> > >>> - if (vi->mergeable_rx_bufs) > >>> + if (is_xsk_ctx(ctx)) > >>> + skb = receive_xsk(dev, vi, rq, buf, len, xdp_xmit, stats); > >>> + else if (vi->mergeable_rx_bufs) > >>> skb = receive_mergeable(dev, vi, rq, buf, ctx, len, xdp_xmit, > >>> stats); > >>> else if (vi->big_packets) > >>> @@ -1175,6 +1296,14 @@ static bool try_fill_recv(struct virtnet_info *vi, struct receive_queue *rq, > >>> int err; > >>> bool oom; > >>> > >>> + /* Because virtio-net does not yet support flow direct, > >> > >> Note that this is not the case any more. RSS has been supported by > >> virtio spec and qemu/vhost/tap now. We just need some work on the > >> virtio-net driver part (e.g the ethool interface). > > Oh, are there any plans? Who is doing this work, can I help? > > > Qemu and spec has support RSS. > > TAP support is ready via steering eBPF program, you can try to play it > with current qemu master. > > The only thing missed is the Linux driver, I think Yuri or Andrew is > working on this. I feel that in the case of xsk, the flow director is more appropriate. Users may still want to allocate packets to a certain channel based on information such as port/ip/tcp/udp, and then xsk will process them. I will try to push the flow director to the spec. Thanks. > > Thanks > > > > > > Thanks. > > > >> Thanks > >> > >> > _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization