RE: [PATCH v3 2/5] selftests/resctrl: Make resctrl_tests run using kselftest framework

tan.shaopeng
2022-02-22T07:56:48Z

Hi Khan,

> On 2/15/22 7:26 PM, Shaopeng Tan wrote:
> > In kselftest framework, all tests can be build/run at a time, and a
> > sub test also can be build/run individually. As follows:
> > $ make -C tools/testing/selftests run_tests $ make -C
> > tools/testing/selftests TARGETS=ptrace run_tests
> >
> > However, resctrl_tests cannot be run using kselftest framework, users
> > have to change directory to tools/testing/selftests/resctrl/, run
> > "make" to build executable file "resctrl_tests", and run "sudo
> > ./resctrl_tests" to execute the test.
> >
> > To build/run resctrl_tests using kselftest framework.
> > Modify tools/testing/selftests/Makefile and
> > tools/testing/selftests/resctrl/Makefile.
> >
> > Even after this change, users can still build/run resctrl_tests
> > without using framework as before.
> >
> > Signed-off-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>
> > ---
> > Some important feedbacks from v1&v2 are addressed as follows:
> >
> > - The changelog mentions that changes were made to the resctrl
> > selftest Makefile but it does not describe what the change accomplish
> > or why they are needed.
> > => By changing the Makefile, resctrl_tests can use kselftest
> > framework like other sub tests. I described this in changelog.
> >
> > - The changelog did not describe how a user may use the kselftest
> > framework to run the resctrl tests nor the requested information
> > on how existing workflows are impacted.
> > => I described how to build/run resctrl_tests with kselftest framework,
> > and described the existing workflows are not impacted that users can
> > build/run resctrl_tests without using kselftest framework as before.
> >
> > - tools/testing/selftests/resctrl/README should be updated.
> > => I separate the update of README to a new patch.[patch v3 3/5]
> >
> > - Why is the meaning of "EXTRA_SOURCES" (i.e. what is "extra"?) and
> > why is "SRCS" no longer sufficient?
> > => I referred to other Makefiles, and found "SRCS" is better
> > than "EXTRA_SOURCES". So, I updated it to use "SRCS".
> >
> > tools/testing/selftests/Makefile | 1 +
> > tools/testing/selftests/resctrl/Makefile | 20 ++++++--------------
> > 2 files changed, 7 insertions(+), 14 deletions(-)
> >
> > diff --git a/tools/testing/selftests/Makefile
> > b/tools/testing/selftests/Makefile
> > index c852eb40c4f7..7df397c6893c 100644
> > --- a/tools/testing/selftests/Makefile
> > +++ b/tools/testing/selftests/Makefile
> > @@ -51,6 +51,7 @@ TARGETS += proc
> > TARGETS += pstore
> > TARGETS += ptrace
> > TARGETS += openat2
> > +TARGETS += resctrl
> > TARGETS += rlimits
> > TARGETS += rseq
> > TARGETS += rtc
> > diff --git a/tools/testing/selftests/resctrl/Makefile
> > b/tools/testing/selftests/resctrl/Makefile
> > index 6bcee2ec91a9..de26638540ba 100644
> > --- a/tools/testing/selftests/resctrl/Makefile
> > +++ b/tools/testing/selftests/resctrl/Makefile
> > @@ -1,17 +1,9 @@
> > -CC = $(CROSS_COMPILE)gcc
> > -CFLAGS = -g -Wall -O2 -D_FORTIFY_SOURCE=2 -SRCS=$(wildcard *.c)
> > -OBJS=$(SRCS:.c=.o)
> > +CFLAGS += -g -Wall -O2 -D_FORTIFY_SOURCE=2
> >
> > -all: resctrl_tests
> > +TEST_GEN_PROGS := resctrl_tests
> > +SRCS := $(wildcard *.c)
> >
> > -$(OBJS): $(SRCS)
> > - $(CC) $(CFLAGS) -c $(SRCS)
> > +all: $(TEST_GEN_PROGS)
> >
> > -resctrl_tests: $(OBJS)
> > - $(CC) $(CFLAGS) -o $@ $^
> > -
> > -.PHONY: clean
> > -
> > -clean:
> > - $(RM) $(OBJS) resctrl_tests
> > +$(TEST_GEN_PROGS): $(SRCS)
>
> This patch breaks the test build - the below use-cases fail
>
> make kselftest-all TARGETS=resctrl
> make -C tools/testing/selftests/ TARGETS=resctrl
>
> Also a simple make in tools/testing/selftests/resctr

Thanks for your feedbacks.
I applied these patches to the source below and built
resctrl_tests successfully using above use-cases on x86/arm machine.
(1)
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Tag: v5.16
(2)
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Tag: next-20220217

Could you tell me which kernel source you used to build
and what error message you got?

Best regards,
Tan Shaopeng