All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] u-boot: disable CONFIG_BLOBLIST on aarch64
@ 2025-05-21 13:51 Mikko Rapeli
  2025-05-21 14:14 ` [OE-core] " Quentin Schulz
  0 siblings, 1 reply; 5+ messages in thread
From: Mikko Rapeli @ 2025-05-21 13:51 UTC (permalink / raw)
  To: openembedded-core; +Cc: Mikko Rapeli, Ilias Apalodimas

Booting on qemu with kvm is currently hanging on aarch64.
Root cause is in u-boot and CONFIG_BLOBLIST can be disabled
as a workaround.

To reproduce, build on kvm enabled host where "kvm-ok"
succeeds. For example genericarm64 machine and core-image-base
should then boot with:

$ runqemu slirp nographic novga snapshot kvm

Without this config workaround, the boot hangs without
any messages in qemu output but ctrl-a-c to qemu console
can shutdown the emulated machine.

This seems to have regressed after u-boot 2025.04 update.
KVM boot can be detected from speed, for example genericarm64
boots in 550 ms with KVM and without in over 5 seconds.

Fixes: [YOCTO #15872]

Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
---
 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg | 1 +
 meta/recipes-bsp/u-boot/u-boot-common.inc                 | 3 +++
 2 files changed, 4 insertions(+)
 create mode 100644 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg

diff --git a/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
new file mode 100644
index 0000000000..d01d3d12d8
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
@@ -0,0 +1 @@
+# CONFIG_BLOBLIST is not set
diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
index fd1eab5cdd..d8c70da782 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -16,6 +16,9 @@ SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a"
 
 SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
 
+# workaround for aarch64 kvm qemu boot regression
+SRC_URI:append:aarch64 = " file://disable-CONFIG_BLOBLIST.cfg"
+
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build"
 
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] u-boot: disable CONFIG_BLOBLIST on aarch64
  2025-05-21 13:51 [PATCH] u-boot: disable CONFIG_BLOBLIST on aarch64 Mikko Rapeli
@ 2025-05-21 14:14 ` Quentin Schulz
  2025-05-21 14:52   ` Mikko Rapeli
  0 siblings, 1 reply; 5+ messages in thread
From: Quentin Schulz @ 2025-05-21 14:14 UTC (permalink / raw)
  To: mikko.rapeli, openembedded-core; +Cc: Ilias Apalodimas

Hi Mikko,

On 5/21/25 3:51 PM, Mikko Rapeli via lists.openembedded.org wrote:
> Booting on qemu with kvm is currently hanging on aarch64.
> Root cause is in u-boot and CONFIG_BLOBLIST can be disabled
> as a workaround.
> 
> To reproduce, build on kvm enabled host where "kvm-ok"
> succeeds. For example genericarm64 machine and core-image-base
> should then boot with:
> 
> $ runqemu slirp nographic novga snapshot kvm
> 
> Without this config workaround, the boot hangs without
> any messages in qemu output but ctrl-a-c to qemu console
> can shutdown the emulated machine.
> 
> This seems to have regressed after u-boot 2025.04 update.
> KVM boot can be detected from speed, for example genericarm64
> boots in 550 ms with KVM and without in over 5 seconds.
> 
> Fixes: [YOCTO #15872]
> 
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> ---
>   meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg | 1 +
>   meta/recipes-bsp/u-boot/u-boot-common.inc                 | 3 +++
>   2 files changed, 4 insertions(+)
>   create mode 100644 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> 
> diff --git a/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> new file mode 100644
> index 0000000000..d01d3d12d8
> --- /dev/null
> +++ b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> @@ -0,0 +1 @@
> +# CONFIG_BLOBLIST is not set
> diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
> index fd1eab5cdd..d8c70da782 100644
> --- a/meta/recipes-bsp/u-boot/u-boot-common.inc
> +++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
> @@ -16,6 +16,9 @@ SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a"
>   
>   SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
>   
> +# workaround for aarch64 kvm qemu boot regression
> +SRC_URI:append:aarch64 = " file://disable-CONFIG_BLOBLIST.cfg"
> +

Can you make this qemu specific? I don't think we want every aarch64 
board to have bloblist disabled?

Cheers,
Quentin


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] u-boot: disable CONFIG_BLOBLIST on aarch64
  2025-05-21 14:14 ` [OE-core] " Quentin Schulz
@ 2025-05-21 14:52   ` Mikko Rapeli
  2025-05-21 14:58     ` Quentin Schulz
  0 siblings, 1 reply; 5+ messages in thread
From: Mikko Rapeli @ 2025-05-21 14:52 UTC (permalink / raw)
  To: Quentin Schulz; +Cc: openembedded-core, Ilias Apalodimas

Hi,

