[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANpmjNMZD7-HY9FNGKnWTzHJ+Kibf2++rHj=j+3UTFKZ+Hr+EQ@mail.gmail.com>
Date: Mon, 4 Mar 2024 21:34:05 +0100
From: Marco Elver <elver@...gle.com>
To: Guenter Roeck <linux@...ck-us.net>
Cc: Peter Zijlstra <peterz@...radead.org>, Dmitry Vyukov <dvyukov@...gle.com>,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org,
Linux ARM <linux-arm-kernel@...ts.infradead.org>,
Catalin Marinas <catalin.marinas@....com>, Will Deacon <will@...nel.org>,
Mark Rutland <mark.rutland@....com>, Huacai Chen <chenhuacai@...nel.org>, loongarch@...ts.linux.dev
Subject: Re: hw_breakpoint unit test failures with various architectures/platforms
in qemu
On Mon, 4 Mar 2024 at 19:12, Guenter Roeck <linux@...ck-us.net> wrote:
>
> Hi,
>
> I see a number of failures and tracebacks when running the hw_breakpoint
> unit tests on various architectures in qemu. Some examples are below.
>
> Is this a potential problem with the unit tests, with the hardware,
> or with the qemu emulation of that hardware ?
The test is testing the accounting logic (allocating/deallocating HW
breakpoints), not actually using the breakpoints. That requires that
the architecture reports the correct number of HW breakpoints
available. It looks like it's not doing that.
> In other words, is it worthwhile to look into this further, or would
> it make more sense to just disable those tests if they fail on a
> given hardware/platform ?
It's an arch bug:
https://lore.kernel.org/lkml/Ytl9L0Zn1PVuL1cB@FVFF77S0Q05N.cambridge.arm.com/
Back then we decided to leave the test as-is, given it's reporting an
actual issue. However, since then nothing has changed and the test
continues to exist as a reminder the arch code needs fixing. I suspect
none of us have the time to get to that soon, so we can either leave
things as is, or skip the test on all the broken architectures.
No idea what's going on with loongarch.
Thanks,
-- Marco
> Thanks,
> Guenter
>
> ---
> arm:smdkc210:
>
> [ 9.515572] ok 2 test_many_cpus
> [ 9.519425] ########### searching unregister_test_bp
> [ 9.519989] ------------[ cut here ]------------
> [ 9.520995] ########### searching test_one_task_on_all_cpus
> [ 9.521318] WARNING: CPU: 1 PID: 63 at kernel/events/hw_breakpoint_test.c:49 test_one_task_on_all_cpus+0x90/0x1c4
> [ 9.521921] Modules linked in:
> [ 9.522532] CPU: 1 PID: 63 Comm: kunit_try_catch Tainted: G N 6.8.0-rc7-00028-g624465c9abd6 #1
> [ 9.523102] Hardware name: Samsung Exynos (Flattened Device Tree)
> [ 9.523610] unwind_backtrace from show_stack+0x10/0x14
> [ 9.523936] show_stack from dump_stack_lvl+0x68/0x90
> [ 9.524191] dump_stack_lvl from __warn+0xbc/0x21c
> [ 9.524429] __warn from warn_slowpath_fmt+0x1a8/0x1b0
> [ 9.524674] warn_slowpath_fmt from test_one_task_on_all_cpus+0x90/0x1c4
> [ 9.524971] test_one_task_on_all_cpus from kunit_try_run_case+0x58/0x18c
> [ 9.525273] kunit_try_run_case from kunit_generic_run_threadfn_adapter+0x14/0x20
> [ 9.525593] kunit_generic_run_threadfn_adapter from kthread+0x118/0x124
> [ 9.525889] kthread from ret_from_fork+0x14/0x28
> [ 9.526200] Exception stack(0xf0ad5fb0 to 0xf0ad5ff8)
> [ 9.526663] 5fa0: 00000000 00000000 00000000 00000000
> [ 9.527112] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 9.527449] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
> [ 9.527876] irq event stamp: 113
> [ 9.528088] hardirqs last enabled at (121): [<c01adfb4>] console_unlock+0x114/0x130
> [ 9.529049] hardirqs last disabled at (140): [<c01adfa0>] console_unlock+0x100/0x130
> [ 9.529501] softirqs last enabled at (138): [<c010168c>] __do_softirq+0x340/0x520
> [ 9.529892] softirqs last disabled at (129): [<c012f23c>] irq_exit+0x190/0x1c0
> [ 9.530227] ---[ end trace 0000000000000000 ]---
> [ 9.531752] # test_one_task_on_all_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 9.531752] Expected IS_ERR(bp) to be false, but is true
> [ 9.537757] not ok 3 test_one_task_on_all_cpus
>
> ---
> arm:raspi2b (and others):
>
> [ 14.718608] # Subtest: hw_breakpoint
> [ 14.719351] # module: hw_breakpoint_test
> [ 14.722275] 1..9
> [ 14.737927] # test_one_cpu: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 14.737927] Expected IS_ERR(bp) to be false, but is true
> [ 14.745960] not ok 1 test_one_cpu
> [ 14.750052] # test_many_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 14.750052] Expected IS_ERR(bp) to be false, but is true
> [ 14.791453] not ok 2 test_many_cpus
> [ 14.805964] # test_one_task_on_all_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 14.805964] Expected IS_ERR(bp) to be false, but is true
> [ 14.822662] not ok 3 test_one_task_on_all_cpus
> [ 14.836897] # test_two_tasks_on_all_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 14.836897] Expected IS_ERR(bp) to be false, but is true
> [ 14.869770] not ok 4 test_two_tasks_on_all_cpus
> [ 14.913412] # test_one_task_on_one_cpu: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 14.913412] Expected IS_ERR(bp) to be false, but is true
> [ 14.929852] not ok 5 test_one_task_on_one_cpu
> [ 14.939676] # test_one_task_mixed: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 14.939676] Expected IS_ERR(bp) to be false, but is true
> [ 14.953670] not ok 6 test_one_task_mixed
> [ 14.964403] # test_two_tasks_on_one_cpu: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 14.964403] Expected IS_ERR(bp) to be false, but is true
> [ 14.997262] not ok 7 test_two_tasks_on_one_cpu
> [ 15.012825] # test_two_tasks_on_one_all_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 15.012825] Expected IS_ERR(bp) to be false, but is true
> [ 15.045472] not ok 8 test_two_tasks_on_one_all_cpus
> [ 15.070033] # test_task_on_all_and_one_cpu: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 15.070033] Expected IS_ERR(bp) to be false, but is true
> [ 15.077092] not ok 9 test_task_on_all_and_one_cpu
>
> ---
> arm64:virt:
>
> [ 7.753199] ok 2 test_many_cpus
> [ 7.766356] # test_one_task_on_all_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 7.766356] Expected IS_ERR(bp) to be false, but is true
> [ 7.775897] not ok 3 test_one_task_on_all_cpus
> [ 7.786604] # test_two_tasks_on_all_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 7.786604] Expected IS_ERR(bp) to be false, but is true
> [ 7.793878] not ok 4 test_two_tasks_on_all_cpus
> [ 7.799954] # test_one_task_on_one_cpu: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 7.799954] Expected IS_ERR(bp) to be false, but is true
> [ 7.811446] not ok 5 test_one_task_on_one_cpu
> [ 7.823706] # test_one_task_mixed: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 7.823706] Expected IS_ERR(bp) to be false, but is true
> [ 7.838892] not ok 6 test_one_task_mixed
> [ 7.843594] # test_two_tasks_on_one_cpu: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 7.843594] Expected IS_ERR(bp) to be false, but is true
> [ 7.862087] not ok 7 test_two_tasks_on_one_cpu
> [ 7.869706] # test_two_tasks_on_one_all_cpus: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 7.869706] Expected IS_ERR(bp) to be false, but is true
> [ 7.874499] not ok 8 test_two_tasks_on_one_all_cpus
> [ 7.878321] # test_task_on_all_and_one_cpu: ASSERTION FAILED at kernel/events/hw_breakpoint_test.c:70
> [ 7.878321] Expected IS_ERR(bp) to be false, but is true
> [ 7.894138] not ok 9 test_task_on_all_and_one_cpu
> [ 7.894501] # hw_breakpoint: pass:2 fail:7 skip:0 total:9
> [ 7.894911] # Totals: pass:2 fail:7 skip:0 total:9
>
> ---
> loongarch:
>
> [ 7.327439] ok 2 test_many_cpus
> [ 7.330144] ------------[ cut here ]------------
> [ 7.330849] WARNING: CPU: 1 PID: 87 at kernel/events/hw_breakpoint_test.c:49 test_one_task_on_all_cpus+0x204/0x210
Powered by blists - more mailing lists