[PATCH] Add getcpu
H.J. Lu
hjl.tools@gmail.com
Wed Dec 5 18:14:00 GMT 2018
On Wed, Dec 5, 2018 at 9:41 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Wed, Dec 5, 2018 at 9:33 AM Carlos O'Donell <carlos@redhat.com> wrote:
> >
> > On 12/5/18 9:29 AM, H.J. Lu wrote:
> > > To optimize for multi-node NUMA system, I need a very fast way to identity which
> > > node the current process is running on. getcpu:
> > >
> > > NAME
> > > getcpu - determine CPU and NUMA node on which the calling thread is
> > > running
> > >
> > > SYNOPSIS
> > > #include <linux/getcpu.h>
> > >
> > > int getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache);
> > >
> > > Note: There is no glibc wrapper for this system call; see NOTES.
> > >
> > > DESCRIPTION
> > > The getcpu() system call identifies the processor and node on which the
> > > calling thread or process is currently running and writes them into the
> > > integers pointed to by the cpu and node arguments. The processor is a
> > > unique small integer identifying a CPU. The node is a unique small
> > > identifier identifying a NUMA node. When either cpu or node is NULL
> > > nothing is written to the respective pointer.
> > >
> > > returns such info. But syscall () is too slow. I'd like to add a wrapper to
> > > glibc. Any comments?
> >
> > I don't object to adding syscall wrappers, but your comment appears to indicate
> > that the glibc wrapper will be doing something more than just wrapping, what
> > do you have in mind?
>
> I am enclosing a patch to add getcpu. Testing on x86-64, x32 and i686
> are done. I am running build-many-glibcs.py as we speak.
build-many-glibcs.py passed. OK for trunk?
https://sourceware.org/ml/libc-alpha/2018-12/msg00161.html
--
H.J.
More information about the Libc-alpha
mailing list