On Wed, Feb 16, 2005 at 03:54:07PM -0800, David S. Miller wrote:
> On Wed, 16 Feb 2005 15:44:06 -0800
> Matt Mackall <mpm@xxxxxxxxxxx> wrote:
>
> > Ok. We've got a few cases:
> >
> > 1) recursion on cpu1
>
> If you hit this case, and therefore can't re-enter into ->poll(),
> you must drop the packet or so something else if netif_queue_stopped()
> since netpoll has no means by which to cause the TX queue to make
> forward progress.
>
> Do you at least agree with this?
Yes.
> Perhaps you can create a "pending netpoll() packet" queue so that
> you don't have to drop the SKB in this case. Make the queue get
> processed via softint processing. I think this will work.
This part needs more thought.
For kgdb-over-ethernet and netdump, the box is stopped here - if we
can't poll, we're sunk. But then, neither of those can reasonably be
expected to work from inside the thing they're debugging. Panicking is
probably appropriate here.
For netconsole, delayed processing may be acceptable, but then there
are out of order delivery issues and quite a bit of additional
complexity..
--
Mathematics is the supreme nostalgia of our time.
|