All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Shirley Ma <mashirle@us.ibm.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	eric.dumazet@gmail.com, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, ebiederm@xmission.com,
	davem@davemloft.net
Subject: Re: [V2 PATCH 9/9] vhost: zerocopy: poll vq in zerocopy callback
Date: Mon, 21 May 2012 13:22:43 +0800	[thread overview]
Message-ID: <4FB9D123.9030002@redhat.com> (raw)
In-Reply-To: <1337195303.10741.37.camel@oc3660625478.ibm.com>

On 05/17/2012 03:08 AM, Shirley Ma wrote:
> On Wed, 2012-05-16 at 21:36 +0300, Michael S. Tsirkin wrote:
>> On Wed, May 16, 2012 at 10:32:05AM -0700, Shirley Ma wrote:
>>> On Wed, 2012-05-16 at 18:14 +0300, Michael S. Tsirkin wrote:
>>>> On Wed, May 16, 2012 at 08:10:27AM -0700, Shirley Ma wrote:
>>>>> On Wed, 2012-05-16 at 10:58 +0800, Jason Wang wrote:
>>>>>>>>    drivers/vhost/vhost.c |    1 +
>>>>>>>>    1 files changed, 1 insertions(+), 0 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
>>>>>>>> index 947f00d..7b75fdf 100644
>>>>>>>> --- a/drivers/vhost/vhost.c
>>>>>>>> +++ b/drivers/vhost/vhost.c
>>>>>>>> @@ -1604,6 +1604,7 @@ void vhost_zerocopy_callback(void
>> *arg)
>>>>>>>>           struct vhost_ubuf_ref *ubufs = ubuf->arg;
>>>>>>>>           struct vhost_virtqueue *vq = ubufs->vq;
>>>>>>>>
>>>>>>>> +       vhost_poll_queue(&vq->poll);
>>>>>>>>           /* set len = 1 to mark this desc buffers done DMA
>> */
>>>>>>>>           vq->heads[ubuf->desc].len = VHOST_DMA_DONE_LEN;
>>>>>>>>           kref_put(&ubufs->kref,
>> vhost_zerocopy_done_signal);
>>>>>>> Doing so, we might have redundant vhost_poll_queue(). Do you
>>>> know in
>>>>>>> which scenario there might be missing of adding and
>> signaling
>>>> during
>>>>>>> zerocopy?
>>>>>> Yes, as we only do signaling and adding during tx work, if
>> there's
>>>> no
>>>>>> tx
>>>>>> work when the skb were sent, we may lose the opportunity to
>> let
>>>> guest
>>>>>> know about the completion. It's easy to be reproduced with
>> netperf
>>>>>> test.
>>>>> The reason which host signals guest is to free guest tx buffers,
>> if
>>>>> there is no tx work, then it's not necessary to signal the guest
>>>> unless
>>>>> guest runs out of memory. The pending buffers will be released
>>>>> virtio_net device gone.
>>>>>
>>>>> What's the behavior of netperf test when you hit this situation?
>>>>>
>>>>> Thanks
>>>>> Shirley
>>>> IIRC guest networking seems to be lost.
>>> It seems vhost_enable_notify is missing in somewhere else?
>>>
>>> Thanks
>>> Shirley
>> Donnu. I see virtio sending packets but they do not get
>> to tun on host. debugging.
> I looked at the code, if (zerocopy) check is needed for below code:
>
> +	if (zerocopy) {
>                          num_pends = likely(vq->upend_idx>= vq->done_idx) ?
>                                      (vq->upend_idx - vq->done_idx) :
>                                      (vq->upend_idx + UIO_MAXIOV - vq->done_idx);
>                          if (unlikely(num_pends>  VHOST_MAX_PEND)) {
>                                  tx_poll_start(net, sock);
> 				vhost_poll_queue
>                                  set_bit(SOCK_ASYNC_NOSPACE,&sock->flags);
>                                  break;
>                          }
> +	}
>                          if (unlikely(vhost_enable_notify(&net->dev, vq))) {
>                                  vhost_disable_notify(&net->dev, vq);
>                                  continue;
>                          }
>                          break;

