This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Use uname not sysctl to get the kernel revision


Ulrich Drepper <drepper@redhat.com> writes:

> Eric W. Biederman wrote:
>> Ulrich what would be interesting besides the possibility of having
>> multiple cpus?
>
> What is needed for various things like memory handling etc is all
> topology information.  Somebody might remember the numa library proposal
> I had in April 2004 which was cast aside because people were only
> looking for a "quick fix".  Well, the problem still isn't solved.
>
> IMO the vdso should export information about:
>
> - processors and their relationship (hyperthreads, cores)
>
> - the CPU caches and how they relate to the cores (e.g., dual core
>   with shared L2)
>
> - local main memory for each processor
>
> - relative costs of the memory access of the various memory regions
>   (for numa local memory to a node, intra-node costs)
>
> - ideally, relative costs main memory and CPU caches
>
>
> All this information can be steadily updated by the kernel as new
> CPUs/memory get added/removed.  The vdso should have functions to access
> this information.  It's easy enough to make this access race free.
>
> I guess I should try to come up with a representation for this
> knowledge.  Collecting the information (except the costs) should be
> easy.  Determining the costs also shouldn't be that hard but it can be
> very useful.  Some of this information could be determined at userlevel
> but you really don't want every process to compute all this from
> scratch.  And stored data in a file is stale if the system changes.

The history of Linux shows that auto-tuning while not always perfect
is much more effective than manual tuning.  How are you envisioning
using this information? 

I find it really easy to see how topology information can be used
to manually tune a system.  I don't currently see how it can be used
to automatically tune a system.

My fear is that we will end up making things brittle with user space
over specifying things.

I have another related concern about what rules need to be in place
so I can upgrade the kernel vdso while a user space program is running.
That make me seriously wonder how sane the vdso concept is, but that
is a completely different issue.


Eric


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]