On Wed, May 21, 2025 at 04:14:04PM +0200, Quentin Schulz wrote:
> Hi Mikko,
> 
> On 5/21/25 3:51 PM, Mikko Rapeli via lists.openembedded.org wrote:
> > Booting on qemu with kvm is currently hanging on aarch64.
> > Root cause is in u-boot and CONFIG_BLOBLIST can be disabled
> > as a workaround.
> > 
> > To reproduce, build on kvm enabled host where "kvm-ok"
> > succeeds. For example genericarm64 machine and core-image-base
> > should then boot with:
> > 
> > $ runqemu slirp nographic novga snapshot kvm
> > 
> > Without this config workaround, the boot hangs without
> > any messages in qemu output but ctrl-a-c to qemu console
> > can shutdown the emulated machine.
> > 
> > This seems to have regressed after u-boot 2025.04 update.
> > KVM boot can be detected from speed, for example genericarm64
> > boots in 550 ms with KVM and without in over 5 seconds.
> > 
> > Fixes: [YOCTO #15872]
> > 
> > Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> > ---
> >   meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg | 1 +
> >   meta/recipes-bsp/u-boot/u-boot-common.inc                 | 3 +++
> >   2 files changed, 4 insertions(+)
> >   create mode 100644 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> > 
> > diff --git a/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> > new file mode 100644
> > index 0000000000..d01d3d12d8
> > --- /dev/null
> > +++ b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> > @@ -0,0 +1 @@
> > +# CONFIG_BLOBLIST is not set
> > diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
> > index fd1eab5cdd..d8c70da782 100644
> > --- a/meta/recipes-bsp/u-boot/u-boot-common.inc
> > +++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
> > @@ -16,6 +16,9 @@ SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a"
> >   SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
> > +# workaround for aarch64 kvm qemu boot regression
> > +SRC_URI:append:aarch64 = " file://disable-CONFIG_BLOBLIST.cfg"
> > +
> 
> Can you make this qemu specific? I don't think we want every aarch64 board
> to have bloblist disabled?

True, at least qemu and genericarm64 need this. Or should this be tied
to some machine/distro feature or something else?

I guess KVM support is not a machine feature atm.

Cheers,

-Mikko


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] u-boot: disable CONFIG_BLOBLIST on aarch64
  2025-05-21 14:52   ` Mikko Rapeli
@ 2025-05-21 14:58     ` Quentin Schulz
  2025-05-21 15:03       ` Mikko Rapeli
  0 siblings, 1 reply; 5+ messages in thread
From: Quentin Schulz @ 2025-05-21 14:58 UTC (permalink / raw)
  To: Mikko Rapeli; +Cc: openembedded-core, Ilias Apalodimas

Hi Mikko,

On 5/21/25 4:52 PM, Mikko Rapeli wrote:
> Hi,
> 
> On Wed, May 21, 2025 at 04:14:04PM +0200, Quentin Schulz wrote:
>> Hi Mikko,
>>
>> On 5/21/25 3:51 PM, Mikko Rapeli via lists.openembedded.org wrote:
>>> Booting on qemu with kvm is currently hanging on aarch64.
>>> Root cause is in u-boot and CONFIG_BLOBLIST can be disabled
>>> as a workaround.
>>>
>>> To reproduce, build on kvm enabled host where "kvm-ok"
>>> succeeds. For example genericarm64 machine and core-image-base
>>> should then boot with:
>>>
>>> $ runqemu slirp nographic novga snapshot kvm
>>>
>>> Without this config workaround, the boot hangs without
>>> any messages in qemu output but ctrl-a-c to qemu console
>>> can shutdown the emulated machine.
>>>
>>> This seems to have regressed after u-boot 2025.04 update.
>>> KVM boot can be detected from speed, for example genericarm64
>>> boots in 550 ms with KVM and without in over 5 seconds.
>>>
>>> Fixes: [YOCTO #15872]
>>>
>>> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>>> Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
>>> ---
>>>    meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg | 1 +
>>>    meta/recipes-bsp/u-boot/u-boot-common.inc                 | 3 +++
>>>    2 files changed, 4 insertions(+)
>>>    create mode 100644 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
>>>
>>> diff --git a/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
>>> new file mode 100644
>>> index 0000000000..d01d3d12d8
>>> --- /dev/null
>>> +++ b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
>>> @@ -0,0 +1 @@
>>> +# CONFIG_BLOBLIST is not set
>>> diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
>>> index fd1eab5cdd..d8c70da782 100644
>>> --- a/meta/recipes-bsp/u-boot/u-boot-common.inc
>>> +++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
>>> @@ -16,6 +16,9 @@ SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a"
>>>    SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
>>> +# workaround for aarch64 kvm qemu boot regression
>>> +SRC_URI:append:aarch64 = " file://disable-CONFIG_BLOBLIST.cfg"
>>> +
>>
>> Can you make this qemu specific? I don't think we want every aarch64 board
>> to have bloblist disabled?
> 
> True, at least qemu and genericarm64 need this. Or should this be tied
> to some machine/distro feature or something else?
> 
> I guess KVM support is not a machine feature atm.
> 

I assume this is about running U-Boot from within KVM? Not sure there 
are many machines operating within that scenario?

Also, I assume this is going to be a short-lived work-around with a 
proper fix in U-Boot? I'm not sure we need to go through the hassle of 
adding a machine feature (and documenting it and all) if it's unused 
"soon". But I also understand that short-lived work-arounds also 
sometimes stay for a very long time :)

Cheers,
Quentin


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] u-boot: disable CONFIG_BLOBLIST on aarch64
  2025-05-21 14:58     ` Quentin Schulz
