Problem with Netpoll based netdumping and NAPI

From: Hariprasad Nellitheertha
Date: Mon Apr 19 2004 - 07:53:07 EST


Hi All,

I am facing a problem while trying to network dump using LKCD. My
debugging so far indicates that this is due to both NAPI and NETPOLL
being enabled.

I am using LKCD on the 2.6.5 kernel and both the client and server are
i386 boxes. The dumping machine has an e100 card. I have built the kernel
with both CONFIG_E100_NAPI and CONFIG_NET_POLL_CONTROLLER (and the other
netpoll related options) selected.

LKCD uses netpoll for its network dump implementation. The problem we see
is that the network dump driver does not receive any packet from the
card driver and hence dumping fails. In e100_intr(), we call
netif_rx_schedule() if we are using the NAPI feature. netif_rx_schedule,
in turn, ends up adding the processing of this packet to the NET_RX_SOFTIRQ
softirq.

When we do netdump, all the other cpus are halted and interrupts disabled.
So, we never get around to scheduling the ksoftirqd thread and these packets
are never processed. I think any one using netpoll with NAPI logic turned on
will face this problem.

One way I worked around this was to avoid the NAPI logic when we end up
in e100_intr() due to netpoll. But I think a better solution would be to
let the NAPI code handle this.

Request all to comment and suggest an effective way to fix this problem.
Thanks in advance.

Regards, Hari
--
Hariprasad Nellitheertha
Linux Technology Center
India Software Labs
IBM India, Bangalore
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html