From: Florian Bezdeka <florian.bezdeka@siemens.com>
To: Kurt Kanzenbach <kurt@linutronix.de>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Cc: netdev@vger.kernel.org,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
jan.kiszka@siemens.com, vivek.behera@siemens.com
Subject: Re: [PATCH net-next] net/core: Enable socket busy polling on -RT
Date: Mon, 30 Oct 2023 12:29:02 +0100 [thread overview]
Message-ID: <fc7fb885df3a52d076bb71191afa786d19d79cd5.camel@siemens.com> (raw)
In-Reply-To: <87zg033vox.fsf@kurt>
Hi Kurt,
On Sat, 2023-10-28 at 12:09 +0200, Kurt Kanzenbach wrote:
> Hi Florian,
>
> On Fri Oct 27 2023, Florian Bezdeka wrote:
> > On Tue, 2023-05-23 at 13:15 +0200, Kurt Kanzenbach wrote:
> > > Busy polling is currently not allowed on PREEMPT_RT, because it disables
> > > preemption while invoking the NAPI callback. It is not possible to acquire
> > > sleeping locks with disabled preemption. For details see commit
> > > 20ab39d13e2e ("net/core: disable NET_RX_BUSY_POLL on PREEMPT_RT").
> >
> > Is that something that we could consider as Bug-Fix for 6.1 and request
> > a backport, or would you consider that as new feature?
>
> IMO it is in category "never worked". Hence it is not stable material.
>
> >
> > >
> > > However, strict cyclic and/or low latency network applications may prefer busy
> > > polling e.g., using AF_XDP instead of interrupt driven communication.
> > >
> > > The preempt_disable() is used in order to prevent the poll_owner and NAPI owner
> > > to be preempted while owning the resource to ensure progress. Netpoll performs
> > > busy polling in order to acquire the lock. NAPI is locked by setting the
> > > NAPIF_STATE_SCHED flag. There is no busy polling if the flag is set and the
> > > "owner" is preempted. Worst case is that the task owning NAPI gets preempted and
> > > NAPI processing stalls. This is can be prevented by properly prioritising the
> > > tasks within the system.
> > >
> > > Allow RX_BUSY_POLL on PREEMPT_RT if NETPOLL is disabled. Don't disable
> > > preemption on PREEMPT_RT within the busy poll loop.
Sorry, I need one more information here: We try to re-use the kernel
and its configuration from Debian whenever possible. NETPOLL/NETCONSOLE
is build as module there.
Will this limitation be addressed in the future? Is someone already
working on that? Is that maybe on the radar for the ongoing printk()
work? (Assuming printk() with NETCONSOLE enabled is the underlying
problem)
We don't use NETPOLL/NETCONSOLE during runtime but it is enabled at
build time. Sadly we can not use busy polling mode in combination with
XDP now. (Ignoring the fact that we could adjust the kernel
configuration, build on our own, ...)
Would love to hear your thoughts about that. Thanks a lot!
> > >
> > > Tested on x86 hardware with v6.1-RT and v6.3-RT on Intel i225 (igc) with
> > > AF_XDP/ZC sockets configured to run in busy polling mode.
> >
> > That is exactly our use case as well and we would like to have it in
> > 6.1. Any (technical) reasons that prevent a backport?
>
> There is no technical reason which prevents a backport to v6.1. In fact,
> we're using this with v6.1-RT LTS.
>
> Thanks,
> Kurt
next prev parent reply other threads:[~2023-10-30 11:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-23 11:15 [PATCH net-next] net/core: Enable socket busy polling on -RT Kurt Kanzenbach
2023-05-25 11:16 ` Paolo Abeni
2023-05-25 13:49 ` Sebastian Andrzej Siewior
2023-05-26 8:00 ` patchwork-bot+netdevbpf
2023-10-27 11:43 ` Florian Bezdeka
2023-10-28 10:09 ` Kurt Kanzenbach
2023-10-30 11:29 ` Florian Bezdeka [this message]
2023-11-08 7:41 ` Kurt Kanzenbach
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=fc7fb885df3a52d076bb71191afa786d19d79cd5.camel@siemens.com \
--to=florian.bezdeka@siemens.com \
--cc=bigeasy@linutronix.de \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jan.kiszka@siemens.com \
--cc=kuba@kernel.org \
--cc=kurt@linutronix.de \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=vivek.behera@siemens.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).