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
next prev parent 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 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).