mbox series

[PULL,00/18] testing, docs, semihosting move and guest-loader

Message ID 20210308135104.24903-1-alex.bennee@linaro.org
Headers show
Series testing, docs, semihosting move and guest-loader | expand

Message

Alex Bennée March 8, 2021, 1:50 p.m. UTC
The following changes since commit 91e92cad67caca3bc4b8e920ddb5c8ca64aac9e1:

  Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210305' into staging (2021-03-05 19:04:47 +0000)

are available in the Git repository at:

  https://github.com/stsquad/qemu.git tags/pull-testing-docs-xen-updates-080321-1

for you to fetch changes up to 8109b8cadf5979a29b4b6e1ca7288bc0ee676426:

  semihosting: Move hw/semihosting/ -> semihosting/ (2021-03-08 12:15:05 +0000)

----------------------------------------------------------------
Testing, guest-loader and other misc tweaks

  - add warning text to quickstart example
  - add support for hexagon check-tcg tests
  - add CFI tests to CI
  - use --arch-only for docker pre-requisites
  - fix .editorconfig for emacs
  - add guest-loader for Xen-like hypervisor testing
  - move generic-loader docs into manual proper
  - move semihosting out of hw/

----------------------------------------------------------------
Alessandro Di Federico (2):
      docker: Add Hexagon image
      tests/tcg: Use Hexagon Docker image

Alex Bennée (11):
      docs/system: add a gentle prompt for the complexity to come
      tests/docker: add a test-tcg for building then running check-tcg
      gitlab: add build-user-hexagon test
      .editorconfig: update the automatic mode setting for Emacs
      hw/board: promote fdt from ARM VirtMachineState to MachineState
      hw/riscv: migrate fdt field to generic MachineState
      device_tree: add qemu_fdt_setprop_string_array helper
      hw/core: implement a guest-loader to support static hypervisor guests
      docs: move generic-loader documentation into the main manual
      docs: add some documentation for the guest-loader
      tests/avocado: add boot_xen tests

Daniele Buono (2):
      gitlab-ci.yml: Allow custom # of parallel linkers
      gitlab-ci.yml: Add jobs to test CFI flags

Philippe Mathieu-Daudé (3):
      tests/docker: Use --arch-only when building Debian cross image
      semihosting: Move include/hw/semihosting/ -> include/semihosting/
      semihosting: Move hw/semihosting/ -> semihosting/

 docs/generic-loader.txt                            |  92 ------
 docs/system/generic-loader.rst                     | 117 +++++++
 docs/system/guest-loader.rst                       |  54 ++++
 docs/system/index.rst                              |   2 +
 docs/system/quickstart.rst                         |   8 +
 docs/system/targets.rst                            |   2 +
 meson.build                                        |   1 +
 hw/core/guest-loader.h                             |  34 ++
 include/hw/arm/virt.h                              |   1 -
 include/hw/boards.h                                |   1 +
 include/hw/riscv/virt.h                            |   1 -
 include/{hw => }/semihosting/console.h             |   0
 include/{hw => }/semihosting/semihost.h            |   0
 include/sysemu/device_tree.h                       |  17 +
 {hw/semihosting => semihosting}/common-semi.h      |   0
 gdbstub.c                                          |   2 +-
 hw/arm/virt.c                                      | 356 +++++++++++----------
 hw/core/guest-loader.c                             | 145 +++++++++
 hw/mips/malta.c                                    |   2 +-
 hw/riscv/virt.c                                    |  20 +-
 linux-user/aarch64/cpu_loop.c                      |   2 +-
 linux-user/arm/cpu_loop.c                          |   2 +-
 linux-user/riscv/cpu_loop.c                        |   2 +-
 linux-user/semihost.c                              |   2 +-
 {hw/semihosting => semihosting}/arm-compat-semi.c  |   6 +-
 {hw/semihosting => semihosting}/config.c           |   2 +-
 {hw/semihosting => semihosting}/console.c          |   4 +-
 softmmu/device_tree.c                              |  26 ++
 softmmu/vl.c                                       |   2 +-
 stubs/semihost.c                                   |   2 +-
 target/arm/helper.c                                |   4 +-
 target/arm/m_helper.c                              |   4 +-
 target/arm/translate-a64.c                         |   2 +-
 target/arm/translate.c                             |   2 +-
 target/lm32/helper.c                               |   2 +-
 target/m68k/op_helper.c                            |   2 +-
 target/mips/cpu.c                                  |   2 +-
 target/mips/mips-semi.c                            |   4 +-
 target/mips/translate.c                            |   2 +-
 target/nios2/helper.c                              |   2 +-
 target/riscv/cpu_helper.c                          |   2 +-
 target/unicore32/helper.c                          |   2 +-
 target/xtensa/translate.c                          |   2 +-
 target/xtensa/xtensa-semi.c                        |   2 +-
 .editorconfig                                      |  17 +-
 .gitlab-ci.yml                                     | 134 ++++++++
 Kconfig                                            |   1 +
 MAINTAINERS                                        |  15 +-
 hw/Kconfig                                         |   1 -
 hw/core/meson.build                                |   2 +
 hw/meson.build                                     |   1 -
 {hw/semihosting => semihosting}/Kconfig            |   0
 {hw/semihosting => semihosting}/meson.build        |   0
 tests/acceptance/boot_xen.py                       | 118 +++++++
 tests/docker/Makefile.include                      |   2 +
 .../docker/dockerfiles/debian-hexagon-cross.docker |  27 ++
 .../build-toolchain.sh                             | 141 ++++++++
 tests/docker/dockerfiles/debian10.docker           |   2 +-
 tests/docker/test-tcg                              |  22 ++
 tests/tcg/configure.sh                             |   4 +
 60 files changed, 1108 insertions(+), 318 deletions(-)
 delete mode 100644 docs/generic-loader.txt
 create mode 100644 docs/system/generic-loader.rst
 create mode 100644 docs/system/guest-loader.rst
 create mode 100644 hw/core/guest-loader.h
 rename include/{hw => }/semihosting/console.h (100%)
 rename include/{hw => }/semihosting/semihost.h (100%)
 rename {hw/semihosting => semihosting}/common-semi.h (100%)
 create mode 100644 hw/core/guest-loader.c
 rename {hw/semihosting => semihosting}/arm-compat-semi.c (99%)
 rename {hw/semihosting => semihosting}/config.c (99%)
 rename {hw/semihosting => semihosting}/console.c (98%)
 rename {hw/semihosting => semihosting}/Kconfig (100%)
 rename {hw/semihosting => semihosting}/meson.build (100%)
 create mode 100644 tests/acceptance/boot_xen.py
 create mode 100644 tests/docker/dockerfiles/debian-hexagon-cross.docker
 create mode 100755 tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh
 create mode 100755 tests/docker/test-tcg


