summaryrefslogtreecommitdiff
path: root/sys/dev/microcode
diff options
context:
space:
mode:
authoratatat <atatat@NetBSD.org>2002-10-18 13:18:42 +0000
committeratatat <atatat@NetBSD.org>2002-10-18 13:18:42 +0000
commit94ef8e079526268221d796363335cc757c7882a3 (patch)
tree63ccf852736b4de0e89c57f0975f1608eabbcbdf /sys/dev/microcode
parent8eb125554ba6aab75e986332908adc21c1f1ad05 (diff)
Add an implementation of forward merging of new map entries. Most new
allocations can be merged either forwards or backwards, meaning no new entries will be added to the list, and some can even be merged in both directions, resulting in a surplus entry. This code typically reduces the number of map entries in the kernel_map by an order of magnitude or more. It also makes possible recovery from the pathological case of "5000 processes created and then killed", which leaves behind a large number of map entries. The only forward merge case not covered is the instance of an amap that has to be extended backwards (WIP). Note that this only affects processes, not the kernel (the kernel doesn't use amaps), and that merge opportunities like this come up *very* rarely, if at all. Eg, after being up for eight days, I see only three failures in this regard, and even those are most likely due to programs I'm developing to exercise this case. Code reviewed by thorpej, matt, christos, mrg, chuq, chuck, perry, tls, and probably others. I'd like to thank my mother, the Hollywood Foreign Press...
Diffstat (limited to 'sys/dev/microcode')
0 files changed, 0 insertions, 0 deletions