[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