-- 
2.20.1

Comments

no-reply@patchew.org March 8, 2021, 2:39 p.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20210308135104.24903-1-alex.bennee@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20210308135104.24903-1-alex.bennee@linaro.org
Subject: [PULL 00/18] testing, docs, semihosting move and guest-loader

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20210308135104.24903-1-alex.bennee@linaro.org -> patchew/20210308135104.24903-1-alex.bennee@linaro.org
Switched to a new branch 'test'
d4615d7 semihosting: Move hw/semihosting/ -> semihosting/
11ff336 semihosting: Move include/hw/semihosting/ -> include/semihosting/
6ff470d tests/avocado: add boot_xen tests
366972f docs: add some documentation for the guest-loader
2de6334 docs: move generic-loader documentation into the main manual
3540331 hw/core: implement a guest-loader to support static hypervisor guests
59152d4 device_tree: add qemu_fdt_setprop_string_array helper
5e73c0a hw/riscv: migrate fdt field to generic MachineState
97b2110 hw/board: promote fdt from ARM VirtMachineState to MachineState
8e087e0 .editorconfig: update the automatic mode setting for Emacs
b19b8a9 tests/docker: Use --arch-only when building Debian cross image
7904ddd gitlab-ci.yml: Add jobs to test CFI flags
c0b1a18 gitlab-ci.yml: Allow custom # of parallel linkers
06aaa2a gitlab: add build-user-hexagon test
6e13d36 tests/tcg: Use Hexagon Docker image
d1e83eb docker: Add Hexagon image
0cedc72 tests/docker: add a test-tcg for building then running check-tcg
1463a1a docs/system: add a gentle prompt for the complexity to come

=== OUTPUT BEGIN ===
1/18 Checking commit 1463a1add7ee (docs/system: add a gentle prompt for the complexity to come)
2/18 Checking commit 0cedc725cfc7 (tests/docker: add a test-tcg for building then running check-tcg)
Use of uninitialized value $acpi_testexpected in string eq at ./scripts/checkpatch.pl line 1529.
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#20: 
new file mode 100755

total: 0 errors, 1 warnings, 22 lines checked

Patch 2/18 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/18 Checking commit d1e83ebe6917 (docker: Add Hexagon image)
WARNING: line over 80 characters
#154: FILE: tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh:63:
+    -DCMAKE_ASM_FLAGS="-G0 -mlong-calls -fno-pic --target=hexagon-unknown-linux-musl " \

ERROR: line over 90 characters
#181: FILE: tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh:90:
+    CROSS_CFLAGS="-G0 -O0 -mv65 -fno-builtin -fno-rounding-math --target=hexagon-unknown-linux-musl" \

ERROR: line over 90 characters
#218: FILE: tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh:127:
+    CFLAGS="-G0 -O0 -mv65 -fno-builtin -fno-rounding-math --target=hexagon-unknown-linux-musl" \

total: 2 errors, 1 warnings, 184 lines checked

Patch 3/18 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

4/18 Checking commit 6e13d36db441 (tests/tcg: Use Hexagon Docker image)
5/18 Checking commit 06aaa2a233b0 (gitlab: add build-user-hexagon test)
6/18 Checking commit c0b1a1890207 (gitlab-ci.yml: Allow custom # of parallel linkers)
7/18 Checking commit 7904dddf9a7d (gitlab-ci.yml: Add jobs to test CFI flags)
8/18 Checking commit b19b8a9ffcc3 (tests/docker: Use --arch-only when building Debian cross image)
9/18 Checking commit 8e087e006cee (.editorconfig: update the automatic mode setting for Emacs)
10/18 Checking commit 97b211043a1b (hw/board: promote fdt from ARM VirtMachineState to MachineState)
11/18 Checking commit 5e73c0a7598b (hw/riscv: migrate fdt field to generic MachineState)
12/18 Checking commit 59152d4b2f5e (device_tree: add qemu_fdt_setprop_string_array helper)
13/18 Checking commit 354033138a38 (hw/core: implement a guest-loader to support static hypervisor guests)
14/18 Checking commit 2de63345e199 (docs: move generic-loader documentation into the main manual)
15/18 Checking commit 366972f9a48b (docs: add some documentation for the guest-loader)
16/18 Checking commit 6ff470d25fc6 (tests/avocado: add boot_xen tests)
WARNING: line over 80 characters
#96: FILE: tests/acceptance/boot_xen.py:56:
+                         'guest-loader,addr=0x47000000,kernel=%s,bootargs=console=hvc0'

WARNING: line over 80 characters
#118: FILE: tests/acceptance/boot_xen.py:78:
+                   'xen-hypervisor-4.11-arm64_4.11.4%2B37-g3263f257ca-1_arm64.deb')

