Re: [PATCH 1/1] network memory allocator.
From: Evgeniy Polyakov <hidden>
Date: 2006-08-14 11:46:36
Also in:
lkml, netdev
On Mon, Aug 14, 2006 at 01:40:21PM +0200, Andi Kleen (ak@suse.de) wrote:
Evgeniy Polyakov [off-list ref] writes:quoted
Design notes. Original idea was to store meta information used for allocation in an AVL tree [1], but since I found a way to use some "unused" fields in struct page, tree is unused in the allocator.But there seems to be still an AVL tree in there?
Yep. Tree structure can be used for simpler memory addon/removal from hotplug, but I have not that in mind. It will be removed soon.
quoted
Benchmarks with trivial epoll based web server showed noticeble (more than 40%) imrovements of the request rates (1600-1800 requests per second vs. more than 2300 ones). It can be described by more cache-friendly freeing algorithm, by tighter objects packing and thus reduced cache line ping-pongs, reduced lookups into higher-layer caches and so on.So what are its drawbacks compared to slab/kmalloc?
Hmm... Bigger per-page overhead (additional bitmask of free/used objects). More complex algorithm behind freeing.
Also if it really performs that much better it might be a good idea to replace all of kmalloc() with it, but doing that would require a lot more benchmarks with various workloads and small and big machines first.
First user can be MMU-less systems which suffer noticebly from fragmentations and power-of-two overhead.
-Andi
-- Evgeniy Polyakov -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>