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] Add getcpu


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.


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