WARNING: line over 80 characters
#136: FILE: tests/acceptance/boot_xen.py:96:
+                   'xen-hypervisor-4.14-arm64_4.14.0%2B80-gd101b417b7-1_arm64.deb')

total: 0 errors, 3 warnings, 125 lines checked

Patch 16/18 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
17/18 Checking commit 11ff336713dd (semihosting: Move include/hw/semihosting/ -> include/semihosting/)
18/18 Checking commit d4615d7502e5 (semihosting: Move hw/semihosting/ -> semihosting/)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20210308135104.24903-1-alex.bennee@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Peter Maydell March 9, 2021, 6:11 p.m. UTC | #2
On Mon, 8 Mar 2021 at 13:51, Alex Bennée <alex.bennee@linaro.org> wrote:
>

> The following changes since commit 91e92cad67caca3bc4b8e920ddb5c8ca64aac9e1:

>

>   Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210305' into staging (2021-03-05 19:04:47 +0000)

>

> are available in the Git repository at:

>

>   https://github.com/stsquad/qemu.git tags/pull-testing-docs-xen-updates-080321-1

>

> for you to fetch changes up to 8109b8cadf5979a29b4b6e1ca7288bc0ee676426:

>

>   semihosting: Move hw/semihosting/ -> semihosting/ (2021-03-08 12:15:05 +0000)

>

> ----------------------------------------------------------------

> Testing, guest-loader and other misc tweaks

>

>   - add warning text to quickstart example

>   - add support for hexagon check-tcg tests

>   - add CFI tests to CI

>   - use --arch-only for docker pre-requisites

>   - fix .editorconfig for emacs

>   - add guest-loader for Xen-like hypervisor testing

>   - move generic-loader docs into manual proper

>   - move semihosting out of hw/


Fails on x86-64 trying to do something with docker:

make: Entering directory
'/home/petmay01/linaro/qemu-for-merges/build/all-linux-static'
/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py --engine
auto build -t qemu/debian-hexagon-cross -f
/home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker
  --registry registry.gitlab.com/qemu-project/qemu --add-current-user
--extra-files /home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh
Using default tag: latest
latest: Pulling from qemu-project/qemu/qemu/debian10
Digest: sha256:4f96b88d2c3cf59d46d6173d86f240ef7b4f2b68509e6e5eec7b179aa1bfbf74
Status: Image is up to date for
registry.gitlab.com/qemu-project/qemu/qemu/debian10:latest
Using default tag: latest
latest: Pulling from qemu-project/qemu/qemu/debian-hexagon-cross
45b42c59be33: Already exists
7a55fd5ded7c: Already exists
[...]

40ae5f465547: Pull complete
Digest: sha256:c5f3e6f6a761c17570945059e60297352380379f9222fe444f998c6ea7e9d4ce
Status: Downloaded newer image for
registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross:latest

#1 [internal] load build definition from tmplp8d2u1p.docker
#1       digest:
sha256:639f37ba0ced2cf59254e62ec107d1d7ccd627d6876fb2b465f50c88c4baa44d
#1         name: "[internal] load build definition from tmplp8d2u1p.docker"
#1      started: 2021-03-09 16:53:55.092177401 +0000 UTC
#1    completed: 2021-03-09 16:53:55.092271396 +0000 UTC
#1     duration: 93.995µs
#1      started: 2021-03-09 16:53:55.092598107 +0000 UTC
#1    completed: 2021-03-09 16:53:55.188002068 +0000 UTC
#1     duration: 95.403961ms
#1 transferring dockerfile: 1.26kB done

[...]
#9 [internal] load build context
#9      started: 2021-03-09 16:53:56.338003711 +0000 UTC
#9    completed: 2021-03-09 16:53:56.42858509 +0000 UTC
#9     duration: 90.581379ms
#9 transferring context: 4.19kB done


#7 [2/6] RUN apt update &&     DEBIAN_FRONTEND=noninteractive eatmydata    ...
#7       digest:
sha256:d73bbaa9b5d86f286257ada3d545250e61e000c22c1f971f003578dc00661346
#7         name: "[2/6] RUN apt update &&
DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu"
#7      started: 2021-03-09 16:53:56.338854291 +0000 UTC
#7 0.553
#7 0.553 WARNING: apt does not have a stable CLI interface. Use with
caution in scripts.
#7 0.553
#7    completed: 2021-03-09 16:54:00.554068941 +0000 UTC
#7     duration: 4.21521465s
#7        error: "executor failed running [/bin/sh -c apt update &&
 DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu]:
exit code: 137: context canceled: context canceled"

error on cache query: invalid build cache from
{MediaType:application/vnd.docker.distribution.manifest.v2+json
Digest:sha256:c5f3e6f6a761c17570945059e60297352380379f9222fe444f998c6ea7e9d4ce
Size:2009 URLs:[] Annotations:map[] Platform:<nil>}
Traceback (most recent call last):
  File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",
line 720, in <module>
    sys.exit(main())
  File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",
line 716, in main
    return args.cmdobj.run(args, argv)
  File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",
line 512, in run
    extra_files_cksum=cksum)
  File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",
