On 2018年09月14日 02:04, Michael S. Tsirkin wrote:
On Wed, Sep 12, 2018 at 11:17:09AM +0800, Jason Wang wrote:
+static void vhost_tx_batch(struct vhost_net *net,
+                          struct vhost_net_virtqueue *nvq,
+                          struct socket *sock,
+                          struct msghdr *msghdr)
+{
+       struct tun_msg_ctl ctl = {
+               .type = TUN_MSG_PTR,
+               .num = nvq->batched_xdp,
+               .ptr = nvq->xdp,
+       };
+       int err;
+
+       if (nvq->batched_xdp == 0)
+               goto signal_used;
+
+       msghdr->msg_control = &ctl;
+       err = sock->ops->sendmsg(sock, msghdr, 0);
+       if (unlikely(err < 0)) {
+               vq_err(&nvq->vq, "Fail to batch sending packets\n");
+               return;
+       }
+
+signal_used:
+       vhost_net_signal_used(nvq);
+       nvq->batched_xdp = 0;
+}
+
Given it's all tun-specific now, how about just exporting tap_sendmsg
and calling that? Will get rid of some indirection too.


Yes we can do it on top in the future.

Thanks
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to