openeuler-riscv / oerv-team

OERV 实习生工作中心
8 stars 39 forks source link

[mugen_LLVM_2409]处理mugen测试套 qemu 失败的测试用例 #1256

Open jiewu9823 opened 2 weeks ago

jiewu9823 commented 2 weeks ago

需求:

  1. LLVM24.09_mugen失败测试用例清单 中找到测试套 qemu 失败的测试用例
  2. openEuler LLVM 平行宇宙 24.09 版本的镜像上 double check mugen 中 qemu 测试套里的测试用例
  3. 定位失败的原因,并做出相应的处理: 如果确认是 riscv 架构的问题,向 openeuler/RISC-V 里提交 issue,issue的标题以 [LLVM平行宇宙24.09] 开头 如果是 mugen 测试用例的问题,修复测试用例后,向 mugen 上游提交 PR,提交 PR 时要贴上在 riscv 和 x86(24.03 LTS版本) 两个架构的上测试结果

要求:

  1. 该项任务要求产出:

    • 在openEuler LLVM平行宇宙 24.09 版本镜像上 double check 的结果,即完成需求2(必选,限制1天内完成)
    • 定位失败的原因,并做出相应的处理,即完成需求3(可选,对应薪资折半,限制2天内完成),如果无法完成,请在本 issue 的评论里说明情况,未完成的任务将重新设置为issue挂出。如果完成了该项任务,请在本 issue 评论里说明完成的情况
  2. 完成该项任务后,请在 LLVM24.09_mugen失败测试用例清单 里找到相应测试套和测试用例栏位,并填写Owner(填写中文名),Github ID,复测结果,Failure Reason,Issue/PR URL(填写提交issue或者PR的url) 。

说明:

  1. mugen 源码以及使用方法:https://gitee.com/openeuler/mugen
hehellooedas commented 1 week ago

测试结果

在openEuler24.03 x86_64上测试: 图片 全部通过

在openEuler24.03 riscv64 llvm上测试: 图片 其中oe_test_service_qemu-guest-agent测试无法通过,原因同https://github.com/openeuler-riscv/oerv-team/issues/735


原因分析

图片

从日志中我们注意到:

Timed out waiting for device /dev/virtio-ports/org.qemu.guest_agent.0.

qemu-guest-agent.service服务在等待一个设备,直到超时,所以该设备是不存在的。 qemu-guest-agent.service的启动依赖于它,当前的openEuler x86_64有这个设备,而openEuler RISC-V则没有这个虚拟设备。 那么就需要在运行脚本中添加这个设备:

-chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 \
-device virtio-serial \
-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0

以下是我现在的启动虚拟机脚本:

qemu-system-riscv64 \
    -nographic -machine virt \
    -smp 8 -m 4G \
    -bios fw_payload_oe_uboot_2304.bin \
    -drive file=openEuler-Mega_24.09-V1-base-qemu-testing.qcow2,format=qcow2,id=hd0 \
    -object rng-random,filename=/dev/urandom,id=rng0 \
    -device virtio-gpu \
    -device virtio-rng-pci,rng=rng0 \
    -device virtio-blk-pci,drive=hd0 \
    -device virtio-net-pci,netdev=usernet \
    -netdev user,id=usernet,hostfwd=tcp::10002-:22 \
    -chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 \
    -device virtio-serial \
    -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0

修改后结果

图片 添加启动参数后可以跑通