> > > d) within tools/testing/selftests/mm:
> > >
> > > make clean
> > > make -j100
> > >
> > > compiles 3-4 things then ends.
> > >
> > > A subsequent `make -j1' compiles nothing.
> >
> > Sorry, I wan't able to reproduce it.
> > Did you mean -j100 only build few source file but not the whole?
>
> Yes.
>
> On my 128 core machine everything up to -j50 works. -j51 and higher do
> this.
Could it be caused by line#262 of selftests/mm/Makefile:
local_config.mk local_config.h: check_config.sh
CC="$(CC)" CFLAGS="$(CFLAGS)" ./check_config.sh
check_config.sh generates two files: local_config.mk and local_config.h.
Makefile lets parallel make -j100 hit a timing race around that shared
generation step. local_config.mk is also included, so if it’s being
regenerated at the wrong moment, make may parse incomplete state and
build only part of targets.
Try this patch on your 128 core system:
--- a/tools/testing/selftests/mm/Makefile
+++ b/tools/testing/selftests/mm/Makefile
@@ -259,10 +259,13 @@ $(OUTPUT)/migration: LDLIBS += -lnuma
$(OUTPUT)/rmap: LDLIBS += -lnuma
-local_config.mk local_config.h: check_config.sh
+local_config.stamp: check_config.sh
CC="$(CC)" CFLAGS="$(CFLAGS)" ./check_config.sh
-EXTRA_CLEAN += local_config.mk local_config.h
+local_config.mk local_config.h: local_config.stamp
+
+EXTRA_CLEAN += local_config.mk local_config.h local_config.stamp
ifeq ($(IOURING_EXTRA_LIBS),)
all: warn_missing_liburing
--
Regards,
Li Wang