line 360, in build_image
    quiet=quiet)
  File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",
line 250, in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'build', '-t',
'qemu/debian-hexagon-cross', '-f',
'/tmp/docker_buildpuzztpb1/tmplp8d2u1p.docker', '--build-arg',
'BUILDKIT_INLINE_CACHE=1', '--cache-from',
'registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross',
'/tmp/docker_buildpuzztpb1']' returned non-zero exit status 1.
/home/petmay01/linaro/qemu-for-merges/tests/docker/Makefile.include:59:
recipe for target 'docker-image-debian-hexagon-cross' failed
make: *** [docker-image-debian-hexagon-cross] Error 1

thanks
-- PMM
Alex Bennée March 9, 2021, 6:37 p.m. UTC | #3
Peter Maydell <peter.maydell@linaro.org> writes:

> On Mon, 8 Mar 2021 at 13:51, Alex Bennée <alex.bennee@linaro.org> wrote:

>>

>> The following changes since commit 91e92cad67caca3bc4b8e920ddb5c8ca64aac9e1:

>>

>>   Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210305' into staging (2021-03-05 19:04:47 +0000)

>>

>> are available in the Git repository at:

>>

>>   https://github.com/stsquad/qemu.git tags/pull-testing-docs-xen-updates-080321-1

>>

>> for you to fetch changes up to 8109b8cadf5979a29b4b6e1ca7288bc0ee676426:

>>

>>   semihosting: Move hw/semihosting/ -> semihosting/ (2021-03-08 12:15:05 +0000)

>>

>> ----------------------------------------------------------------

>> Testing, guest-loader and other misc tweaks

>>

>>   - add warning text to quickstart example

>>   - add support for hexagon check-tcg tests

>>   - add CFI tests to CI

>>   - use --arch-only for docker pre-requisites

>>   - fix .editorconfig for emacs

>>   - add guest-loader for Xen-like hypervisor testing

>>   - move generic-loader docs into manual proper

>>   - move semihosting out of hw/

>

> Fails on x86-64 trying to do something with docker:

>

> make: Entering directory

> '/home/petmay01/linaro/qemu-for-merges/build/all-linux-static'

> /home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py --engine

> auto build -t qemu/debian-hexagon-cross -f

> /home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker

>   --registry registry.gitlab.com/qemu-project/qemu --add-current-user

> --extra-files /home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh

> Using default tag: latest

> latest: Pulling from qemu-project/qemu/qemu/debian10

> Digest: sha256:4f96b88d2c3cf59d46d6173d86f240ef7b4f2b68509e6e5eec7b179aa1bfbf74

> Status: Image is up to date for

> registry.gitlab.com/qemu-project/qemu/qemu/debian10:latest

> Using default tag: latest

> latest: Pulling from qemu-project/qemu/qemu/debian-hexagon-cross

> 45b42c59be33: Already exists

> 7a55fd5ded7c: Already exists

> [...]

>

> 40ae5f465547: Pull complete

> Digest: sha256:c5f3e6f6a761c17570945059e60297352380379f9222fe444f998c6ea7e9d4ce

> Status: Downloaded newer image for

> registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross:latest

>

> #1 [internal] load build definition from tmplp8d2u1p.docker

> #1       digest:

> sha256:639f37ba0ced2cf59254e62ec107d1d7ccd627d6876fb2b465f50c88c4baa44d

> #1         name: "[internal] load build definition from tmplp8d2u1p.docker"

> #1      started: 2021-03-09 16:53:55.092177401 +0000 UTC

> #1    completed: 2021-03-09 16:53:55.092271396 +0000 UTC

> #1     duration: 93.995µs

> #1      started: 2021-03-09 16:53:55.092598107 +0000 UTC

> #1    completed: 2021-03-09 16:53:55.188002068 +0000 UTC

> #1     duration: 95.403961ms

> #1 transferring dockerfile: 1.26kB done

>

> [...]

> #9 [internal] load build context

> #9      started: 2021-03-09 16:53:56.338003711 +0000 UTC

> #9    completed: 2021-03-09 16:53:56.42858509 +0000 UTC

> #9     duration: 90.581379ms

> #9 transferring context: 4.19kB done

>

>

> #7 [2/6] RUN apt update &&     DEBIAN_FRONTEND=noninteractive eatmydata    ...

> #7       digest:

> sha256:d73bbaa9b5d86f286257ada3d545250e61e000c22c1f971f003578dc00661346

> #7         name: "[2/6] RUN apt update &&

> DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu"

> #7      started: 2021-03-09 16:53:56.338854291 +0000 UTC

> #7 0.553

> #7 0.553 WARNING: apt does not have a stable CLI interface. Use with

> caution in scripts.

> #7 0.553

> #7    completed: 2021-03-09 16:54:00.554068941 +0000 UTC

> #7     duration: 4.21521465s

> #7        error: "executor failed running [/bin/sh -c apt update &&

>  DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu]:

> exit code: 137: context canceled: context canceled"

>

> error on cache query: invalid build cache from

> {MediaType:application/vnd.docker.distribution.manifest.v2+json

> Digest:sha256:c5f3e6f6a761c17570945059e60297352380379f9222fe444f998c6ea7e9d4ce

> Size:2009 URLs:[] Annotations:map[] Platform:<nil>}

> Traceback (most recent call last):

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 720, in <module>

>     sys.exit(main())

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 716, in main

>     return args.cmdobj.run(args, argv)

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 512, in run

>     extra_files_cksum=cksum)

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 360, in build_image

>     quiet=quiet)

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 250, in _do_check

