[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1515620880.3350.44.camel@arista.com>
Date: Wed, 10 Jan 2018 21:48:00 +0000
From: Dmitry Safonov <dima@...sta.com>
To: Eric Dumazet <edumazet@...gle.com>
Cc: LKML <linux-kernel@...r.kernel.org>, 0x7f454c46@...il.com,
Andrew Morton <akpm@...ux-foundation.org>,
David Miller <davem@...emloft.net>,
Frederic Weisbecker <fweisbec@...il.com>,
Hannes Frederic Sowa <hannes@...essinduktion.org>,
Ingo Molnar <mingo@...nel.org>,
"Levin, Alexander (Sasha Levin)" <alexander.levin@...izon.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Paolo Abeni <pabeni@...hat.com>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Peter Zijlstra <peterz@...radead.org>,
Radu Rendec <rrendec@...sta.com>,
Rik van Riel <riel@...hat.com>,
Stanislaw Gruszka <sgruszka@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Wanpeng Li <wanpeng.li@...mail.com>
Subject: Re: [RFC 1/2] softirq: Defer net rx/tx processing to ksoftirqd
context
On Tue, 2018-01-09 at 10:02 -0800, Eric Dumazet wrote:
> On Tue, Jan 9, 2018 at 5:36 AM, Dmitry Safonov <dima@...sta.com>
> wrote:
> > Warning: Not merge-ready
> >
> > I. Current workflow of ksoftirqd.
> > Softirqs are processed in the context of ksoftirqd iff they are
> > being raised very frequently. How it works:
> > do_softirq() and invoke_softirq() deffer pending softirq iff
> >
>
> ...
>
> >
> > Note, that I tested in VMs and I've found that if I produce more
> > hw irqs on the host, than the results for master are not that
> > dramatically bad, but still much worse then with RFC.
> > By that reason I have qualms if my test's results are correct.
>
> Note that deferring all NET RX/TX to ksoftirqd is going to
> dramatically hurt tail latencies.
>
> You really should test with RPC like workloads (netperf -t TCP_RR)
> and
> hundred of threads per cpu :/
Yeah, thanks for the reply, will give that a shot.
>
> It seems we are going to revert/adapt 4cd13c21b2 , not defer more
> stuff to ksoftirqd.
Hmm, what if we use some other logic for deferring/non-deferring
like checking how many softirqs where serviced during process's
timeslice and decide if proceed with __do_softirq() or defer it
not to starve a task? Might that make sense?
--
Thanks,
Dmitry
Powered by blists - more mailing lists