2023-12-04 17:18:36

by Mark Rutland

[permalink] [raw]
Subject: [PATCH] kcov: remove stale RANDOMIZE_BASE text

The Kconfig help text for CONFIG_KCOV describes that recorded PC values
will not be stable across machines or reboots when RANDOMIZE_BASE is
selected. This was the case when KCOV was introduced in commit:

5c9a8750a6409c63 ("kernel: add kcov code coverage")

However, this changed in commit:

4983f0ab7ffaad1e ("kcov: make kcov work properly with KASLR enabled")

Since that commit KCOV always subtracts the KASLR offset from PC values,
which ensures that these are stable across machines and across reboots
even when RANDOMIZE_BASE is selected.

Unfortunately, that commit failed to update the Kconfig help text, which
still suggests disabling RANDOMIZE_BASE even though this is no longer
necessary.

Remove the stale Kconfig text.

Reported-by: Borislav Petkov <[email protected]>
Signed-off-by: Mark Rutland <[email protected]>
Cc: Alexander Popov <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Andrey Konovalov <[email protected]>
Cc: Dmitry Vyukov <[email protected]>
---
lib/Kconfig.debug | 4 ----
1 file changed, 4 deletions(-)

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index cc7d53d9dc019..e77873cf85c78 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -2103,10 +2103,6 @@ config KCOV
KCOV exposes kernel code coverage information in a form suitable
for coverage-guided fuzzing (randomized testing).

- If RANDOMIZE_BASE is enabled, PC values will not be stable across
- different machines and across reboots. If you need stable PC values,
- disable RANDOMIZE_BASE.
-
For more details, see Documentation/dev-tools/kcov.rst.

config KCOV_ENABLE_COMPARISONS
--
2.30.2


2023-12-04 17:59:20

by Dmitry Vyukov

[permalink] [raw]
Subject: Re: [PATCH] kcov: remove stale RANDOMIZE_BASE text

On Mon, 4 Dec 2023 at 18:18, Mark Rutland <[email protected]> wrote:
>
> The Kconfig help text for CONFIG_KCOV describes that recorded PC values
> will not be stable across machines or reboots when RANDOMIZE_BASE is
> selected. This was the case when KCOV was introduced in commit:
>
> 5c9a8750a6409c63 ("kernel: add kcov code coverage")
>
> However, this changed in commit:
>
> 4983f0ab7ffaad1e ("kcov: make kcov work properly with KASLR enabled")
>
> Since that commit KCOV always subtracts the KASLR offset from PC values,
> which ensures that these are stable across machines and across reboots
> even when RANDOMIZE_BASE is selected.
>
> Unfortunately, that commit failed to update the Kconfig help text, which
> still suggests disabling RANDOMIZE_BASE even though this is no longer
> necessary.
>
> Remove the stale Kconfig text.
>
> Reported-by: Borislav Petkov <[email protected]>
> Signed-off-by: Mark Rutland <[email protected]>
> Cc: Alexander Popov <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: Andrey Konovalov <[email protected]>
> Cc: Dmitry Vyukov <[email protected]>

Reviewed-by: Dmitry Vyukov <[email protected]>

Thanks for fixing this.

> ---
> lib/Kconfig.debug | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index cc7d53d9dc019..e77873cf85c78 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -2103,10 +2103,6 @@ config KCOV
> KCOV exposes kernel code coverage information in a form suitable
> for coverage-guided fuzzing (randomized testing).
>
> - If RANDOMIZE_BASE is enabled, PC values will not be stable across
> - different machines and across reboots. If you need stable PC values,
> - disable RANDOMIZE_BASE.
> -
> For more details, see Documentation/dev-tools/kcov.rst.
>
> config KCOV_ENABLE_COMPARISONS
> --
> 2.30.2
>