在 2024/1/11 下午4:26, Thomas Huth 写道:
On 11/01/2024 08.25, gaosong wrote:
Hi,

在 2024/1/11 下午3:08, Thomas Huth 写道:
On 02/01/2024 18.22, Philippe Mathieu-Daudé wrote:
Full build config to run CI tests on a Loongarch64 host.

Forks might enable this by setting LOONGARCH64_RUNNER_AVAILABLE
in their CI namespace settings, see:
https://www.qemu.org/docs/master/devel/ci.html#maintainer-controlled-job-variables

Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
---
  docs/devel/ci-jobs.rst.inc                    |  6 ++++++
  .gitlab-ci.d/custom-runners.yml               |  1 +
  .../openeuler-22.03-loongarch64.yml           | 21 +++++++++++++++++++
  3 files changed, 28 insertions(+)
  create mode 100644 .gitlab-ci.d/custom-runners/openeuler-22.03-loongarch64.yml

...
diff --git a/.gitlab-ci.d/custom-runners.yml b/.gitlab-ci.d/custom-runners.yml
index 8e5b9500f4..152ace4492 100644
--- a/.gitlab-ci.d/custom-runners.yml
+++ b/.gitlab-ci.d/custom-runners.yml
@@ -32,3 +32,4 @@ include:
    - local: '/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml'
    - local: '/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml'
    - local: '/.gitlab-ci.d/custom-runners/centos-stream-8-x86_64.yml'
+  - local: '/.gitlab-ci.d/custom-runners/openeuler-22.03-loongarch64.yml' diff --git a/.gitlab-ci.d/custom-runners/openeuler-22.03-loongarch64.yml b/.gitlab-ci.d/custom-runners/openeuler-22.03-loongarch64.yml
new file mode 100644
index 0000000000..86d18f820e
--- /dev/null
+++ b/.gitlab-ci.d/custom-runners/openeuler-22.03-loongarch64.yml
@@ -0,0 +1,21 @@
+openeuler-22.03-loongarch64-all:
+ extends: .custom_runner_template :-)
+ needs: []
+ stage: build
+ tags:
+ - oe2203
+ - loongarch64
+ rules:
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+   when: manual
+   allow_failure: true
+ - if: "$LOONGARCH64_RUNNER_AVAILABLE"
+   when: manual
+   allow_failure: true
+ script:
+ - mkdir build
+ - cd build
+ - ../configure
+   || { cat config.log meson-logs/meson-log.txt; exit 1; }
+ - make --output-sync -j`nproc --ignore=40`
+ - make --output-sync -j`nproc --ignore=40` check

Does this system really have more than 40 CPU threads? Or is this a copy-n-past from one of the other scripts? In the latter case, I'd suggest to adjust the --ignore=40 to a more reasonable value.

 Thomas
No,  only 32.   I think it should be --ignore=32 or 16.

--ignore=32 then also does not make much sense, that would still be the same as simply omitting the -j parameter. I guess --ignore=16 should be fine.

I create a same runner on this machine, and I  find  some check error.
but I am not sure how to fix it. :-)

See:

https://gitlab.com/gaosong/qemu/-/jobs/5906269934

Seems to be related to RAM backing... for example, the erst-test is failing, which is doing something like:

    setup_vm_cmd(&state,
        "-object memory-backend-file,"
            "mem-path=acpi-erst.XXXXXX,"
            "size=64K,"
            "share=on,"
            "id=nvram "
        "-device acpi-erst,"
            "memdev=nvram");

So it seems like -object memory-backend-file" is not correctly working in your gitlab runner? Is there some setup missing?

 Thomas


This is my runner config.

    concurrent = 32
    check_interval = 0
    shutdown_timeout = 0

    [session_server]
      session_timeout = 1800

    ...

    [[runners]]
      name = "loongarch64"
      request_concurrency = 24
      url = "https://gitlab.com";
      id = 31426483
      token = "glrt-bGugocYrR2yqcu3ma7ka"
      token_obtained_at = 2024-01-10T08:31:29Z
      token_expires_at = 0001-01-01T00:00:00Z
      executor = "shell"
      builds_dir = "/data/gitlab-runner/builds"
      cache_dir = "/data/gitlab-runner/cache"
      [runners.cache]
        MaxUploadedArchiveSize = 0

I create a project runner 'loongarch64' for my branch ci-master.
Do we need some special configuration?

and  I just './configure  --target-list="x86_64-softmmu" --enable-debug'  on LoongArch host.   make , make check.
I got the same error.

[7/361] 🌗 qemu:qtest+qtest-x86_64 / qtest-x86_64/qos-test                                    2928s   60 subtests passed

^CWARNING: Received SIGTERM, exiting
  7/361 qemu:qtest+qtest-x86_64 / qtest-x86_64/qos-test                        INTERRUPT 4671.32s   killed by signal 11 SIGSEGV >>> PYTHON=/home/gs/gitlab/qemu/build/pyvenv/bin/python3 G_TEST_DBUS_DAEMON=/home/gs/gitlab/qemu/tests/dbus-vmstate-daemon.sh MALLOC_PERTURB_=198 QTEST_QEMU_IMG=./qemu-img QTEST_QEMU_BINARY=./qemu-system-x86_64 QTEST_QEMU_STORAGE_DAEMON_BINARY=./storage-daemon/qemu-storage-daemon /home/gs/gitlab/qemu/build/tests/qtest/qos-test --tap -k ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
stderr:
qemu-system-x86_64: unable to map backing store for guest RAM: Invalid argument
Broken pipe
../tests/qtest/libqtest.c:195: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)

TAP parsing error: Too few tests run (expected 119, got 60)


I also use V=2  to check.


 PYTHON=/home/gs/gitlab/qemu/build/pyvenv/bin/python3 G_TEST_DBUS_DAEMON=/home/gs/gitlab/qemu/tests/dbus-vmstate-daemon.sh QTEST_QEMU_IMG=./qemu-img V=2 QTEST_QEMU_BINARY=./qemu-system-x86_64 QTEST_QEMU_STORAGE_DAEMON_BINARY=./storage-daemon/qemu-storage-daemon MALLOC_PERTURB_=220 /home/gs/gitlab/qemu/build/tests/qtest/bios-tables-test --tap -k

I got the error:

...
Looking for expected file 'tests/data/acpi/pc/FACS'
Using expected file 'tests/data/acpi/pc/FACS'
Looking for expected file 'tests/data/acpi/pc/DSDT.acpihmat'
Using expected file 'tests/data/acpi/pc/DSDT.acpihmat'
ok 15 /x86_64/acpi/piix4/acpihmat
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-923048.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-923048.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -machine pc -accel kvm -accel tcg -net none  -object memory-backend-file,id=erstnvram,mem-path=/tmp/qemu-test-erst.N41SG2,size=0x10000,share=on -device acpi-erst,memdev=erstnvram -drive id=hd0,if=none,file=tests/acpi-test-disk-KIDwOM,format=raw -device ide-hd,drive=hd0  -accel qtest qemu-system-x86_64: unable to map backing store for guest RAM: Invalid argument
Broken pipe
../tests/qtest/libqtest.c:195: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
Aborted (core dumped)

is there need some  special  package for '-object memory-backend-file' ?

Thanks.
Song Gao


Reply via email to