Problem with Netpoll based netdumping and NAPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux