All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@kernel.org>
To: Guenter Roeck <linux@roeck-us.net>,
	Shuah Khan <skhan@linuxfoundation.org>
Cc: Michael Turquette <mturquette@baylibre.com>,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
	patches@lists.linux.dev, kunit-dev@googlegroups.com,
	linux-kselftest@vger.kernel.org, devicetree@vger.kernel.org,
	Brendan Higgins <brendan.higgins@linux.dev>,
	David Gow <davidgow@google.com>, Rae Moar <rmoar@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rafael J.Wysocki <rafael@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Saravana Kannan <saravanak@google.com>,
	Daniel Latypov <dlatypov@google.com>,
	Christian Marangi <ansuelsmth@gmail.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Maxime Ripard <maxime@cerno.tech>,
	Geert Uytterhoeven <geert+renesas@glider.be>
Subject: Re: [PATCH v8 8/8] clk: Add KUnit tests for clks registered with struct clk_parent_data
Date: Tue, 08 Oct 2024 16:12:02 -0700	[thread overview]
Message-ID: <ccd372f2754e80d6c01e38a9596bed34.sboyd@kernel.org> (raw)
In-Reply-To: <cb1e0119-6e3e-4fd2-92ea-3fec18f5843d@roeck-us.net>

Quoting Guenter Roeck (2024-10-03 21:52:09)
> On 10/3/24 17:42, Stephen Boyd wrote:
> > 
> > Can you please describe how you run the kunit test? And provide the qemu
> > command you run to boot arm64 with acpi?
> > 
> 
> Example command line:
> 
> qemu-system-aarch64 -M virt -m 512 \
>       -kernel arch/arm64/boot/Image -no-reboot -nographic \
>       -snapshot \
>       -bios /opt/buildbot/rootfs/arm64/../firmware/QEMU_EFI-aarch64.fd \
>       -device virtio-blk-device,drive=d0 \
>       -drive file=rootfs.ext2,if=none,id=d0,format=raw \
>       -cpu cortex-a57 -serial stdio -monitor none -no-reboot \
>       --append "kunit.stats_enabled=2 kunit.filter=speed>slow root=/dev/vda rootwait earlycon=pl011,0x9000000 console=ttyAMA0"
> 
> That works fine for me. Configuration is arm64 defconfig plus various
> debug and kunit options. I built the efi image myself from sources.
> The root file system is from buildroot with modified init script.
> kunit tests are all built into the kernel and run during boot.

Thanks. I figured out that I was missing enabling CONFIG_ACPI. Here's my
commandline

./tools/testing/kunit/kunit.py run --arch=arm64 \
	--kunitconfig=drivers/of \
	--qemu_args="-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd -smp 2" \
	--kconfig_add="CONFIG_ACPI=y" \
	--kernel_args="earlycon=pl011,0x9000000"

Now I can boot and reproduce the failure, but there's another problem.
ACPI disables itself when it fails to find tables.

 ACPI: Unable to load the System Description Tables

This calls disable_acpi() which sets acpi_disabled to 1. This happens
before the unit test runs, meaning we can't reliably use 'acpi_disabled'
as a method to skip.

The best I can come up with then is to test for a NULL of_root when
CONFIG_ARM64 and CONFIG_ACPI are enabled, because the tests
intentionally don't work when both those configs are enabled and the
'of_root' isn't populated. In all other cases the 'of_root' missing is a
bug. I'll probably make this into some sort of kunit helper function in
of_private.h and send it to DT maintainers.

---8<----
diff --git a/drivers/of/of_kunit_helpers.c b/drivers/of/of_kunit_helpers.c
index 287d6c91bb37..a1330e183230 100644
--- a/drivers/of/of_kunit_helpers.c
+++ b/drivers/of/of_kunit_helpers.c
@@ -36,6 +36,9 @@ int of_overlay_fdt_apply_kunit(struct kunit *test, void *overlay_fdt,
 	int ret;
 	int *copy_id;
 
+	if (IS_ENABLED(CONFIG_ARM64) && IS_ENABLED(CONFIG_ACPI) && !of_root)
+		kunit_skip(test, "arm64+acpi rejects overlays");
+
 	copy_id = kunit_kmalloc(test, sizeof(*copy_id), GFP_KERNEL);
 	if (!copy_id)
 		return -ENOMEM;
diff --git a/drivers/of/of_test.c b/drivers/of/of_test.c
index c85a258bc6ae..6cca43bf8029 100644
--- a/drivers/of/of_test.c
+++ b/drivers/of/of_test.c
@@ -38,6 +38,8 @@ static int of_dtb_test_init(struct kunit *test)
 {
 	if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE))
 		kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE");
