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.
|