From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Paolo Abeni <pabeni@redhat.com>
Cc: Jakub Kicinski <kuba@kernel.org>,
Yannick Vignon <yannick.vignon@oss.nxp.com>,
Eric Dumazet <edumazet@google.com>,
Giuseppe Cavallaro <peppe.cavallaro@st.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Jose Abreu <joabreu@synopsys.com>,
"David S. Miller" <davem@davemloft.net>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Antoine Tenart <atenart@kernel.org>,
Alexander Lobakin <alexandr.lobakin@intel.com>,
Wei Wang <weiwan@google.com>,
Kumar Kartikeya Dwivedi <memxor@gmail.com>,
Yunsheng Lin <linyunsheng@huawei.com>,
Arnd Bergmann <arnd@arndb.de>, netdev <netdev@vger.kernel.org>,
Vladimir Oltean <olteanv@gmail.com>,
Xiaoliang Yang <xiaoliang.yang_1@nxp.com>,
mingkai.hu@nxp.com, Joakim Zhang <qiangqing.zhang@nxp.com>,
sebastien.laveze@nxp.com, Yannick Vignon <yannick.vignon@nxp.com>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH net-next 1/2] net: napi: wake up ksoftirqd if needed after scheduling NAPI
Date: Tue, 8 Feb 2022 19:21:50 +0100 [thread overview]
Message-ID: <YgK0vi8Zs37LdoK4@linutronix.de> (raw)
In-Reply-To: <8b5010f2e6730ad0af0b9d8949cf34bc17681b12.camel@redhat.com>
On 2022-02-08 16:57:59 [+0100], Paolo Abeni wrote:
> just for historic reference:
>
> https://lkml.org/lkml/2016/6/15/460
that is
https://lore.kernel.org/all/cover.1465996447.git.pabeni@redhat.com
let me digest that later…
> I think that running the thread performing the NAPI loop with
> SCHED_FIFO would be dangerous WRT DDOS. Even the affinity setting can
> give mixed results depending on the workload - unless you do good
> static CPUs allocation pinning each process manually, not really a
> generic setup.
The DDoS part is where I meant we need figure out the details. Since it
is a threaded-interrupt we could do msleep() as a break which is similar
to what softirq does. Detecting such a case might be difficult since the
budget is per-thread only and does not involve other NAPI-structs on the
same CPU like backlog.
The performance is usually best if the IRQ and threaded handler are
running on the same CPU. The win with the NAPI thread seems to be that
if two NAPIs fire on the same CPU then the scheduler will see two tasks
which will be moved (at some point) to different CPUs. And in a DDoS
like situation they can constantly push new skbs into the stack and
SCHED_OTHER ensures that the user can still do something. Without napi
threads, both NAPIs would be processed on the same CPU (in order) and
eventually moved to ksoftirqd where it will take a break under high
load.
> Cheers,
>
> Paolo
Sebastian
next prev parent reply other threads:[~2022-02-08 18:21 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-03 18:40 [PATCH net-next 1/2] net: napi: wake up ksoftirqd if needed after scheduling NAPI Yannick Vignon
2022-02-03 18:40 ` [PATCH net-next 2/2] net: stmmac: move to threaded IRQ Yannick Vignon
2022-02-03 19:08 ` [PATCH net-next 1/2] net: napi: wake up ksoftirqd if needed after scheduling NAPI Eric Dumazet
2022-02-03 23:40 ` Yannick Vignon
2022-02-03 23:57 ` Eric Dumazet
2022-02-04 1:09 ` Jakub Kicinski
2022-02-04 8:19 ` Sebastian Andrzej Siewior
2022-02-04 15:43 ` Jakub Kicinski
2022-02-04 17:15 ` Yannick Vignon
2022-02-04 17:36 ` Jakub Kicinski
2022-02-04 17:45 ` Jakub Kicinski
2022-02-04 18:03 ` Sebastian Andrzej Siewior
2022-02-04 18:50 ` Jakub Kicinski
2022-02-04 18:52 ` Jakub Kicinski
2022-02-08 11:51 ` Sebastian Andrzej Siewior
2022-02-08 15:35 ` Jakub Kicinski
2022-02-08 17:45 ` Sebastian Andrzej Siewior
2022-02-09 0:16 ` Jakub Kicinski
2022-02-08 15:57 ` Paolo Abeni
2022-02-08 18:21 ` Sebastian Andrzej Siewior [this message]
2022-02-09 11:26 ` Marc Kleine-Budde
2022-02-03 19:41 ` Sebastian Andrzej Siewior
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=YgK0vi8Zs37LdoK4@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=alexandr.lobakin@intel.com \
--cc=alexandre.torgue@foss.st.com \
--cc=arnd@arndb.de \
--cc=atenart@kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=joabreu@synopsys.com \
--cc=kuba@kernel.org \
--cc=linyunsheng@huawei.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=memxor@gmail.com \
--cc=mingkai.hu@nxp.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=peppe.cavallaro@st.com \
--cc=qiangqing.zhang@nxp.com \
--cc=sebastien.laveze@nxp.com \
--cc=tglx@linutronix.de \
--cc=weiwan@google.com \
--cc=xiaoliang.yang_1@nxp.com \
--cc=yannick.vignon@nxp.com \
--cc=yannick.vignon@oss.nxp.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).