>     return subprocess.check_call(self._command + cmd, **kwargs)

>   File "/usr/lib/python3.6/subprocess.py", line 311, in check_call

>     raise CalledProcessError(retcode, cmd)

> subprocess.CalledProcessError: Command '['docker', 'build', '-t',

> 'qemu/debian-hexagon-cross', '-f',

> '/tmp/docker_buildpuzztpb1/tmplp8d2u1p.docker', '--build-arg',

> 'BUILDKIT_INLINE_CACHE=1', '--cache-from',

> 'registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross',

> '/tmp/docker_buildpuzztpb1']' returned non-zero exit status 1.

> /home/petmay01/linaro/qemu-for-merges/tests/docker/Makefile.include:59:

> recipe for target 'docker-image-debian-hexagon-cross' failed

> make: *** [docker-image-debian-hexagon-cross] Error 1


Hmm that's weird. What machine are you running on?

>

> thanks

> -- PMM



-- 
Alex Bennée
Peter Maydell March 9, 2021, 9:33 p.m. UTC | #4
On Tue, 9 Mar 2021 at 18:38, Alex Bennée <alex.bennee@linaro.org> wrote:
>

>

> Peter Maydell <peter.maydell@linaro.org> writes:

> >

> > Fails on x86-64 trying to do something with docker:


> Hmm that's weird. What machine are you running on?


Ubuntu 18.04.5 LTS.

-- PMM
Philippe Mathieu-Daudé March 9, 2021, 10:26 p.m. UTC | #5
On 3/9/21 7:37 PM, Alex Bennée wrote:
> 

> Peter Maydell <peter.maydell@linaro.org> writes:

> 

>> On Mon, 8 Mar 2021 at 13:51, Alex Bennée <alex.bennee@linaro.org> wrote:

>>>

>>> The following changes since commit 91e92cad67caca3bc4b8e920ddb5c8ca64aac9e1:

>>>

>>>   Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210305' into staging (2021-03-05 19:04:47 +0000)

>>>

>>> are available in the Git repository at:

>>>

>>>   https://github.com/stsquad/qemu.git tags/pull-testing-docs-xen-updates-080321-1

>>>

>>> for you to fetch changes up to 8109b8cadf5979a29b4b6e1ca7288bc0ee676426:

>>>

>>>   semihosting: Move hw/semihosting/ -> semihosting/ (2021-03-08 12:15:05 +0000)

>>>

>>> ----------------------------------------------------------------

>>> Testing, guest-loader and other misc tweaks

>>>

>>>   - add warning text to quickstart example

>>>   - add support for hexagon check-tcg tests

>>>   - add CFI tests to CI

>>>   - use --arch-only for docker pre-requisites

>>>   - fix .editorconfig for emacs

>>>   - add guest-loader for Xen-like hypervisor testing

>>>   - move generic-loader docs into manual proper

>>>   - move semihosting out of hw/

>>

>> Fails on x86-64 trying to do something with docker:

>>

>> make: Entering directory

>> '/home/petmay01/linaro/qemu-for-merges/build/all-linux-static'

>> /home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py --engine

>> auto build -t qemu/debian-hexagon-cross -f

>> /home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker

>>   --registry registry.gitlab.com/qemu-project/qemu --add-current-user

>> --extra-files /home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh

>> Using default tag: latest

>> latest: Pulling from qemu-project/qemu/qemu/debian10

>> Digest: sha256:4f96b88d2c3cf59d46d6173d86f240ef7b4f2b68509e6e5eec7b179aa1bfbf74

>> Status: Image is up to date for

>> registry.gitlab.com/qemu-project/qemu/qemu/debian10:latest

>> Using default tag: latest

>> latest: Pulling from qemu-project/qemu/qemu/debian-hexagon-cross

>> 45b42c59be33: Already exists

>> 7a55fd5ded7c: Already exists

>> [...]

>>

>> 40ae5f465547: Pull complete

>> Digest: sha256:c5f3e6f6a761c17570945059e60297352380379f9222fe444f998c6ea7e9d4ce

>> Status: Downloaded newer image for

>> registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross:latest


^ until here, all good.

>>

>> #1 [internal] load build definition from tmplp8d2u1p.docker

>> #1       digest:

>> sha256:639f37ba0ced2cf59254e62ec107d1d7ccd627d6876fb2b465f50c88c4baa44d

>> #1         name: "[internal] load build definition from tmplp8d2u1p.docker"

>> #1      started: 2021-03-09 16:53:55.092177401 +0000 UTC

>> #1    completed: 2021-03-09 16:53:55.092271396 +0000 UTC

>> #1     duration: 93.995µs

>> #1      started: 2021-03-09 16:53:55.092598107 +0000 UTC

>> #1    completed: 2021-03-09 16:53:55.188002068 +0000 UTC

>> #1     duration: 95.403961ms

>> #1 transferring dockerfile: 1.26kB done

>>

>> [...]

>> #9 [internal] load build context

>> #9      started: 2021-03-09 16:53:56.338003711 +0000 UTC

>> #9    completed: 2021-03-09 16:53:56.42858509 +0000 UTC

>> #9     duration: 90.581379ms

>> #9 transferring context: 4.19kB done

>>

>>

>> #7 [2/6] RUN apt update &&     DEBIAN_FRONTEND=noninteractive eatmydata    ...

>> #7       digest:

>> sha256:d73bbaa9b5d86f286257ada3d545250e61e000c22c1f971f003578dc00661346

>> #7         name: "[2/6] RUN apt update &&

>> DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu"


^ why is that run?...

