public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Avi Kivity <avi@qumranet.com>
Cc: Mark McLoughlin <markmc@redhat.com>,
	Anthony Liguori <aliguori@us.ibm.com>,
	linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH] virtio_net: free transmit skbs in a timer
Date: Mon, 19 May 2008 22:21:51 +1000	[thread overview]
Message-ID: <200805192221.52072.rusty@rustcorp.com.au> (raw)
In-Reply-To: <483155D4.2090700@qumranet.com>

On Monday 19 May 2008 20:26:28 Avi Kivity wrote:
> Rusty Russell wrote:
> >> We should have thought of this before, though, especially as Xen does
> >>
> >> this or something very similar:
> >>> /* Shared ring page */                            \
> >>> struct __name##_sring {                            \
> >>>     RING_IDX req_prod, req_event;                    \
> >>>     RING_IDX rsp_prod, rsp_event;                    \
> >>>     uint8_t  pad[48];                            \
> >>>     union __name##_sring_entry ring[1]; /* variable-length */        \
> >>> };                                    \
> >>
> >> req_event and rsp_event allow the other side to indicate when it wants a
> >> notification.
> >
> > Well, we do have such a thing, in the ring suppression flags.
>
> Can you point me at this?

Ah, sorry, I misunderstood.  No, we don't have a threshold like this, we
have an all-or-nothing flag in each direction.

We have the ability to add new fields to the rings.  I've put it on my
TODO to benchmark what this does.  It may or may not help.  In this case,
notification when there are no more packets in xmit ring would be
sufficient.  We already kick the host when we fill a ring even if
it says it doesn't need it, perhaps this would be symmetry.

> >   Note that DaveM
> > is talking about moving network tx queue into the net drivers themselves,
> > which will make them much more efficient (ie. drain entire queue before
> > kick), which may again change the balance of what the Right Thing is.
>
> That depends on whether Linux knows whether more packets are coming.

The current problem is that hard_start_xmit gets called with a packet, and 
has no idea if there are more in the tx queue.  By having the driver control
the queue, it can at least tell that.

The question remains whether this will be sufficient for tx mitigation.  A
program may be about to write more to the socket, and we can't know that.
But it can hardly hurt.

In turn, sending out such packet bursts will have an effect on packet reuse.  

Cheers,
Rusty.




  reply	other threads:[~2008-05-19 12:22 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-30 14:31 [PATCH] virtio_net: free transmit skbs in a timer Mark McLoughlin
2008-05-02 10:55 ` Rusty Russell
2008-05-12 20:37   ` Mark McLoughlin
2008-05-13  7:47     ` Avi Kivity
2008-05-14  6:07       ` Rusty Russell
2008-05-14  8:59         ` Avi Kivity
2008-05-15 15:29           ` Mark McLoughlin
2008-05-15 15:32             ` Avi Kivity
2008-05-15 23:25               ` Rusty Russell
2008-05-18  6:40                 ` Avi Kivity
2008-05-18 14:16                   ` Rusty Russell
2008-05-18 14:27                     ` Avi Kivity
2008-05-19  1:52                       ` Rusty Russell
2008-05-19 10:26                         ` Avi Kivity
2008-05-19 12:21                           ` Rusty Russell [this message]
2008-05-19 13:26                             ` Avi Kivity
2008-05-20  1:37                               ` Rusty Russell

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=200805192221.52072.rusty@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=aliguori@us.ibm.com \
    --cc=avi@qumranet.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markmc@redhat.com \
    --cc=virtualization@lists.linux-foundation.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