netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Zoltan Kiss <zoltan.kiss@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: <ian.campbell@citrix.com>, <xen-devel@lists.xenproject.org>,
	<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<jonathan.davies@citrix.com>
Subject: Re: [PATCH net-next v5 8/9] xen-netback: Timeout packets in RX path
Date: Tue, 21 Jan 2014 00:24:29 +0000	[thread overview]
Message-ID: <52DDBE3D.4060406@citrix.com> (raw)
In-Reply-To: <20140120220348.GA5058@zion.uk.xensource.com>

On 20/01/14 22:03, Wei Liu wrote:
> On Mon, Jan 20, 2014 at 09:24:28PM +0000, Zoltan Kiss wrote:
>> @@ -557,12 +577,25 @@ void xenvif_disconnect(struct xenvif *vif)
>>   void xenvif_free(struct xenvif *vif)
>>   {
>>   	int i, unmap_timeout = 0;
>> +	/* Here we want to avoid timeout messages if an skb can be legitimatly
>> +	 * stucked somewhere else. Realisticly this could be an another vif's
>> +	 * internal or QDisc queue. That another vif also has this
>> +	 * rx_drain_timeout_msecs timeout, but the timer only ditches the
>> +	 * internal queue. After that, the QDisc queue can put in worst case
>> +	 * XEN_NETIF_RX_RING_SIZE / MAX_SKB_FRAGS skbs into that another vif's
>> +	 * internal queue, so we need several rounds of such timeouts until we
>> +	 * can be sure that no another vif should have skb's from us. We are
>> +	 * not sending more skb's, so newly stucked packets are not interesting
>> +	 * for us here.
>> +	 */
> You beat me to this. Was about to reply to your other email. :-)
>
> It's also worth mentioning that DIV_ROUND_UP part is merely estimation,
> as you cannot possible know the maximum / miminum queue length of all
> other vifs (as they can be changed during runtime). In practice most
> users will stick with the default, but some advanced users might want to
> tune this value for individual vif (whether that's a good idea or not is
> another topic).
>
> So, in order to convince myself this is safe. I also did some analysis
> on the impact of having queue length other than default value.  If
> queue_len < XENVIF_QUEUE_LENGTH, that means you can queue less packets
> in qdisc than default and drain it faster than calculated, which is
> safe. On the other hand if queue_len > XENVIF_QUEUE_LENGTH, it means
> actually you need more time than calculated. I'm in two minded here. The
> default value seems sensible to me but I'm still a bit worried about the
> queue_len > XENVIF_QUEUE_LENGTH case.
>
> An idea is to book-keep maximum tx queue len among all vifs and use that
> to calculate worst scenario.
I don't think it should be that perfect. This is just a best effort 
estimation, if someone changes the vif queue length and see this message 
because of that, nothing very drastic will happen. It is just a rate 
limited warning message. Well, it is marked as error, because it is a 
serious condition.
And also, the odds of seeing this message unnecessarily are quite low. 
With default settings (256 slots, max 17 per skb, 32 queue length, 10 
secs queue drain timeout) this delay is 20 seconds. You can raise the 
queue length to 64 before getting warning (see netif_napi_add), so it 
would go up to 40 seconds, but anyway, if your vif is sitting on a 
packet more than 20 seconds, you deserve this message :)

Zoli

  parent reply	other threads:[~2014-01-21  0:24 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-20 21:24 [PATCH net-next v5 0/9] xen-netback: TX grant mapping with SKBTX_DEV_ZEROCOPY instead of copy Zoltan Kiss
2014-01-20 21:24 ` [PATCH net-next v5 1/9] xen-netback: Introduce TX grant map definitions Zoltan Kiss
2014-02-18 17:06   ` Ian Campbell
2014-02-18 20:36     ` Zoltan Kiss
2014-02-19 10:05       ` Ian Campbell
2014-02-19 19:54         ` Zoltan Kiss
2014-02-20  9:33           ` Ian Campbell
2014-02-21  1:19             ` Zoltan Kiss
2014-02-24 11:13               ` Ian Campbell
2014-02-20 10:13           ` Wei Liu
2014-02-18 17:24   ` Ian Campbell
2014-02-19 19:19     ` Zoltan Kiss
2014-01-20 21:24 ` [PATCH net-next v5 2/9] xen-netback: Change TX path from grant copy to mapping Zoltan Kiss
2014-02-18 17:40   ` Ian Campbell
2014-02-18 18:46     ` [Xen-devel] " David Vrabel
2014-02-19  9:54       ` Ian Campbell
2014-02-19 12:27         ` David Vrabel
2014-02-22 22:33     ` Zoltan Kiss
2014-02-24 16:56       ` Zoltan Kiss
2014-01-20 21:24 ` [PATCH net-next v5 3/9] xen-netback: Remove old TX grant copy definitons and fix indentations Zoltan Kiss
2014-01-20 21:24 ` [PATCH net-next v5 4/9] xen-netback: Change RX path for mapped SKB fragments Zoltan Kiss
2014-02-18 17:45   ` Ian Campbell
2014-02-22 23:18     ` Zoltan Kiss
2014-02-24 13:49       ` Zoltan Kiss
2014-02-24 15:08         ` Zoltan Kiss
2014-02-27 12:43           ` Wei Liu
2014-02-27 15:49             ` Zoltan Kiss
2014-02-27 16:01               ` Wei Liu
2014-01-20 21:24 ` [PATCH net-next v5 5/9] xen-netback: Add stat counters for zerocopy Zoltan Kiss
2014-01-20 21:24 ` [PATCH net-next v5 6/9] xen-netback: Handle guests with too many frags Zoltan Kiss
2014-01-20 21:24 ` [PATCH net-next v5 7/9] xen-netback: Add stat counters for frag_list skbs Zoltan Kiss
2014-01-20 21:24 ` [PATCH net-next v5 8/9] xen-netback: Timeout packets in RX path Zoltan Kiss
2014-01-20 22:03   ` Wei Liu
2014-01-20 22:12     ` Wei Liu
2014-01-21  0:24     ` Zoltan Kiss [this message]
2014-01-20 21:24 ` [PATCH net-next v5 9/9] xen-netback: Aggregate TX unmap operations Zoltan Kiss
2014-01-23  1:50 ` [PATCH net-next v5 0/9] xen-netback: TX grant mapping with SKBTX_DEV_ZEROCOPY instead of copy David Miller
2014-01-23 13:13   ` Zoltan Kiss
2014-01-23 21:39     ` David Miller
2014-01-23 21:49       ` Zoltan Kiss
2014-02-19  9:50 ` Ian Campbell
2014-02-24 15:31   ` Zoltan Kiss

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=52DDBE3D.4060406@citrix.com \
    --to=zoltan.kiss@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=jonathan.davies@citrix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.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).