netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: qdisc tbf dropping many packets
       [not found] ` <48F54940.6050105@bnet6.net>
@ 2008-10-15  4:48   ` David Miller
  2008-10-15  9:47     ` Patrick McHardy
  0 siblings, 1 reply; 3+ messages in thread
From: David Miller @ 2008-10-15  4:48 UTC (permalink / raw)
  To: abasit; +Cc: linux-net, netdev

From: Abdul Basit <abasit@bnet6.net>
Date: Tue, 14 Oct 2008 21:37:04 -0400

[ netdev CC:'d, you'll reach more knowledgable people there ]

> I am running linux kernel 2.6.23.1 on PowerPC and trying to set qdisc tbf  to limit the rate:-
> *
> *==> tc qdisc add dev eth0 root tbf rate 2048kbit buffer 10kb latency 50ms
> 
> The problem is no matter what rate i specify, if I download a file it always get down to ~16-18Kbps download speed,
> after investigating a bit more, i found by tc -s qdisc show that many dropped packets show up in statistic s,
> looking further in kernel code, I found that in linux/net/sched/sch_tbf.c:126
> 
> static int tbf_enqueue(struct sk_buff *skb, struct Qdisc* sch)
> {
>        struct tbf_sched_data *q = qdisc_priv(sch);
>        int ret;
>  if (skb->len > q->max_size) {
>                 printk (KERN_INFO "tbf_enqueue, drop skb->len = %d, q->max_size = %d\n", skb->len, q->max_size);
>                 sch->qstats.drops++;
> 
>         ....
> }
> 
> whenever it try to enqueue the packet, the skb->len ( range from 2980 - 2977 ) is usually greator than q->max_size ( 2907 )
> hence it drops the packet.
> 
> On a different machine with same source code, skb->len never become > 1500 and there the tbf works fine.
> 
> Could someone please provide more insight or help where should i look more?
> 
> Thanks,
> ~Basit
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-net" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: qdisc tbf dropping many packets
  2008-10-15  4:48   ` qdisc tbf dropping many packets David Miller
@ 2008-10-15  9:47     ` Patrick McHardy
  2008-10-15 23:14       ` Abdul Basit
  0 siblings, 1 reply; 3+ messages in thread
From: Patrick McHardy @ 2008-10-15  9:47 UTC (permalink / raw)
  To: abasit; +Cc: David Miller, linux-net, netdev

David Miller wrote:
> From: Abdul Basit <abasit@bnet6.net>
> Date: Tue, 14 Oct 2008 21:37:04 -0400
> 
> [ netdev CC:'d, you'll reach more knowledgable people there ]
> 
>> I am running linux kernel 2.6.23.1 on PowerPC and trying to set qdisc tbf  to limit the rate:-
>> *
>> *==> tc qdisc add dev eth0 root tbf rate 2048kbit buffer 10kb latency 50ms
>>
>> The problem is no matter what rate i specify, if I download a file it always get down to ~16-18Kbps download speed,
>> after investigating a bit more, i found by tc -s qdisc show that many dropped packets show up in statistic s,
>> looking further in kernel code, I found that in linux/net/sched/sch_tbf.c:126
>>
>> static int tbf_enqueue(struct sk_buff *skb, struct Qdisc* sch)
>> {
>>        struct tbf_sched_data *q = qdisc_priv(sch);
>>        int ret;
>>  if (skb->len > q->max_size) {
>>                 printk (KERN_INFO "tbf_enqueue, drop skb->len = %d, q->max_size = %d\n", skb->len, q->max_size);
>>                 sch->qstats.drops++;
>>
>>         ....
>> }
>>
>> whenever it try to enqueue the packet, the skb->len ( range from 2980 - 2977 ) is usually greator than q->max_size ( 2907 )
>> hence it drops the packet.
>>
>> On a different machine with same source code, skb->len never become > 1500 and there the tbf works fine.
>>
>> Could someone please provide more insight or help where should i look more?

This appears to caused by TSO. Try disabling TSO using ethtool or
configure TBF to handle larger packet sizes.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: qdisc tbf dropping many packets
  2008-10-15  9:47     ` Patrick McHardy
@ 2008-10-15 23:14       ` Abdul Basit
  0 siblings, 0 replies; 3+ messages in thread
From: Abdul Basit @ 2008-10-15 23:14 UTC (permalink / raw)
  To: linux-net; +Cc: netdev

Thanks Patrick, disabling the ETH TSO helped, TBF is working okay now.

Thanks again,
~Basit

Patrick McHardy wrote:
> David Miller wrote:
>> From: Abdul Basit <abasit@bnet6.net>
>> Date: Tue, 14 Oct 2008 21:37:04 -0400
>>
>> [ netdev CC:'d, you'll reach more knowledgable people there ]
>>
>>> I am running linux kernel 2.6.23.1 on PowerPC and trying to set 
>>> qdisc tbf  to limit the rate:-
>>> *
>>> *==> tc qdisc add dev eth0 root tbf rate 2048kbit buffer 10kb 
>>> latency 50ms
>>>
>>> The problem is no matter what rate i specify, if I download a file 
>>> it always get down to ~16-18Kbps download speed,
>>> after investigating a bit more, i found by tc -s qdisc show that 
>>> many dropped packets show up in statistic s,
>>> looking further in kernel code, I found that in 
>>> linux/net/sched/sch_tbf.c:126
>>>
>>> static int tbf_enqueue(struct sk_buff *skb, struct Qdisc* sch)
>>> {
>>>        struct tbf_sched_data *q = qdisc_priv(sch);
>>>        int ret;
>>>  if (skb->len > q->max_size) {
>>>                 printk (KERN_INFO "tbf_enqueue, drop skb->len = %d, 
>>> q->max_size = %d\n", skb->len, q->max_size);
>>>                 sch->qstats.drops++;
>>>
>>>         ....
>>> }
>>>
>>> whenever it try to enqueue the packet, the skb->len ( range from 
>>> 2980 - 2977 ) is usually greator than q->max_size ( 2907 )
>>> hence it drops the packet.
>>>
>>> On a different machine with same source code, skb->len never become 
>>> > 1500 and there the tbf works fine.
>>>
>>> Could someone please provide more insight or help where should i 
>>> look more?
>
> This appears to caused by TSO. Try disabling TSO using ethtool or
> configure TBF to handle larger packet sizes.



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-10-15 23:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <6dd1343e0810090644r5b586fa4gd63ee6659b3a07c4@mail.gmail.com>
     [not found] ` <48F54940.6050105@bnet6.net>
2008-10-15  4:48   ` qdisc tbf dropping many packets David Miller
2008-10-15  9:47     ` Patrick McHardy
2008-10-15 23:14       ` Abdul Basit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).