All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Fastabend <john.fastabend@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Ming Chen <v.mingchen@gmail.com>,
	netdev@vger.kernel.org, Erez Zadok <ezk@fsl.cs.sunysb.edu>,
	Dean Hildebrand <dhildeb@us.ibm.com>,
	Geoff Kuenning <geoff@cs.hmc.edu>
Subject: Re: [BUG?] ixgbe: only num_online_cpus() of the tx queues are enabled
Date: Sat, 08 Mar 2014 19:52:07 -0800	[thread overview]
Message-ID: <531BE567.3040101@gmail.com> (raw)
In-Reply-To: <1394336258.20149.80.camel@edumazet-glaptop2.roam.corp.google.com>

On 03/08/2014 07:37 PM, Eric Dumazet wrote:
> On Sat, 2014-03-08 at 19:53 -0500, Ming Chen wrote:
>> Hi Eric,
>>
>> We noticed many changes in the TCP stack, and a lot of them come from you :-)
>>
>> Actually, we have a question about this patch you submitted
>> (http://lwn.net/Articles/564979/) regarding an experiment we conducted
>> in the 3.12.0 kernel. The results we observed in shown in the second
>> figure of panel 6 in this poster at
>> http://www.fsl.cs.sunysb.edu/~mchen/fast14poster-hashcast-portrait.pdf
>> .  We have repeated the same experiment for 100 times, and observed
>> that results like that appeared 4 times. For this experiment, we
>> observed that all five flows are using dedicated tx queues.  But what
>> makes a big difference is the average packet sizes of the flows.
>> Client4 has an average packet size of around 3KB while all other
>> clients generate packet sizes over 50KB. We suspect it might be caused
>> by this TSO Packets Automatic Sizing feaure. Our reasoning is this: if
>> a TCP flow starts slowly, this feature will assign it a small packet
>> size. The packet size and the sending rate can somehow form a feedback
>> loop, which can force the TCP flow's rate to stay low. What do you
>> think about this?
>
> I think nothing at all. TCP is not fair. TCP tries to steal whole
> bandwidth by definition. One flow can have much more than the neighbour.
>
> With FQ, you can force some fairness, but if you use multiqueue, there
> is no guarantee at all, unless you make sure :
>
> - no more than one flow per queue.
> - Nic is able to provide fairness among all active TX queues.
>

The NIC by default will round robin amongst the queues and should be
reasonably fair. We could increase the number of TX queues the driver
enables and for a small number of flows the first condition is easier
to meet. Although it wont help as the flow count increases.

Using FQ as a root qdisc though I think will really hurt performance
on small packet sizes. For larger packet sizes its probably less
noticeable. Each queue can use FQ as noted previously.


> Thats the ideal condition, and that is quite hard to meet.
>
> The feedback loop you mention should be solved by the patch I sent
> today : TCP Small queue make sure that you have no more than 2 packets
> per flow on qdisc / TX queues. So on 'fast' flow cannot have 90% of the
> packets in the qdisc. cwnd is maintained to very small values, assuming
> receiver is behaving normally.
>
>
>
> --
> 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
>


-- 
John Fastabend         Intel Corporation

  reply	other threads:[~2014-03-09  3:52 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-08  6:13 [BUG?] ixgbe: only num_online_cpus() of the tx queues are enabled Ming Chen
2014-03-08  7:12 ` John Fastabend
2014-03-09  0:19   ` Ming Chen
2014-03-08 15:27 ` Eric Dumazet
2014-03-08 16:08   ` Eric Dumazet
2014-03-09  0:53     ` Ming Chen
2014-03-09  3:37       ` Eric Dumazet
2014-03-09  3:52         ` John Fastabend [this message]
2014-03-09  4:11           ` Eric Dumazet
2014-03-09  6:56           ` Ming Chen
2014-03-11  4:56             ` Geoff Kuenning
2014-03-09  6:47         ` Ming Chen
2014-03-09 13:39           ` Eric Dumazet
2014-03-09 22:31             ` David Miller
2014-03-09  0:30   ` Ming Chen
2014-03-09  3:29     ` Eric Dumazet
2014-03-09  6:43       ` Ming Chen
2014-03-09 13:44         ` Eric Dumazet
2014-03-09 19:22           ` Ming Chen
2014-03-09 19:37             ` Eric Dumazet
2014-03-09 19:41             ` Eric Dumazet
2014-03-09 19:43               ` Ming Chen
2014-03-10  5:40           ` Ming Chen

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=531BE567.3040101@gmail.com \
    --to=john.fastabend@gmail.com \
    --cc=dhildeb@us.ibm.com \
    --cc=eric.dumazet@gmail.com \
    --cc=ezk@fsl.cs.sunysb.edu \
    --cc=geoff@cs.hmc.edu \
    --cc=netdev@vger.kernel.org \
    --cc=v.mingchen@gmail.com \
    /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.