Re: FOR REVIEW: New x86-64 vsyscall vgetcpu()

Andi Kleen
2006-06-16T07:37:29Z

On Friday 16 June 2006 09:23, Gerd Hoffmann wrote:
> Andi Kleen wrote:
> >> Alternatively it means that this will almost always do the right thing, but
> >> once in a while it won't, your application will happen to have been migrated
> >> to a different cpu/node at the point it makes the call, and from then on
> >> this instance will behave oddly (running slowly because it allocates most
> >> of its memory on the wrong node). When you try to reproduce the problem,
> >> the application will work normally.
> >
> > That's inherent in NUMA. No good way around that.
>
> Hmm, maybe it makes sense to allow binding memory areas to threads
> instead of nodes. That way the kernel may attempt to migrate the pages
> to another node in case it migrates threads / processes. Either via
> mbind(), or maybe better via madvise() to make clear it's a hint only.

I haven't tried that but I have talked to others who tried to implement
automatic page migration and they say they couldn't make that work (or rather
make it a win) either.

-Andi