From: Paolo Abeni <pabeni@redhat.com>
To: Eric Dumazet <edumazet@google.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
"David S. Miller" <davem@davemloft.net>,
Steven Rostedt <rostedt@goodmis.org>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
Hannes Frederic Sowa <hannes@stressinduktion.org>,
netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH 4/5] netdev: implement infrastructure for threadable napi irq
Date: Thu, 16 Jun 2016 14:03:55 +0200 [thread overview]
Message-ID: <1466078635.4691.56.camel@redhat.com> (raw)
In-Reply-To: <CANn89iL2WpZAOLDWEoJmJ3Hiv3x59c45nCQpLm66j29D0HXfcw@mail.gmail.com>
On Thu, 2016-06-16 at 04:19 -0700, Eric Dumazet wrote:
> On Thu, Jun 16, 2016 at 3:39 AM, Paolo Abeni <pabeni@redhat.com> wrote:
> > We used a different setup to explicitly avoid the (guest) userspace
> > starvation issue. Using a guest with 2vCPUs (or more) and a single queue
> > avoids the starvation issue, because the scheduler moves the user space
> > processes on a different vCPU in respect to the ksoftirqd thread.
> >
> > In the hypervisor, with a vanilla kernel, the qemu process receives a
> > fair share of the cpu time, but considerably less 100%, and his
> > performances are bounded to a considerable lower throughput than the
> > theoretical one.
> >
>
> Completely different setup than last time. I am kind of lost.
>
> Are you trying to find the optimal way to demonstrate your patch can be useful ?
>
> In a case with 2 vcpus, then the _standard_ kernel will migrate the
> user thread on the cpu not used by the IRQ,
> once process scheduler can see two threads competing on one cpu
> (ksoftirqd and the user thread), and the other cpu being idle.
>
> Trying to shift the IRQ 'thread' is not nice, since the hardware IRQ
> will be delivered on the wrong cpu.
>
> Unless user space forces cpu pinning ? Then tell the user it should not.
>
> The natural choice is to put both producer and consumer on same cpu
> for cache locality reasons (wake affine),
> but in stress mode allow to run the consumer on another cpu if available.
>
> If the process scheduler fails to migrate the producer, then there is
> a bug needing to be fixed.
I guess you means 'consumer' here. The scheduler doesn't fail to migrate
it: the consumer is actually migrated a lot of times, but on each cpu a
competing and running ksoftirqd thread is found.
The general problem is that under significant network load (not
necessary udp flood, similar behavior is observed even with TCP_RR
tests), with enough rx queue available and enough flows running, no
single thread/process can use 100% of any cpu, even if the overall
capacity would allow it.
Paolo
next prev parent reply other threads:[~2016-06-16 12:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-15 13:42 [PATCH 0/5] genirq: threadable IRQ support Paolo Abeni
2016-06-15 13:42 ` [PATCH 1/5] genirq: implement support for runtime switch to threaded irqs Paolo Abeni
2016-06-15 14:50 ` kbuild test robot
2016-06-15 13:42 ` [PATCH 2/5] genirq: add flags for controlling the default threaded irq behavior Paolo Abeni
2016-06-15 13:42 ` [PATCH 3/5] sched/preempt: cond_resched_softirq() must check for softirq Paolo Abeni
2016-06-15 13:48 ` Peter Zijlstra
2016-06-15 14:00 ` Paolo Abeni
2016-06-15 13:42 ` [PATCH 4/5] netdev: implement infrastructure for threadable napi irq Paolo Abeni
2016-06-15 14:12 ` kbuild test robot
2016-06-15 14:17 ` Eric Dumazet
2016-06-15 14:21 ` Eric Dumazet
2016-06-15 16:42 ` Paolo Abeni
2016-06-15 17:04 ` Eric Dumazet
2016-06-16 10:39 ` Paolo Abeni
2016-06-16 11:19 ` Eric Dumazet
2016-06-16 12:03 ` Paolo Abeni [this message]
2016-06-16 16:55 ` Eric Dumazet
2016-06-15 13:42 ` [PATCH 5/5] ixgbe: add support for threadable rx irq Paolo Abeni
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=1466078635.4691.56.camel@redhat.com \
--to=pabeni@redhat.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hannes@stressinduktion.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/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.