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

Reply via email to