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/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
--
2.41.0
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,"
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
>>
>>
>
在 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/
© 2016 - 2026 Red Hat, Inc.