small patch for numactl. Comments?

Larry McVoy lm at mcvoy.com
Tue Nov 14 14:06:56 UTC 2017


Hi Conrad,

Nice idea but pretty awkward compared to checking an env var.
I'd have to #ifdef up the code for numa (the benchmark in question
is portable to all the active Unix based systems and a lot of dead
ones).  

Is it not a thing on FreeBSD to use the environment to pass state
like this?

--lm

On Mon, Nov 13, 2017 at 08:28:57PM -0800, Conrad Meyer wrote:
> Hi Larry,
> 
> What if instead, the benchmark checked its own NUMA parameters?  If a
> NUMA policy is not set, the benchmark can bail out with an
> admonishment.
> 
> Best,
> Conrad
> 
> 
> On Mon, Nov 13, 2017 at 6:01 PM, Larry McVoy <lm at mcvoy.com> wrote:
> > Hi folks, some CDN people are dragging me out of retirement to work
> > on FreeBSD.  Which I have to say is sort of fun since I started my
> > kernel hacking on SunOS 4.x which was a very very nice version of
> > BSD.  But FreeBSD has mostly caught up, so it's pleasant.
> >
> > I'm wacking LMbench to be numa aware and this patch would help me make
> > sure that when you are a numa machine you could insist that people
> > run the benchmark via numactl (imma gonna blog about numa, it sucks
> > unless you are numa aware).
> >
> > I did some docs but I'm new to the FreeBSD man macros, would love
> > feedback on how to do that right.
> >
> > --- numactl.1   2017-11-13 17:51:26.243473000 -0800
> > +++ numactl.1.lm        2017-11-13 17:51:20.494596000 -0800
> > @@ -107,6 +107,15 @@
> >  .El
> >  .Sh EXIT STATUS
> >  .Ex -std
> > +.Sh ENVIRONMENT
> > +.Nm
> > +sets the environment variable
> > +\fINUMACTL=YES\fP
> > +before running
> > +.Ar cmd ...
> > +so that programs that know that they need to be run under
> > +.Nm
> > +can check.
> >  .Sh EXAMPLES
> >  Create a
> >  .Pa /bin/sh
> > --- numactl.c   2017-11-13 16:18:36.134359000 -0800
> > +++ numactl.c.lm        2017-11-13 16:18:28.530953000 -0800
> > @@ -231,6 +231,7 @@
> >                         (void) set_numa_domain_cpuaffinity(cpu_domain,
> >                             CPU_WHICH_PID, -1);
> >
> > +               putenv("NUMACTL=YES");
> >                 errno = 0;
> >                 execvp(*argv, argv);
> >                 err(errno == ENOENT ? 127 : 126, "%s", *argv);
> > _______________________________________________
> > freebsd-arch at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-arch
> > To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"

-- 
---
Larry McVoy            	     lm at mcvoy.com             http://www.mcvoy.com/lm 


More information about the freebsd-arch mailing list