[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAHh=Yk_5iWUe_5j8TG8aAa0oK+3Rwq5xOKDdsMXCpwjpE-c5YQ@mail.gmail.com>
Date: Mon, 9 Feb 2026 10:33:25 +0800
From: Nylon Chen <nylon.chen@...ive.com>
To: Thomas Gleixner <tglx@...nel.org>
Cc: Ingo Molnar <mingo@...hat.com>, Peter Zijlstra <peterz@...radead.org>,
Darren Hart <dvhart@...radead.org>, Davidlohr Bueso <dave@...olabs.net>,
André Almeida <andrealmeid@...lia.com>,
Shuah Khan <shuah@...nel.org>, linux-kernel@...r.kernel.org,
linux-kselftest@...r.kernel.org, Zong Li <zong.li@...ive.com>
Subject: Re: [PATCH] selftests/futex: skip futex_numa_mpol without libnuma
Hi Thomas,
Thomas Gleixner <tglx@...nel.org> 於 2026年2月4日週三 上午5:35寫道:
>
> On Wed, Jan 28 2026 at 22:32, Nylon Chen wrote:
>
> > Use pkg-config --exists numa to derive HAVE_LIBNUMA.
> > Only keep futex_numa_mpol in TEST_GEN_PROGS when libnuma is present.
> >
> > Signed-off-by: Zong Li <zong.li@...ive.com>
> > Signed-off-by: Nylon Chen <nylon.chen@...ive.com>
> > ---
> > tools/testing/selftests/futex/functional/Makefile | 9 ++++++++-
> > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile
> > index af7ec309ea78..ec3c39a51182 100644
> > --- a/tools/testing/selftests/futex/functional/Makefile
> > +++ b/tools/testing/selftests/futex/functional/Makefile
> > @@ -1,10 +1,10 @@
> > # SPDX-License-Identifier: GPL-2.0
> > PKG_CONFIG ?= pkg-config
> > +HAVE_LIBNUMA := $(shell sh -c "$(PKG_CONFIG) --exists numa > /dev/null 2>&1 && echo y")
> > LIBNUMA_TEST = $(shell sh -c "$(PKG_CONFIG) numa --atleast-version 2.0.16 > /dev/null 2>&1 && echo SUFFICIENT || echo NO")
>
> Why another test? LIBNUMA_TEST fails when it does not exist or when the
> version number is not enough.
You're right, LIBNUMA_TEST already covers the existence check. I'll
remove the redundant HAVE_LIBNUMA variable.
>
> > INCLUDES := -I../include -I../../ $(KHDR_INCLUDES)
> > CFLAGS := $(CFLAGS) -g -O2 -Wall -pthread -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 $(INCLUDES) $(KHDR_INCLUDES) -DLIBNUMA_VER_$(LIBNUMA_TEST)=1
> > -LDLIBS := -lpthread -lrt -lnuma
> >
> > LOCAL_HDRS := \
> > ../include/futextest.h \
> > @@ -27,6 +27,13 @@ TEST_GEN_PROGS := \
> >
> > TEST_PROGS := run.sh
> >
> > +ifeq ($(HAVE_LIBNUMA),y)
> > +LDLIBS := -lpthread -lrt -lnuma
> > +else
> > +LDLIBS := -lpthread -lrt
> > +TEST_GEN_PROGS := $(filter-out futex_numa_mpol,$(TEST_GEN_PROGS))
>
> Why? The test contains more than just the libnuma dependend stuff. There
> are two issues here:
>
> One is -lnuma, which is trivial to solve:
>
> LDLIBS := -lpthread -lrt
> ifeq ($(LIBNUMA_TEST),SUFFICIENT)
> LDLIBS += -lnuma
> endif
>
> The other is the include <numa*.h> in the source. I assume you can
> figure out how to prevent those headers from being included, right?
>
Thank you for the feedback. I'll update the patch to:
1. Use LIBNUMA_TEST instead of adding a new HAVE_LIBNUMA variable
2. Keep futex_numa_mpol in TEST_GEN_PROGS
3. Conditionally add -lnuma based on LIBNUMA_TEST
4. Use #ifdef LIBNUMA_VER_SUFFICIENT to guard the numa header includes
and related code in the source file
I'll send a v2 shortly.
Thanks,
Nylon
> Thanks,
>
> tglx
Powered by blists - more mailing lists