Re: [PATCH 0/3] bitmap: convert self-test to KUnit
From: Tamir Duberstein
Date: Sat Feb 08 2025 - 13:42:49 EST
On Sat, Feb 8, 2025 at 12:53 PM Yury Norov <yury.norov@xxxxxxxxx> wrote:
>
> [...]
>
> Take over means that you'd at least add the Co-developed-by tag.
I didn't use their code - the thing being "taken over" is the work of
having these debates with the maintainers.
> [...]
>
> KUNIT is disabled in defconfig, at least on x86_64. It is also disabled
> on my Ubuntu 24.04 machine. If I take your patches, I'll be unable to
> boot-test bitmaps. Even worse, I'll be unable to build the standalone
> test from sources as a module and load it later.
>
> Or I misunderstand it, and there's a way to build some particular KUNIT
> test without enabling KUNIT in config and/or re-compiling the whole kernel?
> Please teach me, if so
>
> Unless you give me a way to build and run the test in true
> production environment, I'm not going with KUNITs. Sorry.
This is a question for David -- I don't know if this is possible.
> [...]
>
> This is my evidence: sometimes people report performance or whatever
> issues on their systems, suspecting bitmaps guilty. I ask them to run
> the bitmap or find_bit test to narrow the problem. Sometimes I need to
> test a hardware I have no access to, and I have to (kindly!) ask people
> to build a small test and run it. I don't want to ask them to rebuild
> the whole kernel, or even to build something else.
>
> https://lore.kernel.org/all/YuWk3titnOiQACzC@yury-laptop/
This is compelling evidence, and it was not previously raised. Thank you.
I notice that two things are true about the performance test part of
test_bitmap.c:
- It's a minority of the code in the file (48 lines out of 1462).
- There are no assertions in it.
Do you also find value in running the testing portion on other
people's machines, to which you don't have access?
> [...]
>
> Nice summary for the discussion. Unfortunately you missed my concerns.
> Which are:
>
> Pros:
> - Now we switch to KUNITs because KUNITs are so good
>
> Cons:
> - Wipes git history;
I was very careful to minimize churn, and the result is 249 lines on
which I'd now own the blame (228 with `-w`). Still, it's a valid con.
> - Bloats the test's source code;
The test is 74 lines shorter after this series.
> - Adds dependencies;
> - Doesn't run on most popular distros and defconfig;
Yep, I understand your concerns much better now - and I'm grateful for
your having taken the time to explain and show receipts. Still, I
wonder if we can get the best of both worlds - either by finding what
you need in KUnit, or by moving the testing bit to KUnit and keeping
the performance bit where it is.
Thanks.
Tamir