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

Evgeniy Polyakov
2006-08-11T06:34:41Z

On Thu, Aug 10, 2006 at 11:25:05PM -0700, Ulrich Drepper (drepper@redhat.com) 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