<br><br><div class="gmail_quote">On Tue, Jun 4, 2013 at 1:21 PM, Jesper Dangaard Brouer <span dir="ltr"><<a href="mailto:jbrouer@redhat.com" target="_blank">jbrouer@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Tue, 04 Jun 2013 10:11:48 -0700<br>
Eric Dumazet <<a href="mailto:eric.dumazet@gmail.com">eric.dumazet@gmail.com</a>> wrote:<br>
<br>
> From: Eric Dumazet <<a href="mailto:edumazet@google.com">edumazet@google.com</a>><br>
><br>
> commit 56b765b79 ("htb: improved accuracy at high rates") added<br>
> another regression for low rates, because it mixes 1ns and 64ns time<br>
> units.<br>
><br>
> So the maximum delay (mbuffer) was not 60 second, but 937 ms.<br>
><br>
> Lets convert all time fields to 1ns as 64bit arches are becoming the<br>
> norm.<br>
<br>
</div>I'm of-cause happy as I need this fixed for big-HW machines at Red Hat.<br>
<br>
But how is this 64-bit usage going to affect performance for smaller<br>
ARM/MIPS based home routers, where shaping at these low rates is more<br>
relevant?  (I'm just asking because I don't know, and just test this<br>
on a 24-CPU machine).<br></blockquote><div><br>I'm not worried about it but will find out shortly in cerowrt.<br><br>I take it this does not fix the DSL/ATM issue however?<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Tested-by: Jesper Dangaard Brouer <<a href="mailto:brouer@redhat.com">brouer@redhat.com</a>><br>
<br>
I have tested you patch, and it works for me.<br>
Tested shaping at 100Kbit/s:<br>
 - max "rate 100656bit" on dev lo<br>
 - max "rate 102016bit" on a real  1 Gbit/s NIC (dev eth63).<br>
 - max "rate 103256bit" on a real 10 Gbit/s NIC (dev eth31).<br>
<br>
The traffic "of-cause" spikes due to the GSO frames, if measuring the<br>
traffic at a higher resolution (I've seen upto 3 sec without traffic).<br>
<br>
Thanks for the quick fix! :-)))<br>
--<br>
Best regards,<br>
  Jesper Dangaard Brouer<br>
  MSc.CS, Sr. Network Kernel Developer at Red Hat<br>
  Author of <a href="http://www.iptv-analyzer.org" target="_blank">http://www.iptv-analyzer.org</a><br>
  LinkedIn: <a href="http://www.linkedin.com/in/brouer" target="_blank">http://www.linkedin.com/in/brouer</a><br>
<br>
Reproducer commands:<br>
 tc qdisc add dev lo root handle 1: htb default 1<br>
 tc class add dev lo parent 1: classid 1:1 htb rate 100kbit<br>
 netserver<br>
 netperf -t TCP_STREAM -l 60 -H 127.0.0.1 -- -m 1024<br>
<br>
Measuring the qdisc "rate" via:<br>
 tc -s -d class show dev lo classid 1:1<br>
<br>
Data:<br>
=====<br>
>From dev "lo":<br>
--------------<br>
class htb 1:1 root prio 0 quantum 1250 rate 100000bit ceil 100000bit burst 1600b/1 mpu 0b overhead 0b cburst 1600b/1 mpu 0b overhead 0b level 0<br>
 Sent 597719 bytes 64 pkt (dropped 942, overlimits 0 requeues 0)<br>
 rate 100656bit 1pps backlog 0b 1p requeues 0<br>
 lended: 64 borrowed: 0 giants: 0<br>
 tokens: -27387576 ctokens: -27387576<br>
<br>
>From 1Gbit/s dev eth63:<br>
-----------------------<br>
class htb 1:1 root prio 0 quantum 1250 rate 100000bit ceil 100000bit burst 1600b/1 mpu 0b overhead 0b cburst 1600b/1 mpu 0b overhead 0b level 0<br>
 Sent 1801152 bytes 3224 pkt (dropped 0, overlimits 0 requeues 0)<br>
 rate 102016bit 9pps backlog 0b 12p requeues 0<br>
 lended: 2284 borrowed: 0 giants: 0<br>
 tokens: -18923820 ctokens: -18923820<br>
<br>
<br>
>From 10Gbit/s dev eth31:<br>
------------------------<br>
class htb 1:1 root prio 0 quantum 1250 rate 100000bit ceil 100000bit burst 1600b/1 mpu 0b overhead 0b cburst 1600b/1 mpu 0b overhead 0b level 0<br>
 Sent 855814 bytes 581 pkt (dropped 0, overlimits 0 requeues 0)<br>
 rate 103256bit 9pps backlog 0b 9p requeues 0<br>
 lended: 81 borrowed: 0 giants: 0<br>
 tokens: -45419150 ctokens: -45419150<br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>Dave Täht<br><br>Fixing bufferbloat with cerowrt: <a href="http://www.teklibre.com/cerowrt/subscribe.html" target="_blank">http://www.teklibre.com/cerowrt/subscribe.html</a>