From: Andy Furniss <andy.furniss@dsl.pipex.com>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] patch: HTB update for ADSL users
Date: Sat, 19 Jun 2004 00:33:08 +0000 [thread overview]
Message-ID: <40D389C4.6030305@dsl.pipex.com> (raw)
In-Reply-To: <40D2D5CB.2000804@wildgooses.com>
Ed Wildgoose wrote:
>
>> After a bit of messing about -
>> Patch would't apply and I couldn't see why. Then did it by hand and
>> had to move vars to top of function to get it to compile.
>
>
>
> Hmm, perhaps it got corrupted because of the change in line endings when
> I pasted it in on a windows machine? Piece of cake to apply manually.
> If I can get some PPoE settings then I will make a more generic patch
> and stick it on a website.
>
> Can you paste the compile errors and tell me versions of gcc please? I
> can't see any probs with that code though? (They will be params passed
> in later anyway)
GCC 2.95.3 - Moved the var declarations back after the
while ((mtu>>cell_log) > 255)
cell_log++;
}
and again get -
tc_core.c: In function `tc_calc_rtable':
tc_core.c:65: parse error before `int'
tc_core.c:77: `proto_overhead' undeclared (first use in this function)
tc_core.c:77: (Each undeclared identifier is reported only once
tc_core.c:77: for each function it appears in.)
tc_core.c:78: `encaps_data_sz' undeclared (first use in this function)
tc_core.c:78: `encaps_cell_sz' undeclared (first use in this function)
make[1]: *** [tc_core.o] Error 1
Works if I move them to the top of the function - maybe the formatting
is messed up (I copy n pasted).
>
>> I set my uprate to 280kbit in TC = 286720 bit/s I am synced at 288000
>> - as you probably are, in UK, on what BT call 250/500 and isps call
>> 256/512. I left a bit of slack just to let buffer empty if the odd
>> packet extra slips through. FWIW maxing downlink (576000 for me) will
>> probably mess up - you need to be slower or you don't get to build up
>> queues and will often be using your isp's buffer.
>>
>> I've been maxing uplink with bt for the last couple of hours and it's
>> working fine -
>
>
>
> Yes, excellent isn't it! I tested download rates (bearing in mind the
> difficulty of controlling those, and could get within a sliver of full
> bandwidth before the rate rises!
I still think that you need to throttle back on down rates - when really
full you may find that new/bursty connections mean that you loose
control of the queue. Of course having twice as much bandwidth always
helps.
>
> I see a two stage rise in ping times. First it stays on 30ms, then it
> rises to 60ms-90ms, then it queues like crazy. Interesting the kind of
> three step ramp up. I have a hunch that packets don't arrive smoothly
> and queuing occurs at the ISP end (once we get near the limit) even
> though the average rate is below the max rate...? (ie from time to time
> you start to see two packets ahead of you instead of just one)
I am only testing uploads - looking at some more pings, it does appear
that they are not quite as random as they were - but apart from the odd
double dequeue (in a way I think you can expect this with HTB using
quanta/DRR rather than per byte), the max is right. I suspect this is
nothing to do with ISP/Teleco end. I could actually do slightly better
on my latency, but I am running at 100Hz - and I can tell with pings -
they slowly rise then snap down by 10ms. This is nothing to do with TC,
I normally run 500 but forgot to set it for this kernel.
>
>> 100 packets transmitted, 100 packets received, 0% packet loss
>> round-trip min/avg/max/stddev = 15.586/44.518/67.984/13.367 ms
>>
>> It's just as it should be for my MTU.
>
>
>
> Hmm, what's your MTU? Those numbers look extremely low for 1500 byte
> packets (at least if you have a little downlink congestion as well?)
>
My downlink is clear, I am using 1478 MTU (so I don't waste half a cell
per packet). Just did another hundred to my first hop -
100 packets transmitted, 100 packets received, 0% packet loss
round-trip min/avg/max/stddev = 16.661/43.673/70.841/14.634 ms
>>When I get some time later I'll start hitting it with lots of small
>> packets aswell.
Been going for 7 hours now - I started a couple of games and 60 small
pps didn't cause any problems.
>
>
>
> I have a 1meg downstream with 256 upstream, and I turned on bittorrent
> to try and flog the connection a bit. Upstream was maxed out, but
> downstream was only half full. However, ping times are 20-110. I think
> they ought to be only 20-80 ish, and I'm trying to work out why there is
> some excess queuing (1500 ish mtu).
I worked out once bitrate latency is about 44ms for 1478. Your figures
look like you may be sending packets in pairs - or have you already done
the tweak which fixed this for me.
set HTB_HYSTERESIS 0 in net/sched/sch_htb.c
My QOS is based on the the
> (excellent) script from:
> http://digriz.org.uk/jdg-qos-script/
Yea it's nice - mine is a modified version.
>
> Basically, HTB in both directions. RED on the incoming stream (works
> nicely). Outgoing classifies into 10 buckets, and ACK + ping are
> definitely going out ok in the top prio bucket, and the rest is going
> out in the prio 10 bucket.... But still these high pings... Hmm
>
I did find in the worst case I could do better than RED (not much
though) and now I do per IP for bulk so Its harder to get the right
settings with more than one RED, that may have different bandwidths at
any given time. I also reduced the number of classes so each could have
a higher rate.
Andy.
>
> I would be interested to hear if anyone has a CBQ based setup and can
> tell me if that patch works for them? Or even whether it works on the
> incoming policer properly?
>
> It looks as though this is an adequate way to tackle the problem. The
> alternative would be to hook into the enqueue side of the qdisk,
> calculate a new size value then and fix the code to refer to this value
> from then on. It would be quite invasive though because it modifies
> kernel headers. I would need someone who understands the scheduler in
> more detail to guide me as to whether it was neccessary
>
> Ed W
>
>
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
next prev parent reply other threads:[~2004-06-19 0:33 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-18 11:45 [LARTC] patch: HTB update for ADSL users Ed Wildgoose
2004-06-18 21:43 ` Andy Furniss
2004-06-18 23:00 ` Ed Wildgoose
2004-06-19 0:33 ` Andy Furniss [this message]
2004-06-19 12:29 ` Ed Wildgoose
2004-06-19 12:54 ` syrius.ml
2004-06-19 13:40 ` Ed Wildgoose
2004-06-20 7:27 ` Jason Boxman
2004-06-20 12:31 ` Andy Furniss
2004-06-20 13:16 ` Ed Wildgoose
2004-06-20 16:46 ` Ed Wildgoose
2004-06-20 17:10 ` Ed Wildgoose
2004-06-21 6:08 ` Jason Boxman
2004-06-21 10:04 ` Ed Wildgoose
2004-06-22 0:38 ` Damion de Soto
2004-06-22 5:15 ` Jason Boxman
2004-06-22 9:54 ` Ed Wildgoose
2004-06-22 10:00 ` Ed Wildgoose
2004-06-22 17:16 ` Jason Boxman
2004-06-22 21:52 ` Jason Boxman
2004-06-23 12:52 ` ThE LinuX_KiD
2004-06-23 14:00 ` Ed Wildgoose
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40D389C4.6030305@dsl.pipex.com \
--to=andy.furniss@dsl.pipex.com \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox