Subject: Re: [RFC PATCH 1/2] netpoll: Remove dead netpoll_rx code

From: [email-masked] (Eric W. Biederman)
Date: Thu, 13 Mar 2014 13:46:17 -0700

David Miller <[email-masked]> writes:

> From: [email-masked] (Eric W. Biederman)
> Date: Tue, 11 Mar 2014 13:48:01 -0700
>
>> To play devil's advocate to my own patch.  Does anyone know where kgdb
>> over network (kgdboe) code lives today?
>> 
>> What little I could find in a quick google search strongly suggests that
>> kgdboe was abandoned in 2010 or so.
>> 
>> I am trying to figure out if there are any active out of tree projects
>> that need by directional netpoll.
>
> Good questions.
>
> I, perhaps mistakenly, kept the functionality around because there
> were claims that we'd use it in-tree.
>
> That of course never materialized.
>
> The fact that people have a lot of trouble even finding the kgdboe
> sources is quite telling, indeed.

Also telling is that we actually broken kgdboe support in 2011 when
netpoll_poll was removed.

> Let's kill it, we can pull it back in (perhaps with a better design)
> if something is proposed in-tree that will need it.

Sounds good.  Patches to follow shortly.

> But I'm skeptical we ever will need it, and even if such a
> reinstatement is proposed f.e. for the kgdboe use case it has holes.
>
> Consider the case where kgdboe takes a breakpoint in a hardware
> interrupt handler.  What happens?  We cannot allow it to perform a
> full back-and-forth conversation with the remote gdb from such a
> context.

In interests of full disclosure I missed a subtle detail, and what
the code does today is that when netpoll_poll_dev is running is that it
intercepts and drops all in-coming packets.

So I think the current packet receive design might be salvaged, if
someone gets interested again.  The bitrot is pretty significant
currently.

Still I should point out that the code that drops received skbs is
technically wrong today.  It uses kfree_skb, instead of the needed
dev_kfree_skb_any that is needed to work in any context netpoll_rx
might be called in.

Eric