[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e9caa256-482d-1cc0-4244-e9d4c5615f01@blackwall.org>
Date: Wed, 22 Mar 2023 12:39:59 +0200
From: Nikolay Aleksandrov <razor@...ckwall.org>
To: Jakub Kicinski <kuba@...nel.org>, davem@...emloft.net
Cc: netdev@...r.kernel.org, edumazet@...gle.com, pabeni@...hat.com,
Bagas Sanjaya <bagasdotme@...il.com>,
Toke Høiland-Jørgensen <toke@...hat.com>,
Pavel Pisa <pisa@....felk.cvut.cz>,
Tony Nguyen <anthony.l.nguyen@...el.com>,
Florian Fainelli <f.fainelli@...il.com>, corbet@....net,
jesse.brandeburg@...el.com, mkl@...gutronix.de,
linux-doc@...r.kernel.org, stephen@...workplumber.org,
romieu@...zoreil.com
Subject: Re: [PATCH net-next v3] docs: networking: document NAPI
On 22/03/2023 07:38, Jakub Kicinski wrote:
> Add basic documentation about NAPI. We can stop linking to the ancient
> doc on the LF wiki.
>
> Signed-off-by: Jakub Kicinski <kuba@...nel.org>
> Link: https://lore.kernel.org/all/20230315223044.471002-1-kuba@kernel.org/
> Reviewed-by: Bagas Sanjaya <bagasdotme@...il.com>
> Reviewed-by: Toke Høiland-Jørgensen <toke@...hat.com>
> Acked-by: Pavel Pisa <pisa@....felk.cvut.cz> # for ctucanfd-driver.rst
> Reviewed-by: Tony Nguyen <anthony.l.nguyen@...el.com>
> Reviewed-by: Florian Fainelli <f.fainelli@...il.com>
> ---
> v3: rebase on net-next (to avoid ixgb conflict)
> fold in grammar fixes from Stephen
> v2: https://lore.kernel.org/all/20230321050334.1036870-1-kuba@kernel.org/
> remove the links in CAN and in ICE as well
> improve the start of the threaded NAPI section
> name footnote
> internal links from the intro to sections
> various clarifications from Florian and Stephen
>
> CC: corbet@....net
> CC: jesse.brandeburg@...el.com
> CC: anthony.l.nguyen@...el.com
> CC: pisa@....felk.cvut.cz
> CC: mkl@...gutronix.de
> CC: linux-doc@...r.kernel.org
> CC: f.fainelli@...il.com
> CC: stephen@...workplumber.org
> CC: romieu@...zoreil.com
> ---
> .../can/ctu/ctucanfd-driver.rst | 3 +-
> .../device_drivers/ethernet/intel/e100.rst | 3 +-
> .../device_drivers/ethernet/intel/i40e.rst | 4 +-
> .../device_drivers/ethernet/intel/ice.rst | 4 +-
> Documentation/networking/index.rst | 1 +
> Documentation/networking/napi.rst | 251 ++++++++++++++++++
> include/linux/netdevice.h | 13 +-
> 7 files changed, 266 insertions(+), 13 deletions(-)
> create mode 100644 Documentation/networking/napi.rst
>
[snip]
> +Threaded NAPI
> +-------------
> +
> +Threaded NAPI is an operating mode that uses dedicated kernel
> +threads rather than software IRQ context for NAPI processing.
> +The configuration is per netdevice and will affect all
> +NAPI instances of that device. Each NAPI instance will spawn a separate
> +thread (called ``napi/${ifc-name}-${napi-id}``).
> +
> +It is recommended to pin each kernel thread to a single CPU, the same
> +CPU as services the interrupt. Note that the mapping between IRQs and
"... the same CPU as services the interrupt ...", should it be
"the same CPU that services the interrupt" ?
> +NAPI instances may not be trivial (and is driver dependent).
> +The NAPI instance IDs will be assigned in the opposite order
> +than the process IDs of the kernel threads.
> +
> +Threaded NAPI is controlled by writing 0/1 to the ``threaded`` file in
> +netdev's sysfs directory.
> +
> +.. rubric:: Footnotes
> +
> +.. [#] NAPI was originally referred to as New API in 2.4 Linux.
Very nice! Other than the above looks good to me.
Cheers,
Nik
Powered by blists - more mailing lists