After looking at WFQ (thanks to Max Laier for the reference!), and
reading a few papers on it, I've got the second version of my fairq
patch for ALTQ ready to go.
fetch http://apollo.backplane.com/DFlyMisc/fairq02.patch
This version removes the bitmap and the fixed array scan. It keeps
the fixed array of buckets but links the active buckets together into a
circular queue.
The 'hogs' option is now operational. This option allows a bucket to
drain in a burst (i.e. to not advance the round robin pointer) as long
as its bandwidth is less then the specified bandwidth.
My fair share scheduler is not yet weighted, but the new topology
makes it possible to implement a full blown fair share scheduler
(aka a weighted scheduler). I haven't decided whether I want to go
that far yet but in the mean I did implement a quick hack to
insert new empty low-bandwidth queues (bw < hogs bw) at the head of
the circular list instead of the tail (kind of a poor-man's deadline
mechanic but not really). I'm considering my options. The new
circular list gives me a lot of flexibility.
Here is an example configuration. Also note that your kernel must
be compiled with the various ALTQ options, including the new
ALTQ_FAIRQ option.
-Matt
ports="{ 22, 25 }"
altq on vke0 fairq bandwidth 500Kb queue { normal, bulk }
queue bulk priority 1 bandwidth 100Kb \
fairq(buckets 64, hogs 25Kb) qlimit 50
queue normal priority 2 bandwidth 400Kb \
fairq(buckets 64, hogs 25Kb, default) qlimit 50
pass out on vke0 inet proto tcp from any to any \
keep state queue normal
pass out on vke0 inet proto tcp from any to 216.240.41.28 port $ports \
keep state queue bulk
| Ryan Hope | reiser4 for 2.6.27-rc1 |
| Tim Tassonis | reiser4 for 2.6.27-rc1 |
| Rafael J. Wysocki | 2.6.26-rc9-git12: Reported regressions from 2.6.25 |
| hooanon05 | [PATCH 63/67] aufs mount helper |
git: | |
| Petko Manolov | git and binary files |
| Wink Saville | Resolving conflicts |
| Ken Pratt | pack operation is thrashing my server |
| Jeff King | Re: Use of tac in git-rebase--interactive |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Julien TOUCHE | setting up ssh tunnel/vpn |
| Ray Percival | Re: Real men don't attack straw men |
| Michael | Performance: OpenVPN vs IPsec |
| Pietro Cerutti | Re: [patch] enhance powerd(8) to handle max temperature |
| Søren Schmidt | Re: Patch RFC: Promise SATA300 TX4 hardware bug workaround. |
| Kris Kennaway | Re: Problems with FreeBSD 6.0 |
| Ceri Davies | Using any network interface whatsoever |