>> #7      started: 2021-03-09 16:53:56.338854291 +0000 UTC

>> #7 0.553

>> #7 0.553 WARNING: apt does not have a stable CLI interface. Use with

>> caution in scripts.

>> #7 0.553

>> #7    completed: 2021-03-09 16:54:00.554068941 +0000 UTC

>> #7     duration: 4.21521465s

>> #7        error: "executor failed running [/bin/sh -c apt update &&

>>  DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu]:

>> exit code: 137: context canceled: context canceled"


:/
Alex Bennée March 10, 2021, 10:41 a.m. UTC | #6
Peter Maydell <peter.maydell@linaro.org> writes:

> On Mon, 8 Mar 2021 at 13:51, Alex Bennée <alex.bennee@linaro.org> wrote:

>>

>> The following changes since commit 91e92cad67caca3bc4b8e920ddb5c8ca64aac9e1:

>>

>>   Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210305' into staging (2021-03-05 19:04:47 +0000)

>>

>> are available in the Git repository at:

>>

>>   https://github.com/stsquad/qemu.git tags/pull-testing-docs-xen-updates-080321-1

>>

>> for you to fetch changes up to 8109b8cadf5979a29b4b6e1ca7288bc0ee676426:

>>

>>   semihosting: Move hw/semihosting/ -> semihosting/ (2021-03-08 12:15:05 +0000)

>>

>> ----------------------------------------------------------------

>> Testing, guest-loader and other misc tweaks

>>

>>   - add warning text to quickstart example

>>   - add support for hexagon check-tcg tests

>>   - add CFI tests to CI

>>   - use --arch-only for docker pre-requisites

>>   - fix .editorconfig for emacs

>>   - add guest-loader for Xen-like hypervisor testing

>>   - move generic-loader docs into manual proper

>>   - move semihosting out of hw/

>

> Fails on x86-64 trying to do something with docker:

>

> make: Entering directory

> '/home/petmay01/linaro/qemu-for-merges/build/all-linux-static'

> /home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py --engine

> auto build -t qemu/debian-hexagon-cross -f

> /home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker

>   --registry registry.gitlab.com/qemu-project/qemu --add-current-user

> --extra-files /home/petmay01/linaro/qemu-for-merges/tests/docker/dockerfiles/debian-hexagon-cross.docker.d/build-toolchain.sh

> Using default tag: latest

> latest: Pulling from qemu-project/qemu/qemu/debian10

> Digest: sha256:4f96b88d2c3cf59d46d6173d86f240ef7b4f2b68509e6e5eec7b179aa1bfbf74

> Status: Image is up to date for

> registry.gitlab.com/qemu-project/qemu/qemu/debian10:latest

> Using default tag: latest

> latest: Pulling from qemu-project/qemu/qemu/debian-hexagon-cross

> 45b42c59be33: Already exists

> 7a55fd5ded7c: Already exists

> [...]

>

> 40ae5f465547: Pull complete

> Digest: sha256:c5f3e6f6a761c17570945059e60297352380379f9222fe444f998c6ea7e9d4ce

> Status: Downloaded newer image for

> registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross:latest

>

> #1 [internal] load build definition from tmplp8d2u1p.docker

> #1       digest:

> sha256:639f37ba0ced2cf59254e62ec107d1d7ccd627d6876fb2b465f50c88c4baa44d

> #1         name: "[internal] load build definition from tmplp8d2u1p.docker"

> #1      started: 2021-03-09 16:53:55.092177401 +0000 UTC

> #1    completed: 2021-03-09 16:53:55.092271396 +0000 UTC

> #1     duration: 93.995µs

> #1      started: 2021-03-09 16:53:55.092598107 +0000 UTC

> #1    completed: 2021-03-09 16:53:55.188002068 +0000 UTC

> #1     duration: 95.403961ms

> #1 transferring dockerfile: 1.26kB done

>

> [...]

> #9 [internal] load build context

> #9      started: 2021-03-09 16:53:56.338003711 +0000 UTC

> #9    completed: 2021-03-09 16:53:56.42858509 +0000 UTC

> #9     duration: 90.581379ms

> #9 transferring context: 4.19kB done

>

>

> #7 [2/6] RUN apt update &&     DEBIAN_FRONTEND=noninteractive eatmydata    ...

> #7       digest:

> sha256:d73bbaa9b5d86f286257ada3d545250e61e000c22c1f971f003578dc00661346

> #7         name: "[2/6] RUN apt update &&

> DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu"

> #7      started: 2021-03-09 16:53:56.338854291 +0000 UTC

> #7 0.553

> #7 0.553 WARNING: apt does not have a stable CLI interface. Use with

> caution in scripts.

> #7 0.553

> #7    completed: 2021-03-09 16:54:00.554068941 +0000 UTC

> #7     duration: 4.21521465s

> #7        error: "executor failed running [/bin/sh -c apt update &&

>  DEBIAN_FRONTEND=noninteractive eatmydata     apt build-dep -yy qemu]:

> exit code: 137: context canceled: context canceled"

>

> error on cache query: invalid build cache from

> {MediaType:application/vnd.docker.distribution.manifest.v2+json

> Digest:sha256:c5f3e6f6a761c17570945059e60297352380379f9222fe444f998c6ea7e9d4ce

> Size:2009 URLs:[] Annotations:map[] Platform:<nil>}

> Traceback (most recent call last):

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 720, in <module>

>     sys.exit(main())

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 716, in main

>     return args.cmdobj.run(args, argv)

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 512, in run

>     extra_files_cksum=cksum)

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 360, in build_image

