netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH RFC v3 0/3] virtio_net: enabling tx interrupts
Date: Mon, 1 Dec 2014 12:48:08 +0200	[thread overview]
Message-ID: <20141201104808.GA16661@redhat.com> (raw)
In-Reply-To: <547C3F8C.8000006@redhat.com>

On Mon, Dec 01, 2014 at 06:14:36PM +0800, Jason Wang wrote:
> 
> 
> On 10/20/2014 02:52 PM, Michael S. Tsirkin wrote:
> >RFC patches to enable tx interrupts.
> >This is to demonstrate how this can be done without
> >core virtio changes, and to make sure I understand
> >the new APIs correctly.
> >
> >Testing TBD, I was asked for a version for early testing.
> >
> >Applies on top of patch: "virtio_net: fix use after free"
> >that I recently sent.
> >
> >Changes from v3:
> >	clean up code, address issues raised by Jason
> >Changes from v1:
> >         address comments by Jason Wang, use delayed cb everywhere
> >         rebased Jason's patch on top of mine and include it (with some tweaks)
> >
> >Jason Wang (1):
> >   virtio-net: optimize free_old_xmit_skbs stats
> >
> >Michael S. Tsirkin (2):
> >   virtio_net: enable tx interrupt
> >   virtio_net: bql
> >
> >  drivers/net/virtio_net.c | 144 +++++++++++++++++++++++++++++++++--------------
> >  1 file changed, 101 insertions(+), 43 deletions(-)
> >
> 
> I've run a full tests on this series and see huge regression when zerocopy
> is disabled. Looks like the reason is zerocopy could coalescing tx
> completion which greatly reduce the number of tx interrupts.

I think you refer to this code:

        /*
         * Trigger polling thread if guest stopped submitting new
         * buffers:
         * in this case, the refcount after decrement will eventually
         * reach 1.
         * We also trigger polling periodically after each 16 packets
         * (the value 16 here is more or less arbitrary, it's tuned to
         * trigger
         * less than 10% of times).
         */
        if (cnt <= 1 || !(cnt % 16))
                vhost_poll_queue(&vq->poll);

?
This seems unrelated to interrupt coalescing.
We can easily enable something similar for all tx
packets, without need for guest configuration.

If it's not clear how to do this, let me know, I'll try to put out a
patch like this in a couple of days.


> I will post RFC V4 shortly with interrupt coalescing support. In this
> version I remove the tx packet cleanup in ndo_start_xmit() since it may
> reduce the effects of interrupt coalescing.

Maybe split this in a separate patch?

  reply	other threads:[~2014-12-01 10:48 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-20  6:52 [PATCH RFC v3 0/3] virtio_net: enabling tx interrupts Michael S. Tsirkin
2014-10-20  6:52 ` [PATCH RFC v3 1/3] virtio_net: enable tx interrupt Michael S. Tsirkin
2014-10-20  6:52 ` [PATCH RFC v3 2/3] virtio_net: bql Michael S. Tsirkin
2014-10-20  6:52 ` [PATCH RFC v3 3/3] virtio-net: optimize free_old_xmit_skbs stats Michael S. Tsirkin
2014-12-01 10:14 ` [PATCH RFC v3 0/3] virtio_net: enabling tx interrupts Jason Wang
2014-12-01 10:48   ` Michael S. Tsirkin [this message]
2014-12-02  3:36     ` Jason Wang

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=20141201104808.GA16661@redhat.com \
    --to=mst@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).