On Saturday 06 August 2005 02:33, David S. Miller wrote: > You can't call into the networking packet input path from > hardware interrupt context, it simply is not allowed. > > And that's the context in which netif_rx() gets called.
Duh. I assumed we already were in softirq context here (but with 20-20 hindsight, that would be stupid extra work). > That is why netif_rx() just queues, and schedules a software > interrupt in which the netif_receive_skb() call gets made. So then there is no choice but to throttle the per-cpu ->input_pkt queues. The throttling code is already there, I just need to repurpose it slightly. if (queue->input_pkt_queue.qlen <= netdev_max_backlog) Question: it looks to me as if a given network device interrupt is always routed to the same CPU. Can we rely on this? If so, I only have to check the min(netdev_max_backlog, sk->dev->reserve_in_flight) netdev_max_backlog - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html