Subject: Re: [take6 1/3] kevent: Core files.

From: Evgeniy Polyakov <[email-masked]>
Date: Fri, 11 Aug 2006 10:33:53 +0400

On Thu, Aug 10, 2006 at 11:25:05PM -0700, Ulrich Drepper ([email-masked]) wrote:
> Evgeniy Polyakov wrote:
> > The main disadvantage is that all memory is allocated on the start even
> > if it will not be used later. I think dynamic grow is appropriate
> > solution, since user will have that memory used anyway, since kevents
> > are allocated,
> 
> If you _allocate_ memory at startup you're doing something wrong.  All
> you should do is allocate address space.  Memory should be allocated
> when it is needed.
> 
> Growing a memory region is always hard because it means you cannot keep
> any addresses around and always have to reload a base pointer.  That's
> not ideal.
>
> Especially on 64-bit machines address space really is no limitation
> anymore.  So, allocate as much as needed, allocate memory when it's
> needed, and don't resize.

That requires mmap hacks to substitute pages in run-time without user
notifications. I do not expect it is a good solution, since on x86 it
requires full TLB flush (at least when I did it there were no exported
methods to flush separate addresses).

> -- 
> ➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
> 

-- 
	Evgeniy Polyakov