Re: [RFC PATCH] perf tools: Add a place to put kernel config fragments for test runs

From: Leo Yan
Date: Wed Jun 14 2023 - 21:27:01 EST


On Wed, Jun 14, 2023 at 03:19:12PM +0100, James Clark wrote:
> On 14/06/2023 15:13, Arnaldo Carvalho de Melo wrote:
> > Em Wed, Jun 14, 2023 at 03:02:19PM +0100, James Clark escreveu:
> >> We are currently keeping something like this in our CI because defconfig
> >> doesn't give full coverage. It's not complete yet, but is a starting
> >> point as a place to add to when a specific test needs something extra to
> >> run.
> >>
> >> The RFC is for discussion on folder placement and file naming etc.

I am wandering if we can put these configurations into kselftest (the
folder tools/testing/selftests/). You could see now kernel build has
already provided option to merge kernel configurations for kselftests.

> > Would be interesting to add the Kconfig maintainer to see if they have
> > an opinion, Masahiro?

Yeah, looking forward suggestions from Masahiro.

> > - Arnaldo
> >
>
> One concern I have is that uname -m gives a different result to the
> ARCH= option for a kernel build (ARCH=arm64). Probably the build time
> version is more useful to us so maybe that should be the file name.

If we want to fit into kernel's build system, I'd like to use "arm64"
rather than "aarch64" as the folder name.

Seems to me, it is a legacy issue for using "arm64" as ARCH variable in
Makefile, given we cannot change this, then the folder name 'arm64' would
be easier for us to extend kernel's Makefile for building kernel of perf
testing?

> Not sure what the x86 version is or if anyone is actually doing cross x86
> builds...

I don't understand this question and not sure if you are asking cross
builds for kernel or perf. Maybe a good reference for arch naming is
the file scripts/subarch.include.

Thanks,
Leo

> >> Signed-off-by: James Clark <james.clark@xxxxxxx>
> >> ---
> >> tools/perf/tests/config-fragments/README | 7 +++++++
> >> tools/perf/tests/config-fragments/aarch64 | 1 +
> >> tools/perf/tests/config-fragments/config | 11 +++++++++++
> >> 3 files changed, 19 insertions(+)
> >> create mode 100644 tools/perf/tests/config-fragments/README
> >> create mode 100644 tools/perf/tests/config-fragments/aarch64
> >> create mode 100644 tools/perf/tests/config-fragments/config
> >>
> >> diff --git a/tools/perf/tests/config-fragments/README b/tools/perf/tests/config-fragments/README
> >> new file mode 100644
> >> index 000000000000..e816cfb1b96d
> >> --- /dev/null
> >> +++ b/tools/perf/tests/config-fragments/README
> >> @@ -0,0 +1,7 @@
> >> +This folder is for kernel config fragments that can be merged with
> >> +defconfig to give full test coverage of a perf test run. This is only
> >> +an optimistic set as some features require hardware support in order to
> >> +pass and not skip.
> >> +
> >> +'config' is shared across all platforms, and for arch specific files,
> >> +the file name should match that returned by 'uname -m'.
> >> diff --git a/tools/perf/tests/config-fragments/aarch64 b/tools/perf/tests/config-fragments/aarch64
> >> new file mode 100644
> >> index 000000000000..64c4ab17cd58
> >> --- /dev/null
> >> +++ b/tools/perf/tests/config-fragments/aarch64
> >> @@ -0,0 +1 @@
> >> +CONFIG_CORESIGHT_SOURCE_ETM4X=y
> >> diff --git a/tools/perf/tests/config-fragments/config b/tools/perf/tests/config-fragments/config
> >> new file mode 100644
> >> index 000000000000..c340b3195fca
> >> --- /dev/null
> >> +++ b/tools/perf/tests/config-fragments/config
> >> @@ -0,0 +1,11 @@
> >> +CONFIG_TRACEPOINTS=y
> >> +CONFIG_STACKTRACE=y
> >> +CONFIG_NOP_TRACER=y
> >> +CONFIG_RING_BUFFER=y
> >> +CONFIG_EVENT_TRACING=y
> >> +CONFIG_CONTEXT_SWITCH_TRACER=y
> >> +CONFIG_TRACING=y
> >> +CONFIG_GENERIC_TRACER=y
> >> +CONFIG_FTRACE=y
> >> +CONFIG_FTRACE_SYSCALLS=y
> >> +CONFIG_BRANCH_PROFILE_NONE=y
> >> --
> >> 2.34.1
> >>
> >