>     quiet=quiet)

>   File "/home/petmay01/linaro/qemu-for-merges/tests/docker/docker.py",

> line 250, in _do_check

>     return subprocess.check_call(self._command + cmd, **kwargs)

>   File "/usr/lib/python3.6/subprocess.py", line 311, in check_call

>     raise CalledProcessError(retcode, cmd)

> subprocess.CalledProcessError: Command '['docker', 'build', '-t',

> 'qemu/debian-hexagon-cross', '-f',

> '/tmp/docker_buildpuzztpb1/tmplp8d2u1p.docker', '--build-arg',

> 'BUILDKIT_INLINE_CACHE=1', '--cache-from',

> 'registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross',

> '/tmp/docker_buildpuzztpb1']' returned non-zero exit status 1.

> /home/petmay01/linaro/qemu-for-merges/tests/docker/Makefile.include:59:

> recipe for target 'docker-image-debian-hexagon-cross' failed

> make: *** [docker-image-debian-hexagon-cross] Error 1


I think something has changed on Ubuntu, my system didn't have docker
but after auto-updating it appeared and was a snap:

  10:40 alex@bionic/x86_64  [user.static/testing/next] >which docker
  /snap/bin/docker

I had to pull the usual group shenanigans to enable:

   sudo addgroup --system docker
   sudo adduser $USER docker
   newgrp docker

And then restart it:

   snap disable docker
   snap enable docker

And then I get the same failure as you. Can you confirm the docker
version you have now?

  10:39 alex@bionic/x86_64  [user.static/testing/next] >docker version
  Client:
   Version:           19.03.13
   API version:       1.40
   Go version:        go1.13.15
   Git commit:        cd8016b6bc
   Built:             Fri Feb  5 15:56:39 2021
   OS/Arch:           linux/amd64
   Experimental:      false

  Server:
   Engine:
    Version:          19.03.13
    API version:      1.40 (minimum version 1.12)
    Go version:       go1.13.15
    Git commit:       bd33bbf
    Built:            Fri Feb  5 15:58:24 2021
    OS/Arch:          linux/amd64
    Experimental:     false
   containerd:
    Version:          v1.3.7
    GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
   runc:
    Version:          1.0.0-rc10
    GitCommit:
   docker-init:
    Version:          0.18.0
    GitCommit:        fec3683

-- 
Alex Bennée
Peter Maydell March 10, 2021, 11:10 a.m. UTC | #7
On Wed, 10 Mar 2021 at 10:44, Alex Bennée <alex.bennee@linaro.org> wrote:
> And then I get the same failure as you. Can you confirm the docker

> version you have now?


e104462:bionic:qemu$ docker version
Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        4c52b90
 Built:             Wed Jan  9 19:35:23 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:02:44 2019
  OS/Arch:          linux/amd64
  Experimental:     false

-- PMM
Alex Bennée March 10, 2021, 1:27 p.m. UTC | #8
Peter Maydell <peter.maydell@linaro.org> writes:

> On Wed, 10 Mar 2021 at 10:44, Alex Bennée <alex.bennee@linaro.org> wrote:

>> And then I get the same failure as you. Can you confirm the docker

>> version you have now?

>

> e104462:bionic:qemu$ docker version

> Client:

>  Version:           18.09.1

>  API version:       1.39

>  Go version:        go1.10.6

>  Git commit:        4c52b90

>  Built:             Wed Jan  9 19:35:23 2019

>  OS/Arch:           linux/amd64

>  Experimental:      false

>

> Server: Docker Engine - Community

>  Engine:

>   Version:          18.09.1

>   API version:      1.39 (minimum version 1.12)

>   Go version:       go1.10.6

>   Git commit:       4c52b90

>   Built:            Wed Jan  9 19:02:44 2019

>   OS/Arch:          linux/amd64

>   Experimental:     false


I swapped out the snap docker for the docker.io package from the
repository but it's still a newer version than yours:

  13:25 alex@bionic/x86_64  [user.static/testing/next] >docker version
  Client:
   Version:           19.03.6
   API version:       1.40
   Go version:        go1.12.17
   Git commit:        369ce74a3c
   Built:             Fri Dec 18 12:21:44 2020
   OS/Arch:           linux/amd64
   Experimental:      false

  Server:
   Engine:
    Version:          19.03.6
    API version:      1.40 (minimum version 1.12)
    Go version:       go1.12.17
    Git commit:       369ce74a3c
    Built:            Thu Dec 10 13:23:49 2020
    OS/Arch:          linux/amd64
    Experimental:     false
   containerd:
    Version:          1.3.3-0ubuntu1~18.04.4
    GitCommit:
   runc:
    Version:          spec: 1.0.1-dev
    GitCommit:
   docker-init:
    Version:          0.18.0
    GitCommit:

So I guess somehow we've regressed something that doesn't work on the
older version on your system. I can't recreate anything like your
failure unless I switch to the snap version (which I think is related to
visibility of file-systems from the snap) so perhaps we just need to
detect that somehow and disable docker support?

-- 
Alex Bennée
Philippe Mathieu-Daudé March 10, 2021, 1:53 p.m. UTC | #9
On 3/10/21 2:27 PM, Alex Bennée wrote:
> 

> Peter Maydell <peter.maydell@linaro.org> writes:

> 

>> On Wed, 10 Mar 2021 at 10:44, Alex Bennée <alex.bennee@linaro.org> wrote:

>>> And then I get the same failure as you. Can you confirm the docker

>>> version you have now?

>>

>> e104462:bionic:qemu$ docker version

