diff mbox series

[V5,1/3] rust: Increase QEMU size to 1024 MB

Message ID 20251015095914.2120664-1-Deepesh.Varatharajan@windriver.com
State Accepted, archived
Commit 1c87bca91c61a272266a0f2763e0477b66f06c13
Headers show
Series [V5,1/3] rust: Increase QEMU size to 1024 MB | expand

Commit Message

Deepesh Varatharajan Oct. 15, 2025, 9:59 a.m. UTC
From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

Rightnow rust depends on llvm instead of rust-llvm

Setup in rust-llvm
CFLAGS:remove = "-g"
CXXFLAGS:remove = "-g"

Setup in llvm
DEBUG_LEVELFLAG = "-g1"

As a result, the stage1 compiler crate binaries include debug symbols,
increasing their size. These binaries are used to run tests inside QEMU.
To accommodate this, increase the QEMU RAM allocation to 1024 MB.

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
---
 meta/lib/oeqa/selftest/cases/rust.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Richard Purdie Oct. 16, 2025, 6:31 a.m. UTC | #1
On Wed, 2025-10-15 at 02:59 -0700, Varatharajan, Deepesh via lists.openembedded.org wrote:
> From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
> 
> Rightnow rust depends on llvm instead of rust-llvm
> 
> Setup in rust-llvm
> CFLAGS:remove = "-g"
> CXXFLAGS:remove = "-g"
> 
> Setup in llvm
> DEBUG_LEVELFLAG = "-g1"
> 
> As a result, the stage1 compiler crate binaries include debug symbols,
> increasing their size. These binaries are used to run tests inside QEMU.
> To accommodate this, increase the QEMU RAM allocation to 1024 MB.
> 
> Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
> ---
>  meta/lib/oeqa/selftest/cases/rust.py | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py
> index 95859a9eef..06acf53e9a 100644
> --- a/meta/lib/oeqa/selftest/cases/rust.py
> +++ b/meta/lib/oeqa/selftest/cases/rust.py
> @@ -102,8 +102,9 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
>          testargs =  exclude_fail_tests + " --no-doc --no-fail-fast --bless"
>  
>          # wrap the execution with a qemu instance.
> -        # Tests are run with 512 tasks in parallel to execute all tests very quickly
> -        with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 512") as qemu:
> +        # Set QEMU RAM to 1024MB to support running unit tests for the compiler crate, including larger
> +        # test cases and parallel execution in the test environment.
> +        with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 1024") as qemu:
>              # Copy remote-test-server to image through scp
>              host_sys = get_bb_var("RUST_BUILD_SYS", "rust")
>              ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user="root")

This failed in testing:

https://autobuilder.yoctoproject.org/valkyrie/#/builders/42/builds/2522

I suspect some qemu platforms don't allow changing the memory size so easily?

Cheers,

Richard
Deepesh Varatharajan Oct. 16, 2025, 7:07 a.m. UTC | #2
On 16-10-2025 12:01, Richard Purdie wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Wed, 2025-10-15 at 02:59 -0700, Varatharajan, Deepesh via lists.openembedded.org wrote:
>> From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>>
>> Rightnow rust depends on llvm instead of rust-llvm
>>
>> Setup in rust-llvm
>> CFLAGS:remove = "-g"
>> CXXFLAGS:remove = "-g"
>>
>> Setup in llvm
>> DEBUG_LEVELFLAG = "-g1"
>>
>> As a result, the stage1 compiler crate binaries include debug symbols,
>> increasing their size. These binaries are used to run tests inside QEMU.
>> To accommodate this, increase the QEMU RAM allocation to 1024 MB.
>>
>> Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
>> ---
>>   meta/lib/oeqa/selftest/cases/rust.py | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py
>> index 95859a9eef..06acf53e9a 100644
>> --- a/meta/lib/oeqa/selftest/cases/rust.py
>> +++ b/meta/lib/oeqa/selftest/cases/rust.py
>> @@ -102,8 +102,9 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
>>           testargs =  exclude_fail_tests + " --no-doc --no-fail-fast --bless"
>>
>>           # wrap the execution with a qemu instance.
>> -        # Tests are run with 512 tasks in parallel to execute all tests very quickly
>> -        with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 512") as qemu:
>> +        # Set QEMU RAM to 1024MB to support running unit tests for the compiler crate, including larger
>> +        # test cases and parallel execution in the test environment.
>> +        with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 1024") as qemu:
>>               # Copy remote-test-server to image through scp
>>               host_sys = get_bb_var("RUST_BUILD_SYS", "rust")
>>               ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user="root")
> This failed in testing:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/42/builds/2522
>
> I suspect some qemu platforms don't allow changing the memory size so easily?
>
> Cheers,
>
> Richard
Hi Richard,

I had a look at the failure and noticed that this test run includes a 
linux-firmware upgrade (20250917 → 20251011).
While it’s not confirmed yet, it’s possible that the updated firmware 
may be affecting device initialization. Since
the log shows a warning indicating that the target did not reach the 
login banner within 1000 seconds, confirming
that the system hangs shortly after starting likely around the time 
virtio-gpu is initialized.

Additionally, I believe this issue is not related to the increased 
memory allocation because the GCC oe-selftest,
which runs with 4096 MB of QEMU memory, completed successfully. I also 
checked previous autobuilder runs without
this linux-firmware update which had these rust-llvm drop set of patches 
and the qemuarm-tc build completed without
issues.

https://autobuilder.yoctoproject.org/valkyrie/?#/builders/42/builds/2519

Regards,
Deepesh
>
>
diff mbox series

Patch

diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py
index 95859a9eef..06acf53e9a 100644
--- a/meta/lib/oeqa/selftest/cases/rust.py
+++ b/meta/lib/oeqa/selftest/cases/rust.py
@@ -102,8 +102,9 @@  class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
         testargs =  exclude_fail_tests + " --no-doc --no-fail-fast --bless"
 
         # wrap the execution with a qemu instance.
-        # Tests are run with 512 tasks in parallel to execute all tests very quickly
-        with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 512") as qemu:
+        # Set QEMU RAM to 1024MB to support running unit tests for the compiler crate, including larger
+        # test cases and parallel execution in the test environment.
+        with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 1024") as qemu:
             # Copy remote-test-server to image through scp
             host_sys = get_bb_var("RUST_BUILD_SYS", "rust")
             ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user="root")