Re: [PATCH net-next v7 3/4] net: vhost: factor out busy polling logic to vhost_net_busy_poll()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2018年08月02日 17:57, Toshiaki Makita wrote:
On 2018/08/02 18:23, Jason Wang wrote:
On 2018年08月02日 16:41, Toshiaki Makita wrote:
On 2018/08/02 17:18, Jason Wang wrote:
On 2018年08月01日 17:52, Tonghao Zhang wrote:
+static void vhost_net_busy_poll_check(struct vhost_net *net,
+                                   struct vhost_virtqueue *rvq,
+                                   struct vhost_virtqueue *tvq,
+                                   bool rx)
+{
+     struct socket *sock = rvq->private_data;
+
+     if (rx)
+             vhost_net_busy_poll_try_queue(net, tvq);
+     else if (sock && sk_has_rx_data(sock->sk))
+             vhost_net_busy_poll_try_queue(net, rvq);
+     else {
+             /* On tx here, sock has no rx data, so we
+              * will wait for sock wakeup for rx, and
+              * vhost_enable_notify() is not needed. */
A possible case is we do have rx data but guest does not refill the rx
queue. In this case we may lose notifications from guest.
Yes, should consider this case. thanks.
I'm a bit confused. Isn't this covered by the previous
"else if (sock && sk_has_rx_data(...))" block?
The problem is it does nothing if vhost_vq_avail_empty() is true and
vhost_enble_notify() is false.
If vhost_enable_notify() is false, guest will eventually kicks vq, no?


Yes, you are right.

Thanks

_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization




[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux