On 2/22/22 12:55 AM, tan.shaopeng@fujitsu.com wrote:
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?
I tried this on Linux 5.17-rc4
thanks, -- Shuah