2023-06-14 14:04:38

by James Clark

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

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.

Signed-off-by: James Clark <[email protected]>
---
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



2023-06-14 14:26:18

by James Clark

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



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.
>
> Would be interesting to add the Kconfig maintainer to see if they have
> an opinion, 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. Not
sure what the x86 version is or if anyone is actually doing cross x86
builds...

>> Signed-off-by: James Clark <[email protected]>
>> ---
>> 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
>>
>

2023-06-14 14:42:54

by Arnaldo Carvalho de Melo

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

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.

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

- Arnaldo

> Signed-off-by: James Clark <[email protected]>
> ---
> 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
>

--

- Arnaldo

2023-06-15 01:37:41

by Leo Yan

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

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 <[email protected]>
> >> ---
> >> 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
> >>
> >

2023-06-15 11:32:40

by Mark Brown

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

On Thu, Jun 15, 2023 at 09:26:39AM +0800, Leo Yan wrote:
> On Wed, Jun 14, 2023 at 03:19:12PM +0100, James Clark wrote:

> > >> 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.

Well, it'd be nice if the whole thing was a kselftest rather than it's
own thing, that'd avoid the need for custom setup to run the tests. But
while it's not a kselftest it's not clear to me that it's a good fit.


Attachments:
(No filename) (640.00 B)
signature.asc (499.00 B)
Download all attachments