All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Laight <david.laight.linux@gmail.com>
To: Samiullah Khawaja <skhawaja@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>,
	"David S . Miller " <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Paolo Abeni <pabeni@redhat.com>,
	netdev@vger.kernel.org
Subject: Re: [PATCH net-next 0/3] Add support to do threaded napi busy poll
Date: Thu, 2 Jan 2025 21:56:42 +0000	[thread overview]
Message-ID: <20250102215642.21da3755@dsl-u17-10> (raw)
In-Reply-To: <20250102191227.2084046-1-skhawaja@google.com>

On Thu,  2 Jan 2025 19:12:24 +0000
Samiullah Khawaja <skhawaja@google.com> wrote:

> Extend the already existing support of threaded napi poll to do continuous
> busypolling.
> 
> This is used for doing continuous polling of napi to fetch descriptors from
> backing RX/TX queues for low latency applications. Allow enabling of threaded
> busypoll using netlink so this can be enabled on a set of dedicated napis for
> low latency applications.
> 
> Currently threaded napi is only enabled at device level using sysfs. Add
> support to enable/disable threaded mode for a napi individually. This can be
> done using the netlink interface. Add `set_threaded` op in netlink spec that
> allows setting the `threaded` attribute of a napi.
> 
> Extend the threaded attribute in napi struct to add an option to enable
> continuous busy polling. Extend the netlink and sysfs interface to allow
> enabled/disabling threaded busypolling at device or individual napi level.
> 
> Once threaded busypoll on a napi is enabled, depending on the application
> requirements the polling thread can be moved to dedicated cores. We used this
> for AF_XDP usecases to fetch packets from RX queues to reduce latency.

I think it would be more generally useful to be able to set the priority
of the NAPI thread.
'busypolling' is just an extreme version of a high priority thread.

We've had to use threaded NAPI and a low SCHED_FIFO priority in order to
clear the RX queues without the softint code locking out a other SCHED_FIFO
user threads for 20ms+.
That is currently rather a pain to setup.

	David



  parent reply	other threads:[~2025-01-02 21:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-02 19:12 [PATCH net-next 0/3] Add support to do threaded napi busy poll Samiullah Khawaja
2025-01-02 19:12 ` [PATCH net-next 1/3] Add support to set napi threaded for individual napi Samiullah Khawaja
2025-01-02 21:15   ` Stanislav Fomichev
2025-01-02 19:12 ` [PATCH net-next 2/3] net: Create separate gro_flush helper function Samiullah Khawaja
2025-01-02 19:12 ` [PATCH net-next 3/3] Extend napi threaded polling to allow kthread based busy polling Samiullah Khawaja
2025-01-02 21:16   ` Samudrala, Sridhar
2025-01-02 21:28   ` Stanislav Fomichev
2025-01-03  1:05   ` kernel test robot
2025-01-03  8:11   ` kernel test robot
2025-01-03  8:12   ` kernel test robot
2025-01-02 21:30 ` [PATCH net-next 0/3] Add support to do threaded napi busy poll Stanislav Fomichev
2025-01-02 21:56 ` David Laight [this message]
2025-01-03  0:47 ` Jakub Kicinski
2025-01-08 19:25   ` Joe Damato
2025-01-08 21:18     ` Samiullah Khawaja
2025-01-08 21:53       ` Martin Karsten
2025-01-15 22:35         ` Samiullah Khawaja
2025-01-16  0:28           ` Martin Karsten

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=20250102215642.21da3755@dsl-u17-10 \
    --to=david.laight.linux@gmail.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=skhawaja@google.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.