On Sep 20, 2018, at 4:49 PM, Eric Dumazet eric.dumazet@gmail.com wrote:
On 09/20/2018 04:43 PM, Song Liu wrote:
I tried to totally skip ndo_poll_controller() here. It did avoid hitting the issue. However, netpoll will drop (fail to send) more packets.
Why is it failing ?
If you are under high memory pressure, then maybe if you absolutely want memory to send netpoll packets, you want to grab all NAPI contexts as a way to prevent other cpus from feeding incoming packets to the host and add more memory pressure ;)
I did the test with Eric's latest patch (and disable ndo_poll_controller in driver). The result didn't show significant increase in drop packets. I guess packet drops in my earlier test was caused by some other changes I mixed there.
So I think this patch does fix the issue. Thanks Eric!
For ixgbe, I think we need to check napi_complete_done() return value anyway. Otherwise, the driver will enable IRQ in polling mode.
Song