2021-08-25 11:27:23

by Marco Elver

[permalink] [raw]
Subject: [PATCH] kfence: test: fail fast if disabled at boot

Fail kfence_test fast if KFENCE was disabled at boot, instead of each
test case trying several seconds to allocate from KFENCE and failing.
KUnit will fail all test cases if kunit_suite::init returns an error.

Even if KFENCE was disabled, we still want the test to fail, so that CI
systems that parse KUnit output will alert on KFENCE being disabled
(accidentally or otherwise).

Reported-by: Kefeng Wang <[email protected]>
Signed-off-by: Marco Elver <[email protected]>
---
mm/kfence/kfence_test.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c
index eb6307c199ea..f1690cf54199 100644
--- a/mm/kfence/kfence_test.c
+++ b/mm/kfence/kfence_test.c
@@ -800,6 +800,9 @@ static int test_init(struct kunit *test)
unsigned long flags;
int i;

+ if (!__kfence_pool)
+ return -EINVAL;
+
spin_lock_irqsave(&observed.lock, flags);
for (i = 0; i < ARRAY_SIZE(observed.lines); i++)
observed.lines[i][0] = '\0';
--
2.33.0.rc2.250.ged5fa647cd-goog


2021-08-25 11:28:44

by Alexander Potapenko

[permalink] [raw]
Subject: Re: [PATCH] kfence: test: fail fast if disabled at boot

On Wed, Aug 25, 2021 at 12:55 PM Marco Elver <[email protected]> wrote:
>
> Fail kfence_test fast if KFENCE was disabled at boot, instead of each
> test case trying several seconds to allocate from KFENCE and failing.
> KUnit will fail all test cases if kunit_suite::init returns an error.
>
> Even if KFENCE was disabled, we still want the test to fail, so that CI
> systems that parse KUnit output will alert on KFENCE being disabled
> (accidentally or otherwise).
>
> Reported-by: Kefeng Wang <[email protected]>
> Signed-off-by: Marco Elver <[email protected]>
Acked-by: Alexander Potapenko <[email protected]>


> ---
> mm/kfence/kfence_test.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c
> index eb6307c199ea..f1690cf54199 100644
> --- a/mm/kfence/kfence_test.c
> +++ b/mm/kfence/kfence_test.c
> @@ -800,6 +800,9 @@ static int test_init(struct kunit *test)
> unsigned long flags;
> int i;
>
> + if (!__kfence_pool)
> + return -EINVAL;
> +
> spin_lock_irqsave(&observed.lock, flags);
> for (i = 0; i < ARRAY_SIZE(observed.lines); i++)
> observed.lines[i][0] = '\0';
> --
> 2.33.0.rc2.250.ged5fa647cd-goog
>


--
Alexander Potapenko
Software Engineer

Google Germany GmbH
Erika-Mann-Straße, 33
80636 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

2021-08-26 04:27:39

by Kefeng Wang

[permalink] [raw]
Subject: Re: [PATCH] kfence: test: fail fast if disabled at boot


On 2021/8/25 18:55, Marco Elver wrote:
> Fail kfence_test fast if KFENCE was disabled at boot, instead of each
> test case trying several seconds to allocate from KFENCE and failing.
> KUnit will fail all test cases if kunit_suite::init returns an error.
>
> Even if KFENCE was disabled, we still want the test to fail, so that CI
> systems that parse KUnit output will alert on KFENCE being disabled
> (accidentally or otherwise).
>
> Reported-by: Kefeng Wang <[email protected]>
> Signed-off-by: Marco Elver <[email protected]>

Finally find this, it's better, and tested, thanks