No objection to add this but looks no difference to me as we won't touch 
upend_idx and done_idx when zercocopy is not used.

>
> Second, whether it's possible the problem comes from tx_poll_start()? In
> some situation, vhost_poll_wakeup() is not being called?
>
> Thanks
> Shirley
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


  reply	other threads:[~2012-05-21  5:22 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-02  3:41 [V2 PATCH 0/9] vhost/macvtap zeropcopy fixes Jason Wang
2012-05-02  3:41 ` [V2 PATCH 1/9] macvtap: zerocopy: fix offset calculation when building skb Jason Wang
2012-05-15 17:17   ` Shirley Ma
2012-05-02  3:41 ` [V2 PATCH 2/9] macvtap: zerocopy: fix truesize underestimation Jason Wang
2012-05-15 17:26   ` Shirley Ma
2012-05-16  3:04     ` Jason Wang
2012-05-16 15:03       ` Shirley Ma
2012-05-17  2:59         ` Jason Wang
2012-05-17 15:28           ` Shirley Ma
2012-05-18 10:10             ` Jason Wang
2012-05-18 15:22               ` Shirley Ma
2012-05-21  6:15                 ` Jason Wang
2012-05-02  3:41 ` [V2 PATCH 3/9] macvtap: zerocopy: put page when fail to get all requested user pages Jason Wang
2012-05-15 17:33   ` Shirley Ma
2012-05-02  3:42 ` [V2 PATCH 4/9] macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when skb is built successfully Jason Wang
2012-05-15 17:44   ` Shirley Ma
2012-05-16  3:17     ` Jason Wang
2012-05-02  3:42 ` [V2 PATCH 5/9] macvtap: zerocopy: validate vectors before building skb Jason Wang
2012-05-02  3:42 ` [V2 PATCH 6/9] vhost_net: zerocopy: fix possible NULL pointer dereference of vq->bufs Jason Wang
2012-05-02  3:42 ` [V2 PATCH 7/9] vhost_net: re-poll only on EAGAIN or ENOBUFS Jason Wang
2012-05-02  3:42 ` [V2 PATCH 8/9] vhost_net: zerocopy: adding and signalling immediately when fully copied Jason Wang
2012-05-02  3:42 ` [V2 PATCH 9/9] vhost: zerocopy: poll vq in zerocopy callback Jason Wang
2012-05-15 16:50   ` Shirley Ma
2012-05-16  2:58     ` Jason Wang
2012-05-16 15:10       ` Shirley Ma
2012-05-16 15:14         ` Michael S. Tsirkin
2012-05-16 17:32           ` Shirley Ma
2012-05-16 18:36             ` Michael S. Tsirkin
2012-05-16 19:08               ` Shirley Ma
2012-05-21  5:22                 ` Jason Wang [this message]
2012-05-17  2:50             ` Jason Wang
2012-05-17 15:34               ` Shirley Ma
2012-05-18  9:58                 ` Jason Wang
2012-05-18 15:29                   ` Shirley Ma
2012-05-21  6:05                     ` Jason Wang
2012-05-21 15:42                       ` Shirley Ma
2012-05-21 16:12                         ` Shirley Ma
2012-05-22 10:13                           ` Jason Wang
2012-05-22 10:05                         ` Jason Wang
2012-05-22 15:55                           ` Shirley Ma
2012-05-23 10:31                             ` Jason Wang
2012-05-02  5:50 ` [V2 PATCH 0/9] vhost/macvtap zeropcopy fixes Michael S. Tsirkin
2012-05-02  6:44   ` David Miller
2012-05-02  8:11     ` Michael S. Tsirkin
2012-05-02 19:40       ` Eric W. Biederman
2012-05-02 21:31         ` Michael S. Tsirkin
2012-05-02 21:54           ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FB9D123.9030002@redhat.com \
    --to=jasowang@redhat.com \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=eric.dumazet@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mashirle@us.ibm.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.