>> Client:

>>  Version:           18.09.1

>>  API version:       1.39

>>  Go version:        go1.10.6

>>  Git commit:        4c52b90

>>  Built:             Wed Jan  9 19:35:23 2019

>>  OS/Arch:           linux/amd64

>>  Experimental:      false

>>

>> Server: Docker Engine - Community

>>  Engine:

>>   Version:          18.09.1

>>   API version:      1.39 (minimum version 1.12)

>>   Go version:       go1.10.6

>>   Git commit:       4c52b90

>>   Built:            Wed Jan  9 19:02:44 2019

>>   OS/Arch:          linux/amd64

>>   Experimental:     false

> 

> I swapped out the snap docker for the docker.io package from the

> repository but it's still a newer version than yours:

> 

>   13:25 alex@bionic/x86_64  [user.static/testing/next] >docker version

>   Client:

>    Version:           19.03.6

>    API version:       1.40

>    Go version:        go1.12.17

>    Git commit:        369ce74a3c

>    Built:             Fri Dec 18 12:21:44 2020

>    OS/Arch:           linux/amd64

>    Experimental:      false

> 

>   Server:

>    Engine:

>     Version:          19.03.6

>     API version:      1.40 (minimum version 1.12)

>     Go version:       go1.12.17

>     Git commit:       369ce74a3c

>     Built:            Thu Dec 10 13:23:49 2020

>     OS/Arch:          linux/amd64

>     Experimental:     false

>    containerd:

>     Version:          1.3.3-0ubuntu1~18.04.4

>     GitCommit:

>    runc:

>     Version:          spec: 1.0.1-dev

>     GitCommit:

>    docker-init:

>     Version:          0.18.0

>     GitCommit:

> 

> So I guess somehow we've regressed something that doesn't work on the

> older version on your system. I can't recreate anything like your

> failure unless I switch to the snap version (which I think is related to

> visibility of file-systems from the snap) so perhaps we just need to

> detect that somehow and disable docker support?


Why is Peter's Docker trying to rebuild the downloaded image?
Is it something the docker.py script is doing (like final step)
that invalidate the cache?

Peter, just to remove one variable from the equation, your system
RTC is correct?

Alex, why not simply remove the 2 Hexagon patches from your pullreq
until we figure this out?

Phil.
Alex Bennée March 10, 2021, 3:47 p.m. UTC | #10
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> On 3/10/21 2:27 PM, Alex Bennée wrote:

>> 

>> Peter Maydell <peter.maydell@linaro.org> writes:

>> 

>>> On Wed, 10 Mar 2021 at 10:44, Alex Bennée <alex.bennee@linaro.org> wrote:

>>>> And then I get the same failure as you. Can you confirm the docker

>>>> version you have now?

>>>

>>> e104462:bionic:qemu$ docker version

>>> Client:

>>>  Version:           18.09.1

>>>  API version:       1.39

>>>  Go version:        go1.10.6

>>>  Git commit:        4c52b90

>>>  Built:             Wed Jan  9 19:35:23 2019

>>>  OS/Arch:           linux/amd64

>>>  Experimental:      false

>>>

>>> Server: Docker Engine - Community

>>>  Engine:

>>>   Version:          18.09.1

>>>   API version:      1.39 (minimum version 1.12)

>>>   Go version:       go1.10.6

>>>   Git commit:       4c52b90

>>>   Built:            Wed Jan  9 19:02:44 2019

>>>   OS/Arch:          linux/amd64

>>>   Experimental:     false

>> 

>> I swapped out the snap docker for the docker.io package from the

>> repository but it's still a newer version than yours:

>> 

>>   13:25 alex@bionic/x86_64  [user.static/testing/next] >docker version

>>   Client:

>>    Version:           19.03.6

>>    API version:       1.40

>>    Go version:        go1.12.17

>>    Git commit:        369ce74a3c

>>    Built:             Fri Dec 18 12:21:44 2020

>>    OS/Arch:           linux/amd64

>>    Experimental:      false

>> 

>>   Server:

>>    Engine:

>>     Version:          19.03.6

>>     API version:      1.40 (minimum version 1.12)

>>     Go version:       go1.12.17

>>     Git commit:       369ce74a3c

>>     Built:            Thu Dec 10 13:23:49 2020

>>     OS/Arch:          linux/amd64

>>     Experimental:     false

>>    containerd:

>>     Version:          1.3.3-0ubuntu1~18.04.4

>>     GitCommit:

>>    runc:

>>     Version:          spec: 1.0.1-dev

>>     GitCommit:

>>    docker-init:

>>     Version:          0.18.0

>>     GitCommit:

>> 

>> So I guess somehow we've regressed something that doesn't work on the

>> older version on your system. I can't recreate anything like your

>> failure unless I switch to the snap version (which I think is related to

>> visibility of file-systems from the snap) so perhaps we just need to

>> detect that somehow and disable docker support?

>

> Why is Peter's Docker trying to rebuild the downloaded image?

> Is it something the docker.py script is doing (like final step)

> that invalidate the cache?

>

> Peter, just to remove one variable from the equation, your system

> RTC is correct?

>

> Alex, why not simply remove the 2 Hexagon patches from your pullreq

> until we figure this out?


Yeah I'm going to drop them for now. I think we need to:

 - ensure re-builds aren't triggered normally when they should be cached
   - I think this means the hexagon build should be standalone
   - possible also properly split using multi-stage builds
 - upload a NOUSER variant of the build (--add-user should be a local change)
 - detect snap versions of docker?   

>

> Phil.



-- 
Alex Bennée