http://osdir.com/ml/linux.kernel.mm/2003-12/msg00021.html


I and a colleague were making tests in Non-Contiguous Memory Allocator. We
implemented VGNCA, a non-contiguous memory allocator improvement.

In the current non-contiguous memory allocator, each physical page is
allocated by time, through alloc_page() function call. However, each one of
this calls has an associated overhead with enable/disable interrupts.

In VGNCA, the main idea is enable/disable interrupts only one time, reducing
this overhead. Also, VGNCA allocation/deallocation functions are a little
more simple, because elimination of unnecessary test conditions in size
allocation.

Our patch is intended to be a test to check if this could bring enough
benefits to deserve a more careful implementation. We also included some code
to benchmark allocations and deallocations, using the RDTSC instruction.

We are sending:
- Patch against 2.6.0-test11 with these modifications.
- Graphics with performance tests:
--- small-allocations.eps/small-frees.eps --> 1-128 kB
--- large-allocations.eps/large-frees.eps --> 1-64 MB

LMB, Ruthiano.

Attachment: vgnca-test11.patch
Description: Text Data

Attachment: large-frees.eps
Description: image/eps

Attachment: large-allocations.eps
Description: image/eps

Attachment: small-allocations.eps
Description: image/eps

Attachment: small-frees.eps
Description: image/eps


Reply via email to