9a815ed696
- Keep a freelist of component buffer headers, defaulting to 8 headers per component (tunable with the CCDNBUF kernel compile option). - When allocating a component buffer, try to pull a header off the freelist first, falling back on MALLOC() if the freelist is empty. Use MALLOC() rather than malloc(), because it will attempt to short-cut the allocation before actually making a full-blown malloc() call. - Keep statistics on how many component buffer headers have been allocated and how many of those allocations have resulted in freelist misses. With these changes, I observed measurable decreases in system and wall clock time on operations on an 8G ccd, as well as a measurable drop in the time spent in ccdbuffer() (measured with kernel profiling). |
||
---|---|---|
.. | ||
ata | ||
dec | ||
eisa | ||
ic | ||
isa | ||
isapnp | ||
microcode/aic7xxx | ||
ofw | ||
pci | ||
rcons | ||
sbus | ||
scsipi | ||
sun | ||
tc | ||
audio_if.h | ||
audio.c | ||
audiovar.h | ||
ccd.c | ||
ccdvar.h | ||
cninit.c | ||
cons.c | ||
cons.h | ||
md.c | ||
md.h | ||
mulaw.c | ||
mulaw.h | ||
vnd.c | ||
vndioctl.h |