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: Tue, 22 May 2012 18:05:43 +0800	[thread overview]
Message-ID: <4FBB64F7.5090801@redhat.com> (raw)
In-Reply-To: <1337614972.12999.56.camel@oc3660625478.ibm.com>

On 05/21/2012 11:42 PM, Shirley Ma wrote:
> On Mon, 2012-05-21 at 14:05 +0800, Jason Wang wrote:
>>>> - tx polling depends on skb_orphan() which is often called by
>> device
>>>> driver when it place the packet into the queue of the devices
>> instead
>>>> of  when the packets were sent. So it was too early for vhost to be
>>>> notified.
>>> Then do you think it's better to replace with vhost_poll_queue here
>>> instead?
>> Just like what does this patch do - calling vhost_poll_queue() in
>> vhost_zerocopy_callback().
>>>> - it only works when the pending DMAs exceeds VHOST_MAX_PEND, it's
>>>> highly possible that guest needs to be notified when the pending
>>>> packets
>>>> isn't so much.
>>> In which situation the guest needs to be notified when there is no
>> TX
>>> besides buffers run out?
>> Consider guest call virtqueue_enable_cb_delayed() which means it only
>> need to be notified when 3/4 of pending buffers ( about 178 buffers
>> (256-MAX_SKB_FRAGS-2)*3/4 ) were sent by host. So vhost_net would
>> notify
>> guest when about 60 buffers were pending. Since tx polling is only
>> enabled when pending packets exceeds VHOST_MAX_PEND 128, so tx work
>> would not be notified to run and guest would never get the interrupt
>> it
>> expected to re-enable the queue.
> So it seems we still need vhost_enable_notify() in handle_tx when there
> is no tx in zerocopy case.
>
> Do you know which one is more expensive: the cost of vhost_poll_queue()
> in each zerocopy callback or calling vhost_enable_notify()?

Didn't follow here, do you mean vhost_signal() here?
>
> Have you compared the results by removing below code in handle_tx()?
>
> -                       if (unlikely(num_pends>  VHOST_MAX_PEND)) {
> -                                tx_poll_start(net, sock);
> -                                set_bit(SOCK_ASYNC_NOSPACE,&sock->flags);
> -                                break;
> -                        }

I remember I've done some basic test when I send this patch, there's no 
much increasing of cpu utilization. Would double check this again.
>> And just like what we've discussed, tx polling based adding and
>> signaling is too early for vhost.
> Thanks
> Shirley
>


  parent reply	other threads:[~2012-05-22 10:06 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
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 [this message]
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=4FBB64F7.5090801@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.