Thread (51 messages) 51 messages, 13 authors, 2005-03-31

Re: netif_rx packet dumping

From: "David S. Miller" <davem@davemloft.net>
Date: 2005-03-03 20:55:56

On Thu, 3 Mar 2005 12:38:11 -0800
Stephen Hemminger [off-list ref] wrote:
The existing throttling algorithm causes all packets to be dumped
(until queue emptys) when the packet backlog reaches
netdev_max_backog. I suppose this is some kind of DoS prevention
mechanism. The problem is that this dumping action creates mulitple
packet loss that forces TCP back to slow start.

But, all this is really moot for the case of any reasonably high speed
device because of NAPI. netif_rx is not even used for any device that
uses NAPI.  The NAPI code path uses net_receive_skb and the receive
queue management is done by the receive scheduling (dev->quota) of the
rx_scheduler.
Even without NAPI, netif_rx() ends up using the quota etc. machanisms
when the queue gets processed via process_backlog().

ksoftirqd should handle cpu starvation issues at a higher level.

I think it is therefore safe to remove the netif_max_backlog stuff
altogether.  "300" is such a non-sense setting, especially for gigabit
drivers which aren't using NAPI for whatever reason.  It's even low
for a system with 2 100Mbit devices.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help