mbox series

[RFC,00/15] Xen guest-loader and arm64 build fixes/enhancements

Message ID 20201105175153.30489-1-alex.bennee@linaro.org
Headers show
Series Xen guest-loader and arm64 build fixes/enhancements | expand

Message

Alex Bennée Nov. 5, 2020, 5:51 p.m. UTC
Hi,

There are two parts to this series, broadly related because they are
all to do with Xen. The first half is a re-spin of the guest-loader
patches from a few weeks ago. The only changes are to move the
generic-loader documentation into the manual and then add some words
about the guest-loader.

The second half of the series is an attempt to fix and then clean up
the handling of Xen enabled builds. Recent changes to the build system
broke the ability to build qemu-system-i386 on arm64 hosts with Xen
support enabled. The actual fix for that:

  meson.build: fix building of Xen support for aarch64

should probably be rolled into the current release as it fixes a
regression. The rest can wait until the tree re-opens. The patches
broadly try to:

  - clean-up detection and reporting
  - be more explicit about linking stubs for accel
  - add an explicit CONFIG_XEN_HVM for x86

and finally allow you to build a qemu-system-aarch64 with Xen support.

This is my first major foray into tweaking meson builds and it seems
to occasionally come unstuck and requires a distclean and re-configure
to un-wedge itself. The following need review:

  - meson.build: build a Xen aware qemu-aarch64-system
  - xen: only build HVM support under CONFIG_XEN_HVM
  - accel/stubs: drop unused cpu.h include
  - stubs/xen-hw-stub: drop xenstore_store_pv_console_info stub
  - include/hw/xen.h: drop superfluous struct
  - meson.build: clean-up summary reporting of XEN and it's features
  - meson.build: introduce CONFIG_XEN_HVM flag
  - meson.build: fix building of Xen support for aarch64
  - accel/meson: you only need accelerator stubs for softmmu builds
  - docs: add some documentation for the guest-loader
  - docs: move generic-loader documentation into the main manual


Alex Bennée (15):
  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
  accel/meson: you only need accelerator stubs for softmmu builds
  meson.build: fix building of Xen support for aarch64
  meson.build: introduce CONFIG_XEN_HVM flag
  meson.build: clean-up summary reporting of XEN and it's features
  include/hw/xen.h: drop superfluous struct
  stubs/xen-hw-stub: drop xenstore_store_pv_console_info stub
  accel/stubs: drop unused cpu.h include
  xen: only build HVM support under CONFIG_XEN_HVM
  meson.build: build a Xen aware qemu-aarch64-system

 docs/generic-loader.txt        |  92 ----------
 docs/system/generic-loader.rst | 117 ++++++++++++
 docs/system/guest-loader.rst   |  54 ++++++
 docs/system/index.rst          |   2 +
 meson.build                    |  24 ++-
 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/xen/xen.h           |   2 +-
 include/sysemu/device_tree.h   |  17 ++
 include/sysemu/xen-mapcache.h  |   2 +-
 include/sysemu/xen.h           |   9 +-
 accel/stubs/hax-stub.c         |   1 -
 accel/stubs/xen-all-stub.c     |  11 ++
 accel/stubs/xen-stub.c         |   2 -
 hw/arm/virt.c                  | 322 +++++++++++++++++----------------
 hw/core/guest-loader.c         | 140 ++++++++++++++
 hw/riscv/virt.c                |  20 +-
 softmmu/device_tree.c          |  26 +++
 stubs/xen-hw-stub.c            |   4 -
 accel/Kconfig                  |   3 +
 accel/meson.build              |   4 +-
 accel/stubs/meson.build        |  13 +-
 hw/core/meson.build            |   2 +
 hw/i386/xen/meson.build        |   2 +-
 26 files changed, 627 insertions(+), 279 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
 create mode 100644 accel/stubs/xen-all-stub.c
 create mode 100644 hw/core/guest-loader.c

Comments

no-reply@patchew.org Nov. 5, 2020, 6:15 p.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20201105175153.30489-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: 20201105175153.30489-1-alex.bennee@linaro.org
Subject: [RFC PATCH 00/15] Xen guest-loader and arm64 build fixes/enhancements

