fast vm_area_struct allocator patch

Gordon Oliver (gordo@lazos.cl)
Sat, 11 Jan 1997 23:09:27 -0300 (CDT)


Hi all,

This is a patch to replace calls to kmalloc/kfree with a special
purpose allocator for vm_area_struct. WARNING: this is a patch
against kernel 2.0.0!!!! If you patch a newer kernel (esp. 2.1.x)
you should look for files that use vm_area_struct and _either_
kmalloc or kfree and visually inspect all calls to kmalloc or
kfree such that they do _not_ allocate or free vm_area_struct.
(if there are differences someone could post them here... )

I could not measure any blazing difference in speed on my system
(pentium 166MHz/32MB ram). (it improved a short fork test by some
fraction of a percent, bigger programs will probably do better).

It provides a small savings in memory ~ 8 bytes per structure
(56.888... vs 65.01... from dividing the size of page by number
per page). The paths for allocation are all shorter than for kmalloc
(not having to find the order or pick the appropriate free list gives
an automatic win).
-gordo
------------------------
begin 644 vma_alloc.patch.gz
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
'[4L7]D```!&O
`
end