Thread (49 messages) 49 messages, 11 authors, 2006-08-18

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>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help