=== 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/20201105175153.30489-1-alex.bennee@linaro.org -> patchew/20201105175153.30489-1-alex.bennee@linaro.org
Switched to a new branch 'test'
27a1c8e meson.build: build a Xen aware qemu-aarch64-system
c2531b0 xen: only build HVM support under CONFIG_XEN_HVM
a4e2d49 accel/stubs: drop unused cpu.h include
8e6bdd0 stubs/xen-hw-stub: drop xenstore_store_pv_console_info stub
c89ecab include/hw/xen.h: drop superfluous struct
f76f5a8 meson.build: clean-up summary reporting of XEN and it's features
739b93f meson.build: introduce CONFIG_XEN_HVM flag
e739aac meson.build: fix building of Xen support for aarch64
f28183e accel/meson: you only need accelerator stubs for softmmu builds
8227889 docs: add some documentation for the guest-loader
5d2e6b4 docs: move generic-loader documentation into the main manual
97eabd7 hw/core: implement a guest-loader to support static hypervisor guests
d3af3c7 device_tree: add qemu_fdt_setprop_string_array helper
57bb510 hw/riscv: migrate fdt field to generic MachineState
4d28909 hw/board: promote fdt from ARM VirtMachineState to MachineState

=== OUTPUT BEGIN ===
1/15 Checking commit 4d289091b31a (hw/board: promote fdt from ARM VirtMachineState to MachineState)
2/15 Checking commit 57bb510cbd7f (hw/riscv: migrate fdt field to generic MachineState)
3/15 Checking commit d3af3c7f5650 (device_tree: add qemu_fdt_setprop_string_array helper)
WARNING: line over 80 characters
#66: FILE: softmmu/device_tree.c:406:
+int qemu_fdt_setprop_string_array(void *fdt, const char *node_path, const char *prop,

total: 0 errors, 1 warnings, 61 lines checked

Patch 3/15 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
4/15 Checking commit 97eabd73472c (hw/core: implement a guest-loader to support static hypervisor guests)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#23: 
new file mode 100644

WARNING: line over 80 characters
#69: FILE: hw/core/guest-loader.c:42:
+static void loader_insert_platform_data(GuestLoaderState *s, int size, Error **errp)

ERROR: Don't use '#' flag of printf format ('%#') in format strings, use '0x' prefix instead
#73: FILE: hw/core/guest-loader.c:46:
+    g_autofree char *node = g_strdup_printf("/chosen/module@%#08lx", s->addr);

WARNING: line over 80 characters
#87: FILE: hw/core/guest-loader.c:60:
+            (fdt, node, "compatible", (char **) &compat, ARRAY_SIZE(compat)) < 0) {

ERROR: "foo * bar" should be "foo *bar"
#97: FILE: hw/core/guest-loader.c:70:
+        const char * compat[2] = { "multiboot,module", "multiboot,ramdisk" };

WARNING: line over 80 characters
#99: FILE: hw/core/guest-loader.c:72:
+            (fdt, node, "compatible", (char **) &compat, ARRAY_SIZE(compat)) < 0) {

WARNING: line over 80 characters
#114: FILE: hw/core/guest-loader.c:87:
+        error_setg(errp, "Cannot specify a kernel and initrd in the same stanza");

total: 2 errors, 5 warnings, 182 lines checked

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

5/15 Checking commit 5d2e6b45a0ff (docs: move generic-loader documentation into the main manual)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#15: 
deleted file mode 100644

ERROR: trailing whitespace
#204: FILE: docs/system/generic-loader.rst:87:
+  $

total: 1 errors, 1 warnings, 124 lines checked

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

6/15 Checking commit 82278896e117 (docs: add some documentation for the guest-loader)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#11: 
new file mode 100644

total: 0 errors, 1 warnings, 61 lines checked

Patch 6/15 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/15 Checking commit f28183e58873 (accel/meson: you only need accelerator stubs for softmmu builds)
8/15 Checking commit e739aac98546 (meson.build: fix building of Xen support for aarch64)
9/15 Checking commit 739b93f74453 (meson.build: introduce CONFIG_XEN_HVM flag)
10/15 Checking commit f76f5a8ae6f4 (meson.build: clean-up summary reporting of XEN and it's features)
11/15 Checking commit c89ecab617c8 (include/hw/xen.h: drop superfluous struct)
12/15 Checking commit 8e6bdd0b268e (stubs/xen-hw-stub: drop xenstore_store_pv_console_info stub)
13/15 Checking commit a4e2d49e005e (accel/stubs: drop unused cpu.h include)
14/15 Checking commit c2531b00f4b8 (xen: only build HVM support under CONFIG_XEN_HVM)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#29: 
new file mode 100644

total: 0 errors, 1 warnings, 66 lines checked

Patch 14/15 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
15/15 Checking commit 27a1c8ef9d5d (meson.build: build a Xen aware qemu-aarch64-system)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20201105175153.30489-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