Re: net-sched: When TX over-limit happens on netdev, what does kernel do?

From: Liu ping fan
Date: Mon Apr 02 2012 - 07:08:34 EST


On Sun, Apr 1, 2012 at 4:44 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote:
> On Sun, 2012-04-01 at 16:27 +0800, Liu ping fan wrote:
>> Hi,
>>
>> Could anybody tell me when TX over-limit happens on netdev, what does kernel do?
>> Is skb buffered in Qdisc->q and the sending process keeps running?
>
> Are you referring to the NETDEV_TX_BUSY return code processing ?
>
Yes.
>> Or we block the sending process and make it scheduled?
>>
>
> We never block the sender process in qdisc layer.
>
For qdisc layer in softirq?

> Only upper protocol layers can eventually block if too many packets are
> in flight on the socket.
>
>> Found some code in net/sched/sch_cbq.c
>> cbq_dequeue(struct Qdisc *sch) --> qdisc_watchdog_schedule(), Âso I
>> guess the skb is buffered in Qdisc, but what about sending process?
>
> sender queued its packet and doesnt care if the packet is sent or not.
>
> Only problem is when qdisc limit (number of packets in queue) is hit,
> then we can return an error to sender (packet dropped or congestion
> notification)
>
Got it, thanks.

Regards,
pingfan
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/