i thought this was interesting.  this is from a small, 1 package
system.  it gives a feel for the basic performance of the quick
list allocb under low load, which isn't too bad:

this is just after boot,

ivey# awk '$1=="allocb" {printf "%s\t%d\n", $0, int($4/$3)}' < /dev/swap
#quicklist sz   count   cycles  cycles/alloc
allocb 128:     8595    2043800 237
allocb 1520:    29      236908  8169
allocb 9000:    119     105680  888
allocb 16384:   7174    1923500 268
allocb 65536:   122     66280   543

and this is after pushing a bit of tcp:

ivey# awk '$1=="allocb" {printf "%s\t%d\n", $0, int($4/$3)}' < /dev/swap
allocb 128:     38084   7199704 189
allocb 1520:    56139   9075432 161
allocb 9000:    10127   2437248 240
allocb 16384:   7178    1927092 268
allocb 65536:   152     79528   523

it looks like the call to physalloc is pretty pricey, but keeping the quicklist
makes that irrelevant in the steady state.

as to counts bigger than 64k, this is not allowed.  allocb will just panic. 

- erik

Reply via email to