@ 2025-05-21 15:03       ` Mikko Rapeli
  0 siblings, 0 replies; 5+ messages in thread
From: Mikko Rapeli @ 2025-05-21 15:03 UTC (permalink / raw)
  To: Quentin Schulz; +Cc: openembedded-core, Ilias Apalodimas

Hi,

On Wed, May 21, 2025 at 04:58:16PM +0200, Quentin Schulz wrote:
> On 5/21/25 4:52 PM, Mikko Rapeli wrote:
> > On Wed, May 21, 2025 at 04:14:04PM +0200, Quentin Schulz wrote:
> > > On 5/21/25 3:51 PM, Mikko Rapeli via lists.openembedded.org wrote:
> > > > Booting on qemu with kvm is currently hanging on aarch64.
> > > > Root cause is in u-boot and CONFIG_BLOBLIST can be disabled
> > > > as a workaround.
> > > > 
> > > > To reproduce, build on kvm enabled host where "kvm-ok"
> > > > succeeds. For example genericarm64 machine and core-image-base
> > > > should then boot with:
> > > > 
> > > > $ runqemu slirp nographic novga snapshot kvm
> > > > 
> > > > Without this config workaround, the boot hangs without
> > > > any messages in qemu output but ctrl-a-c to qemu console
> > > > can shutdown the emulated machine.
> > > > 
> > > > This seems to have regressed after u-boot 2025.04 update.
> > > > KVM boot can be detected from speed, for example genericarm64
> > > > boots in 550 ms with KVM and without in over 5 seconds.
> > > > 
> > > > Fixes: [YOCTO #15872]
> > > > 
> > > > Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> > > > Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> > > > ---
> > > >    meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg | 1 +
> > > >    meta/recipes-bsp/u-boot/u-boot-common.inc                 | 3 +++
> > > >    2 files changed, 4 insertions(+)
> > > >    create mode 100644 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> > > > 
> > > > diff --git a/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> > > > new file mode 100644
> > > > index 0000000000..d01d3d12d8
> > > > --- /dev/null
> > > > +++ b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
> > > > @@ -0,0 +1 @@
> > > > +# CONFIG_BLOBLIST is not set
> > > > diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
> > > > index fd1eab5cdd..d8c70da782 100644
> > > > --- a/meta/recipes-bsp/u-boot/u-boot-common.inc
> > > > +++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
> > > > @@ -16,6 +16,9 @@ SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a"
> > > >    SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
> > > > +# workaround for aarch64 kvm qemu boot regression
> > > > +SRC_URI:append:aarch64 = " file://disable-CONFIG_BLOBLIST.cfg"
> > > > +
> > > 
> > > Can you make this qemu specific? I don't think we want every aarch64 board
> > > to have bloblist disabled?
> > 
> > True, at least qemu and genericarm64 need this. Or should this be tied
> > to some machine/distro feature or something else?
> > 
> > I guess KVM support is not a machine feature atm.
> > 
> 
> I assume this is about running U-Boot from within KVM? Not sure there are
> many machines operating within that scenario?

Yes, for testing several aspects of target machine, booting under qemu
is used and then the 10x performance boost on aarch64 host machines with KVM
support is quite important. But overall a minor thing, I guess.

> Also, I assume this is going to be a short-lived work-around with a proper
> fix in U-Boot? I'm not sure we need to go through the hassle of adding a
> machine feature (and documenting it and all) if it's unused "soon". But I
> also understand that short-lived work-arounds also sometimes stay for a very
> long time :)

Yes, exactly :)

The use case is such simple one. Hope we can figure out how to add a
test for this. And run many of the selftests on native aarch64 hosts
with kvm enabled to get the perf boost.

Cheers,

-Mikko


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-05-21 15:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-21 13:51 [PATCH] u-boot: disable CONFIG_BLOBLIST on aarch64 Mikko Rapeli
2025-05-21 14:14 ` [OE-core] " Quentin Schulz
2025-05-21 14:52   ` Mikko Rapeli
2025-05-21 14:58     ` Quentin Schulz
2025-05-21 15:03       ` Mikko Rapeli

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.