diff mbox series

kunit: tool: Add support for m68k under QEMU

Message ID 108676ae57ac8cade69806ff92768866bf8dd200.1677496263.git.geert@linux-m68k.org (mailing list archive)
State Accepted
Commit 60684c2bd35064043360e6f716d1b7c20e967b7d
Delegated to: Brendan Higgins
Headers show
Series kunit: tool: Add support for m68k under QEMU | expand

Commit Message

Geert Uytterhoeven Feb. 27, 2023, 11:12 a.m. UTC
Add basic support to run m68k under QEMU via kunit_tool.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
Does this need CONFIG_VIRTIO_CONSOLE=y? It seems to work fine without.

drivers/clk/.kunitconfig:

    Fails because m68k uses big-endian I/O ops

drivers/gpu/drm/tests/.kunitconfig

    kernel BUG at drivers/gpu/drm/drm_buddy.c:21!
    (also on arm, ignored)

drivers/gpu/drm/vc4/tests/.kunitconfig

    Depends on arm, works on arm

drivers/hid/.kunitconfig

    Unable to handle kernel NULL pointer dereference at virtual address (ptrval)
    Oops: 00000000
    PC: [<001d7380>] uclogic_params_ugee_v2_has_battery+0x6/0x68
    (also on arm, ignored)

fs/ext4/.kunitconfig: OK

fs/fat/.kunitconfig: OK

kernel/kcsan/.kunitconfig

    Needs HAVE_ARCH_KCSAN and SMP
    (the former also on arm, ignored)

lib/kunit/.kunitconfig: OK

mm/kfence/.kunitconfig

    Needs HAVE_ARCH_KFENCE
    (fails on arm due to missing CONFIG_KFENCE_KUNIT_TEST=y, which
    depends on TRACEPOINTS)

net/sunrpc/.kunitconfig

    After dropping CONFIG_STACKTRACE=y (why is this needed?) from
    net/sunrpc/.kunitconfig:
    Unable to handle kernel NULL pointer dereference at virtual address (ptrval)
    (also on arm, ignored)
---
 tools/testing/kunit/qemu_configs/m68k.py | 10 ++++++++++
 1 file changed, 10 insertions(+)
 create mode 100644 tools/testing/kunit/qemu_configs/m68k.py

Comments

David Gow Feb. 27, 2023, 2:50 p.m. UTC | #1
On Mon, 27 Feb 2023 at 19:12, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Add basic support to run m68k under QEMU via kunit_tool.
>
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---

Thanks very much. This works fine here.

I'll look into failures for individual kunitconfigs and tests later,
but the actual kunit_tool/QEMU stuff seems good-to-go to me.

Reviewed-by: David Gow <davidgow@google.com>

Cheers,
-- David

> Does this need CONFIG_VIRTIO_CONSOLE=y? It seems to work fine without.

It's working fine here without, too, so _something_ must be sending
data to the console.

>
> drivers/clk/.kunitconfig:
>
>     Fails because m68k uses big-endian I/O ops
>
> drivers/gpu/drm/tests/.kunitconfig
>
>     kernel BUG at drivers/gpu/drm/drm_buddy.c:21!
>     (also on arm, ignored)
>
> drivers/gpu/drm/vc4/tests/.kunitconfig
>
>     Depends on arm, works on arm
>
> drivers/hid/.kunitconfig
>
>     Unable to handle kernel NULL pointer dereference at virtual address (ptrval)
>     Oops: 00000000
>     PC: [<001d7380>] uclogic_params_ugee_v2_has_battery+0x6/0x68
>     (also on arm, ignored)
>
> fs/ext4/.kunitconfig: OK
>
> fs/fat/.kunitconfig: OK
>
> kernel/kcsan/.kunitconfig
>
>     Needs HAVE_ARCH_KCSAN and SMP
>     (the former also on arm, ignored)
>
> lib/kunit/.kunitconfig: OK
>
> mm/kfence/.kunitconfig
>
>     Needs HAVE_ARCH_KFENCE
>     (fails on arm due to missing CONFIG_KFENCE_KUNIT_TEST=y, which
>     depends on TRACEPOINTS)
>
> net/sunrpc/.kunitconfig
>
>     After dropping CONFIG_STACKTRACE=y (why is this needed?) from
>     net/sunrpc/.kunitconfig:
>     Unable to handle kernel NULL pointer dereference at virtual address (ptrval)
>     (also on arm, ignored)
> ---

It  looks like there are some endianness issues with the apparmor
policy_unpack_test, too... Otherwise the default set of tests seems to
pass.

>  tools/testing/kunit/qemu_configs/m68k.py | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>  create mode 100644 tools/testing/kunit/qemu_configs/m68k.py
>
> diff --git a/tools/testing/kunit/qemu_configs/m68k.py b/tools/testing/kunit/qemu_configs/m68k.py
> new file mode 100644
> index 0000000000000000..287fc386f8a7ff16
> --- /dev/null
> +++ b/tools/testing/kunit/qemu_configs/m68k.py
> @@ -0,0 +1,10 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +from ..qemu_config import QemuArchParams
> +
> +QEMU_ARCH = QemuArchParams(linux_arch='m68k',
> +                          kconfig='''
> +CONFIG_VIRT=y''',
> +                          qemu_arch='m68k',
> +                          kernel_path='vmlinux',
> +                          kernel_command_line='console=hvc0',
> +                          extra_qemu_params=['-machine', 'virt'])
> --
> 2.34.1
>
diff mbox series

Patch

diff --git a/tools/testing/kunit/qemu_configs/m68k.py b/tools/testing/kunit/qemu_configs/m68k.py
new file mode 100644
index 0000000000000000..287fc386f8a7ff16
--- /dev/null
+++ b/tools/testing/kunit/qemu_configs/m68k.py
@@ -0,0 +1,10 @@ 
+# SPDX-License-Identifier: GPL-2.0-only
+from ..qemu_config import QemuArchParams
+
+QEMU_ARCH = QemuArchParams(linux_arch='m68k',
+			   kconfig='''
+CONFIG_VIRT=y''',
+			   qemu_arch='m68k',
+			   kernel_path='vmlinux',
+			   kernel_command_line='console=hvc0',
+			   extra_qemu_params=['-machine', 'virt'])