Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Jonathan Morton <chromatix99@gmail.com>
To: dag dg <dagofthedofg@gmail.com>
Cc: Cake@lists.bufferbloat.net
Subject: Re: [Cake] Multiple Hardware Queues
Date: Sun, 15 Jul 2018 11:10:55 +0300	[thread overview]
Message-ID: <3E2FE0BD-3A6C-4399-90FB-1334A7A0D962@gmail.com> (raw)
In-Reply-To: <CAO2Qn5nF432bL7R1bNiQ2+o1D6UvB5ytx2MML5NtihHQc+zoFg@mail.gmail.com>

> On 15 Jul, 2018, at 10:41 am, dag dg <dagofthedofg@gmail.com> wrote:
> 
> In my box I have acting as a router I have an Intel i350-t2v2 nic that
> has two gigabit ports(uplink/local). This card and its corresponding
> driver supports multiple hardware-based transmit and receive queues
> depending on the number of cores the system has up to 8.

> qdisc cake 802c: dev enp2s0f0 root refcnt 9 bandwidth 23Mbit diffserv3 triple-isolate split-gso rtt 100.0ms raw overhead 0

> qdisc cake 802d: dev ifb4enp2s0f0 root refcnt 2 bandwidth 330Mbit besteffort triple-isolate wash split-gso rtt 100.0ms raw overhead 0

> Let me be clear that with cake and sqm I am seeing great results on
> the dslreports speed test(A+) so this inquiry is less about solving a
> problem and more along the lines of trying to take full advantage of
> my available hardware. Any insight would be appreciated, and thanks
> again for your contributions.

At these bandwidths, you are not stressing your hardware at all - and I don't even have to ask what CPU you have to know this.  The NIC's multiple queues would give you no benefit whatsoever.  An Intel Atom or an AMD E-450 can easily handle gigabit traffic through Cake, as long as the NIC is attached via a bus capable of carrying that much bandwidth (eg. PCIe).  These are some of the least powerful 64-bit x86 CPUs that ever reached the market.

In any case, the MQ qdisc simply sorts packets into hardware queues according to the CPU they were submitted from.  This is useful for something like a heavily loaded webserver, which has many worker processes distributed evenly across all available CPUs, since it avoids either passing data to a NIC-worker process on a fixed CPU, or contending for a single NIC lock.  But it's basically useless on a desktop PC, or on a machine acting primarily as a router, since the traffic is submitted from just one or two CPUs at a time, and usually most of the CPUs are idle anyway.  I have no idea what the hardware does to coalesce those packets into a single stream to be sent over the wire.

You can verify this for yourself by looking at your CPU load while running a full bidirectional speed test.  On any recent CPU, expect to see the most loaded core with at least 90% idle - unless your web browser happens to be occupying it.

 - Jonathan Morton


  reply	other threads:[~2018-07-15  8:10 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-15  7:41 dag dg
2018-07-15  8:10 ` Jonathan Morton [this message]
2018-07-15 10:09   ` Toke Høiland-Jørgensen
2018-07-15 15:57     ` Dave Taht
2018-07-15 20:28       ` Toke Høiland-Jørgensen
2018-07-16 19:03         ` dag dg
2018-07-16 19:27           ` Georgios Amanakis

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

  List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3E2FE0BD-3A6C-4399-90FB-1334A7A0D962@gmail.com \
    --to=chromatix99@gmail.com \
    --cc=Cake@lists.bufferbloat.net \
    --cc=dagofthedofg@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