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

From: Jakub Kicinski <[email-masked]>
Date: Wed, 15 Mar 2023 16:11:42 -0700

On Wed, 15 Mar 2023 15:52:02 -0700 Stephen Hemminger wrote:
> On Wed, 15 Mar 2023 15:30:44 -0700
> Jakub Kicinski <[email-masked]> wrote:
> 
> > Add basic documentation about NAPI. We can stop linking to the ancient
> > doc on the LF wiki.
> > 
> > Signed-off-by: Jakub Kicinski <[email-masked]>
> > ---
> > CC: [email-masked]
> > CC: [email-masked]
> > CC: [email-masked]
> > CC: [email-masked]  
> 
> 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.