Message ID | 20240102172239.69452-2-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | gitlab: Add config for Loongarch64 custom runner | expand |
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é <philmd@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
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é <philmd@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. 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 Thanks. Song Gao
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é <philmd@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
在 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é <philmd@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
On 11/1/24 13:05, gaosong wrote: > 在 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é <philmd@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? We need to follow this process: https://lore.kernel.org/qemu-devel/20240104160805.56856-1-philmd@linaro.org/
在 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é <philmd@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," Hi, We tested this on LoongArch host with the 5.10 kernel, (openEuler 22.03), x86_64 host with 5.10 kernel, (openEuler 22.03) x86_64 host with 5.15kernel , (Ubuntu 20.04.3 LTS) and didn't get any error. but the CI machine use the 6.7_rc4 kernel. we didn't update the x86_64 host kernel to tested this. Is it possible that the new kernel is causing the problem? > "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 > >
在 2024/1/12 下午5:52, gaosong 写道: > 在 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é <philmd@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," > Hi, > > We tested this on > LoongArch host with the 5.10 kernel, (openEuler 22.03), > x86_64 host with 5.10 kernel, (openEuler 22.03) > x86_64 host with 5.15kernel , (Ubuntu 20.04.3 LTS) > > and didn't get any error. > > but the CI machine use the 6.7_rc4 kernel. > we didn't update the x86_64 host kernel to tested this. > > Is it possible that the new kernel is causing the problem? > Hi, The kernel adds the patch[1] can fix this problem. [1] https://patchew.org/linux/20240106145501.3370364-1-chenhuacai@loongson.cn/ So Tested-by: Song Gao <gaosong@loongson.cn> Reviewed-by: Song Gao <gaosong@loongson.cn> Thanks. Song Gao >> "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 >> >> >
diff --git a/docs/devel/ci-jobs.rst.inc b/docs/devel/ci-jobs.rst.inc index 4c39cdb2d9..b821a33112 100644 --- a/docs/devel/ci-jobs.rst.inc +++ b/docs/devel/ci-jobs.rst.inc @@ -189,6 +189,12 @@ used as a gitlab-CI runner, you can set this variable to enable the tests that require this kind of host. The runner should be tagged with both "centos_stream_8" and "x86_64". +LOONGARCH64_RUNNER_AVAILABLE +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you've got access to a Loongarch64 host that can be used as a gitlab-CI +runner, you can set this variable to enable the tests that require this +kind of host. The runner should be tagged with "loongarch64". + CCACHE_DISABLE ~~~~~~~~~~~~~~ The jobs are configured to use "ccache" by default since this typically 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
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é <philmd@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