Re: [take6 1/3] kevent: Core files.
From: Evgeniy Polyakov <hidden>
Date: 2006-08-11 06:34:41
Also in:
lkml
On Thu, Aug 10, 2006 at 11:25:05PM -0700, Ulrich Drepper (drepper@redhat.com) wrote:
Evgeniy Polyakov wrote:quoted
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