Re: [PATCH net-next] docs: networking: document NAPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/15/23 16:11, Jakub Kicinski wrote:
On Wed, 15 Mar 2023 15:52:02 -0700 Stephen Hemminger wrote:
On Wed, 15 Mar 2023 15:30:44 -0700
Jakub Kicinski <kuba@xxxxxxxxxx> wrote:

Add basic documentation about NAPI. We can stop linking to the ancient
doc on the LF wiki.

Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
---
CC: jesse.brandeburg@xxxxxxxxx
CC: anthony.l.nguyen@xxxxxxxxx
CC: corbet@xxxxxxx
CC: linux-doc@xxxxxxxxxxxxxxx

The one thing missing, is how to handle level vs edge triggered interrupts.
For level triggered interrupts, the re-enable is inherently not racy.
I.e re-enabling interrupt when packet is present will cause an interrupt.
But for devices with edge triggered interrupts, it is often necessary to
poll and manually schedule again. Older documentation referred to this
as the "rotten packet" problem.

Maybe this is no longer a problem for drivers?
Or maybe all new hardware uses PCI MSI and is level triggered?

It's still a problem depending on the exact design of the interrupt
controller in the chip / tradeoffs the SW wants to make.
I haven't actually read the LF doc, because I wasn't sure about the
licenses (sigh). The rotten packet problem does not come up in reviews
very often, so it wasn't front of mind. I'm not sure I'd be able to
concisely describe it, actually :S There are many races and conditions
which can lead to it.

True, though I would put a word in or two about level vs. edge triggered anyway, if nothing else, explain essentially what Stephen just provided ought to be a good starting point for driver writers to consider the possible issue.
--
Florian




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux