From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Yannick Vignon <yannick.vignon@oss.nxp.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Jose Abreu <joabreu@synopsys.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Eric Dumazet <edumazet@google.com>,
Antoine Tenart <atenart@kernel.org>,
Alexander Lobakin <alexandr.lobakin@intel.com>,
Paolo Abeni <pabeni@redhat.com>, Wei Wang <weiwan@google.com>,
Kumar Kartikeya Dwivedi <memxor@gmail.com>,
Yunsheng Lin <linyunsheng@huawei.com>,
Arnd Bergmann <arnd@arndb.de>,
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>
Subject: Re: [PATCH net-next 1/2] net: napi: wake up ksoftirqd if needed after scheduling NAPI
Date: Thu, 3 Feb 2022 20:41:58 +0100 [thread overview]
Message-ID: <YfwwBvO2+xVjer/+@linutronix.de> (raw)
In-Reply-To: <20220203184031.1074008-1-yannick.vignon@oss.nxp.com>
On 2022-02-03 19:40:30 [+0100], Yannick Vignon wrote:
> From: Yannick Vignon <yannick.vignon@nxp.com>
>
> If NAPI was not scheduled from interrupt or softirq,
> __raise_softirq_irqoff would mark the softirq pending, but not
> wake up ksoftirqd. With force threaded IRQs, this is
> compensated by the fact that the interrupt handlers are
> protected inside a local_bh_disable()/local_bh_enable()
This is not compensated but one of the reasons why it has been added.
> section, and bh_enable will call do_softirq if needed. With
> normal threaded IRQs however, this is no longer the case
> (unless the interrupt handler itself calls local_bh_enable()),
Exactly.
> whic results in a pending softirq not being handled, and the
> following message being printed out from tick-sched.c:
> "NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #%02x!!!\n"
Yes. This also includes various other call sites.
> Call raise_softirq_irqoff instead to make sure ksoftirqd is
> woken up in such a case, ensuring __napi_schedule, etc behave
> normally in more situations than just from an interrupt,
> softirq or from within a bh_disable/bh_enable section.
I would suggest to add a bh dis/en around the function that is known to
raise BH. This change to ____napi_schedule() as you suggest will raise
ksoftirqd and is not what you want. What you want is to process NAPI in
your current context.
> Signed-off-by: Yannick Vignon <yannick.vignon@nxp.com>
Sebastian
prev parent reply other threads:[~2022-02-03 19:42 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
2022-02-09 11:26 ` Marc Kleine-Budde
2022-02-03 19:41 ` Sebastian Andrzej Siewior [this message]
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=YfwwBvO2+xVjer/+@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=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 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.