[LARTC] [PATCH] HTB O(1) class lookup
Simon Lodal
simonl at parknet.dk
Thu Feb 1 06:18:48 CET 2007
This patch changes HTB's class storage from hash+lists to a two-level linear
array, so it can do constant time (O(1)) class lookup by classid. It improves
scalability for large number of classes.
Without the patch, ~14k htb classes can starve a Xeon-3.2 at only 15kpps,
using most of it's cycles traversing lists in htb_find(). The patch
eliminates this problem, and has a measurable impact even with a few hundred
classes.
Previously, scalability could be improved by increasing HTB_HSIZE, modify the
hash function, and recompile, but this patch works for everyone without
recompile and scales better too.
The patch is for 2.6.20-rc6, I have older ones for 2.6.18 and 2.6.19 if anyone
is interested.
Signed-off-by: Simon Lodal <simonl at parknet.dk>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: htb_O(1)_class_lookup.diff
Type: text/x-diff
Size: 11212 bytes
Desc: not available
Url : http://mailman.ds9a.nl/pipermail/lartc/attachments/20070201/475f8a30/htb_O1_class_lookup.bin
More information about the LARTC
mailing list