Subject: Re: [PATCH 0/2] Runtime configuration of HTB's HYSTERESIS option

From: Martin Devera <[email-masked]>
Date: Thu, 15 Jun 2006 11:49:27 +0200

Russell Stuart wrote:
> The HTB qdisc has a compile time option, HTB_HYSTERESIS, 
> that trades accuracy of traffic classification for CPU 
> time.  These patches change hysteresis to be a runtime 
> option under the control of "tc".
> 
> The effects of HYSTERESIS on HTB's accuracy are significant 
> (see chapter 7, section 7.3.1, pp 69-70 in Jesper Brouer's
> thesis: http://www.adsl-optimizer.dk/thesis/ ), whereas 
> HTB's CPU usage on modern machines using broadband links 
> is minimal.  Currently HYSTERESIS is on by default, and 
> requires a kernel re-compile to change.  Altering it to 
> be a runtime option will make life easier for the bulk of 
> its users.

At time of HTB implementation I needed to reach 100MBit speed on 
relatively slow box. The hysteresis was a way. On other side I used 
hand-made TSC based measure tool to compute exact (15%) performance 
gain. Today I'd measure it using oprofile.

When rethinking it again I'd suggest to re-measure real performance 
impact for both flat and deep class hierarchy and consider switching the 
hysteresis off by default (or even to remove the code if the gain is 
negligible). If it is the case then it is the cleanest solution IMHO.

On other side I see no problem with attached patches. Have you tested 
patched kernel with old "tc" tool ?

thanks for your effort,
Martin