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.