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