Messages in this thread |  | | | Date | Mon, 2 Apr 2012 19:08:35 +0800 | | Subject | Re: net-sched: When TX over-limit happens on netdev, what does kernel do? | | From | Liu ping fan <> |
| |
On Sun, Apr 1, 2012 at 4:44 PM, Eric Dumazet <eric.dumazet@gmail.com> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |