From: Ingo Molnar <mingo@elte.hu>
To: David Miller <davem@davemloft.net>
Cc: wenji@fnal.gov, akpm@osdl.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [patch 1/4] - Potential performance bottleneck for Linxu TCP
Date: Thu, 30 Nov 2006 08:35:04 +0100 [thread overview]
Message-ID: <20061130073504.GA19437@elte.hu> (raw)
In-Reply-To: <20061129.231258.65649383.davem@davemloft.net>
* David Miller <davem@davemloft.net> wrote:
> > furthermore, the tweak allows the shifting of processing from a
> > prioritized process context into a highest-priority softirq context.
> > (it's not proven that there is any significant /net win/ of
> > performance: all that was proven is that if we shift TCP processing
> > from process context into softirq context then TCP throughput of
> > that otherwise penalized process context increases.)
>
> If we preempt with any packets in the backlog, we send no ACKs and the
> sender cannot send thus the pipe empties. That's the problem, this
> has nothing to do with scheduler priorities or stuff like that IMHO.
> The argument goes that if the reschedule is delayed long enough, the
> ACKs will exceed the round trip time and trigger retransmits which
> will absolutely kill performance.
yes, but i disagree a bit about the characterisation of the problem. The
question in my opinion is: how is TCP processing prioritized for this
particular socket, which is attached to the process context which was
preempted.
normally, normally quite a bit of TCP processing happens in a softirq
context (in fact most of it happens there), and softirq contexts have no
fairness whatsoever - they preempt whatever processing is going on,
regardless of any priority preferences of the user!
what was observed here were the effects of completely throttling TCP
processing for a given socket. I think such throttling can in fact be
desirable: there is a /reason/ why the process context was preempted: in
that load scenario there was 10 times more processing requested from the
CPU than it can possibly service. It's a serious overload situation and
it's the scheduler's task to prioritize between workloads!
normally such kind of "throttling" of the TCP stack for this particular
socket does not happen. Note that there's no performance lost: we dont
do TCP processing because there are /9 other tasks for this CPU to run/,
and the scheduler has a tough choice.
Now i agree that there are more intelligent ways to throttle and less
intelligent ways to throttle, but the notion to allow a given workload
'steal' CPU time from other workloads by allowing it to push its
processing into a softirq is i think unfair. (and this issue is
partially addressed by my softirq threading patches in -rt :-)
Ingo
next prev parent reply other threads:[~2006-11-30 7:37 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-30 1:56 [patch 1/4] - Potential performance bottleneck for Linxu TCP Wenji Wu
2006-11-30 2:19 ` David Miller
2006-11-30 6:17 ` Ingo Molnar
2006-11-30 6:30 ` David Miller
2006-11-30 6:47 ` Ingo Molnar
2006-11-30 7:12 ` David Miller
2006-11-30 7:35 ` Ingo Molnar [this message]
2006-11-30 9:52 ` Evgeniy Polyakov
2006-11-30 10:07 ` Nick Piggin
2006-11-30 10:22 ` Evgeniy Polyakov
2006-11-30 10:32 ` Ingo Molnar
2006-11-30 17:04 ` Wenji Wu
2006-11-30 20:20 ` Ingo Molnar
2006-11-30 20:58 ` Wenji Wu
2006-11-30 20:22 ` David Miller
2006-11-30 20:30 ` Ingo Molnar
2006-11-30 20:38 ` David Miller
2006-11-30 20:49 ` Ingo Molnar
2006-11-30 20:54 ` Ingo Molnar
2006-11-30 20:55 ` David Miller
2006-11-30 20:14 ` David Miller
2006-11-30 20:42 ` Wenji Wu
2006-12-01 9:53 ` Evgeniy Polyakov
2006-12-01 23:18 ` David Miller
2006-11-30 6:56 ` Ingo Molnar
2006-11-30 16:08 ` Wenji Wu
2006-11-30 20:06 ` David Miller
2006-11-30 9:33 ` Christoph Hellwig
2006-11-30 16:51 ` Lee Revell
-- strict thread matches above, loose matches on Subject: below --
2006-11-30 2:02 Wenji Wu
2006-11-30 6:19 ` Ingo Molnar
2006-11-29 23:27 [Changelog] " Wenji Wu
2006-11-29 23:28 ` [patch 1/4] " Wenji Wu
2006-11-30 0:53 ` David Miller
2006-11-30 1:08 ` Andrew Morton
2006-11-30 1:13 ` David Miller
2006-11-30 6:04 ` Mike Galbraith
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=20061130073504.GA19437@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=wenji@fnal.gov \
/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).