+	if (IS_ENABLED(CONFIG_ARM64) && IS_ENABLED(CONFIG_ACPI) && !of_root)
+		kunit_skip(test, "arm64+acpi doesn't populate a root node on ACPI systems");
 
 	return 0;
 }
diff --git a/drivers/of/overlay_test.c b/drivers/of/overlay_test.c
index 19a292cdeee3..3e7ac97a6796 100644
--- a/drivers/of/overlay_test.c
+++ b/drivers/of/overlay_test.c
@@ -64,6 +64,8 @@ static void of_overlay_apply_kunit_cleanup(struct kunit *test)
 
 	if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE))
 		kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE for root node");
+	if (IS_ENABLED(CONFIG_ARM64) && IS_ENABLED(CONFIG_ACPI) && !of_root)
+		kunit_skip(test, "arm64+acpi rejects overlays");
 
 	kunit_init_test(&fake, "fake test", NULL);
 	KUNIT_ASSERT_EQ(test, fake.status, KUNIT_SUCCESS);

  reply	other threads:[~2024-10-08 23:12 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-18 21:04 [PATCH v8 0/8] clk: Add kunit tests for fixed rate and parent data Stephen Boyd
2024-07-18 21:05 ` [PATCH v8 1/8] of/platform: Allow overlays to create platform devices from the root node Stephen Boyd
2024-07-29 22:37   ` Stephen Boyd
2024-07-18 21:05 ` [PATCH v8 2/8] of: Add test managed wrappers for of_overlay_apply()/of_node_put() Stephen Boyd
2024-07-29 22:37   ` Stephen Boyd
2024-07-18 21:05 ` [PATCH v8 3/8] dt-bindings: vendor-prefixes: Add "test" vendor for KUnit and friends Stephen Boyd
2024-07-29 22:37   ` Stephen Boyd
2024-07-18 21:05 ` [PATCH v8 4/8] of: Add a KUnit test for overlays and test managed APIs Stephen Boyd
2024-07-29 22:37   ` Stephen Boyd
2024-07-18 21:05 ` [PATCH v8 5/8] platform: Add test managed platform_device/driver APIs Stephen Boyd
2024-07-29 22:37   ` Stephen Boyd
2024-09-24  2:33   ` Guenter Roeck
2024-07-18 21:05 ` [PATCH v8 6/8] clk: Add test managed clk provider/consumer APIs Stephen Boyd
2024-07-29 22:37   ` Stephen Boyd
2024-07-18 21:05 ` [PATCH v8 7/8] clk: Add KUnit tests for clk fixed rate basic type Stephen Boyd
2024-07-29 22:37   ` Stephen Boyd
2024-07-18 21:05 ` [PATCH v8 8/8] clk: Add KUnit tests for clks registered with struct clk_parent_data Stephen Boyd
2024-07-29 22:38   ` Stephen Boyd
2024-09-27  4:14   ` Guenter Roeck
2024-09-27  4:39     ` Guenter Roeck
2024-09-27 16:19       ` Guenter Roeck
2024-09-27 20:45         ` Shuah Khan
2024-09-28  0:08           ` Guenter Roeck
2024-09-28 17:31             ` Guenter Roeck
2024-09-28 17:54               ` Shuah Khan
2024-09-28 19:27                 ` Shuah Khan
2024-09-28 21:32                   ` Guenter Roeck
2024-10-03 23:46                     ` Stephen Boyd
2024-10-04  0:25                       ` Guenter Roeck
2024-10-04  0:42                         ` Stephen Boyd
2024-10-04  4:52                           ` Guenter Roeck
2024-10-08 23:12                             ` Stephen Boyd [this message]
2024-10-08 23:27                               ` Guenter Roeck
2024-10-09 19:07                                 ` Stephen Boyd

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ccd372f2754e80d6c01e38a9596bed34.sboyd@kernel.org \
    --to=sboyd@kernel.org \
    --cc=ansuelsmth@gmail.com \
    --cc=brendan.higgins@linux.dev \
    --cc=conor+dt@kernel.org \
    --cc=davidgow@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dlatypov@google.com \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=maxime@cerno.tech \
    --cc=mturquette@baylibre.com \
    --cc=patches@lists.linux.dev \
    --cc=rafael@kernel.org \
    --cc=rmoar@google.com \
    --cc=robh@kernel.org \
    --cc=saravanak@google.com \
    --cc=skhan@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.