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