Re: [PATCH 0/2] clk: kunit: Fix the lockdep warnings

From: Stephen Boyd
Date: Wed Aug 09 2023 - 19:21:56 EST


+kunit-dev

Quoting Maxime Ripard (2023-07-21 00:09:31)
> Hi,
>
> Here's a small series to address the lockdep warning we have when
> running the clk kunit tests with lockdep enabled.
>
> For the record, it can be tested with:
>
> $ ./tools/testing/kunit/kunit.py run \
> --kunitconfig=drivers/clk \
> --cross_compile aarch64-linux-gnu- --arch arm64 \
> --kconfig_add CONFIG_DEBUG_KERNEL=y \
> --kconfig_add CONFIG_PROVE_LOCKING=y
>
> Let me know what you think,

Thanks for doing this. I want to roll these helpers into the clk_kunit.c
file that I had created for some other clk tests[1]. That's mostly
because clk.c is already super long and adding kunit code there makes
that problem worse. I'll try to take that patch out of the rest of the
series and then add this series on top and resend.

I don't know what to do about the case where CONFIG_KUNIT=m though. We
have to export clk_prepare_lock/unlock()? I really don't want to do that
even if kunit is enabled (see EXPORT_SYMBOL_IF_KUNIT). Maybe if there
was a GPL version of that, so proprietary modules can't get at kernel
internals on kunit enabled kernels.

But I also like the approach taken here of adding a small stub around
the call to make sure a test is running. Maybe I'll make a kunit
namespaced exported gpl symbol that bails if a test isn't running and
calls the clk_prepare_lock/unlock functions inside clk.c and then move
the rest of the code to clk_kunit.c to get something more strict.

[1] https://lore.kernel.org/all/20230327222159.3509818-9-sboyd@xxxxxxxxxx/