Re: [PATCH v8 8/8] clk: Add KUnit tests for clks registered with struct clk_parent_data
From: Stephen Boyd
Date: Thu Oct 03 2024 - 20:43:08 EST
Quoting Guenter Roeck (2024-10-03 17:25:37)
> On 10/3/24 16:46, Stephen Boyd wrote:
> [ ... ]
> > That DT test has been there for a few releases. Is this the first time
> > those tests have been run on arm64+acpi? I didn't try after sending the
> > patches and forgot that the patch was dropped.
> >
>
> Previously I had the affected tests disabled and never tracked down the problem.
> Since the problem is now spreading to additional tests, I finally tracked it down,
> that is all.
Ok great. Good to know this isn't a new problem. Thanks for tracking it
down.
>
> > How are you running kunit tests? I installed the qemu-efi-aarch64 debian
> > package to get QEMU_EFI.fd but passing that to the kunit.py run command
> > with --qemu_args="-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd" didn't
> > get me beyond the point that the EFI stub boots linux. I think the
> > serial console must not be working and thus the kunit wrapper waits for
> > something to show up but nothing ever does. I haven't dug any further
> > though, so maybe you have a working command.
> >
>
> I run all tests during boot, not from the command line. I also use the -bios
> command but don't recall any issues with the console. I specify the
> console on the qemu command line; depending on the qemu machine it is either
> ttyS0 or ttyAMA0. The init script then finds and selects the active console.
Can you please describe how you run the kunit test? And provide the qemu
command you run to boot arm64 with acpi?
>
> > Here's my command that isn't working:
> >
> > ./tools/testing/kunit/kunit.py run --arch=arm64 --kunitconfig=drivers/of --qemu_args="-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd"
> >
>
> I can't really see what that command is actually doing ;-).
It eventually runs this qemu command
qemu-system-aarch64 -nodefaults -m 1024 -kernel .kunit/arch/arm64/boot/Image.gz -append 'kunit.enable=1 console=ttyAMA0 kunit_shutdown=reboot' -no-reboot -nographic -serial stdio -machine virt -cpu max,pauth-impdef=on -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd
I see that it fails because the architected timer isn't there after I
add an earlycon=pl011,0x9000000 to the kernel commandline. I suspect
passing a bios like this is incorrect, but I rarely run qemu manually so
I don't know what I'm doing wrong.
NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
rcu: srcu_init: Setting srcu_struct sizes based on contention.
timer_probe: no matching timers found
Kernel panic - not syncing: Unable to initialise architected timer.
CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.11.0-rc1-00261-g497f7c30f184 #203
Call trace:
dump_backtrace+0x94/0xec
show_stack+0x18/0x24
dump_stack_lvl+0x38/0x90
dump_stack+0x18/0x24
panic+0x36c/0x380
early_brk64+0x0/0xa8
start_kernel+0x27c/0x558
__primary_switched+0x80/0x88
---[ end Kernel panic - not syncing: Unable to initialise architected timer. ]---
>
> I'll just keep the affected tests disabled on arm64 for the time being.
We should skip the tests on arm64+acpi, which is similar to disabling
but not exactly the same. There will likely be more DT overlay usage in
kunit and so that will lead to more test disabling. Skipping properly is
the better solution.