Re: [PATCH] accel: Move Xen accelerator code under accel/xen/
On 5/7/20 5:58 PM, Philippe Mathieu-Daudé wrote: This code is not related to hardware emulation. Move it under accel/ with the other hypervisors. Signed-off-by: Philippe Mathieu-Daudé --- We could also move the memory management functions from hw/i386/xen/xen-hvm.c but it is not trivial. Necessary step to remove "exec/ram_addr.h" in the next series. --- include/exec/ram_addr.h| 2 +- include/hw/xen/xen.h | 11 -- include/sysemu/xen.h | 40 ++ hw/xen/xen-common.c => accel/xen/xen-all.c | 3 ++ hw/acpi/piix4.c| 2 +- hw/i386/pc.c | 1 + hw/i386/pc_piix.c | 1 + hw/i386/pc_q35.c | 1 + hw/i386/xen/xen-hvm.c | 1 + hw/i386/xen/xen_platform.c | 1 + hw/isa/piix3.c | 1 + hw/pci/msix.c | 1 + migration/savevm.c | 2 +- softmmu/vl.c | 2 +- stubs/xen-hvm.c| 9 - target/i386/cpu.c | 2 +- MAINTAINERS| 2 ++ accel/Makefile.objs| 1 + accel/xen/Makefile.objs| 1 + hw/xen/Makefile.objs | 2 +- 20 files changed, 60 insertions(+), 26 deletions(-) create mode 100644 include/sysemu/xen.h rename hw/xen/xen-common.c => accel/xen/xen-all.c (99%) create mode 100644 accel/xen/Makefile.objs diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h index 5e59a3d8d7..4e05292f91 100644 --- a/include/exec/ram_addr.h +++ b/include/exec/ram_addr.h @@ -21,7 +21,7 @@ #ifndef CONFIG_USER_ONLY #include "cpu.h" -#include "hw/xen/xen.h" +#include "sysemu/xen.h" #include "sysemu/tcg.h" #include "exec/ramlist.h" #include "exec/ramblock.h" diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h index 5ac1c6dc55..771dd447f2 100644 --- a/include/hw/xen/xen.h +++ b/include/hw/xen/xen.h @@ -20,13 +20,6 @@ extern uint32_t xen_domid; extern enum xen_mode xen_mode; extern bool xen_domid_restrict; -extern bool xen_allowed; - -static inline bool xen_enabled(void) -{ -return xen_allowed; -} - int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num); void xen_piix3_set_irq(void *opaque, int irq_num, int level); void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int len); @@ -39,10 +32,6 @@ void xenstore_store_pv_console_info(int i, struct Chardev *chr); void xen_hvm_init(PCMachineState *pcms, MemoryRegion **ram_memory); -void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, - struct MemoryRegion *mr, Error **errp); -void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length); - void xen_register_framebuffer(struct MemoryRegion *mr); #endif /* QEMU_HW_XEN_H */ diff --git a/include/sysemu/xen.h b/include/sysemu/xen.h new file mode 100644 index 00..609d2d4184 --- /dev/null +++ b/include/sysemu/xen.h @@ -0,0 +1,40 @@ +/* + * QEMU Xen support + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#ifndef SYSEMU_XEN_H +#define SYSEMU_XEN_H + +#ifdef CONFIG_XEN + +extern bool xen_allowed; + +#define xen_enabled() (xen_allowed) + +#ifndef CONFIG_USER_ONLY +void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length); +void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, + struct MemoryRegion *mr, Error **errp); +#endif + +#else /* !CONFIG_XEN */ + +#define xen_enabled() 0 +#ifndef CONFIG_USER_ONLY +static inline void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length) +{ +abort(); +} +static inline void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, + MemoryRegion *mr, Error **errp) +{ +abort(); +} +#endif Unfortunately this triggers: #1 0x7fca778a5895 abort (libc.so.6) #2 0x55f51ebd3e12 xen_hvm_modified_memory (qemu-system-aarch64) #3 0x55f51ebd44c9 cpu_physical_memory_set_dirty_range (qemu-system-aarch64) #4 0x55f51ebd9de4 ram_block_add (qemu-system-aarch64) #5 0x55f51ebda2e3 qemu_ram_alloc_internal (qemu-system-aarch64) #6 0x55f51ebda3be qemu_ram_alloc (qemu-system-aarch64) #7 0x55f51ec3db9b memory_region_init_ram_shared_nomigrate (qemu-system-aarch64) #8 0x55f51ef089e6 ram_backend_memory_alloc (qemu-system-aarch64) #9 0x55f51ef081ae host_memory_backend_memory_complete (qemu-system-aarch64) #10 0x55f51f2b624b user_creatable_complete (qemu-system-aarch64) #11 0x55f51ed93382 create_default_memdev (qemu-system-aarch64) #12 0x55f51ed96d1a qemu_init (qemu-system-aarch64) #13 0x55f51f3b14bb main (qemu-system-aarch64) #14 0x7fca778a6f43 __libc_start_main (libc.so.6) #15 0x0
Re: [PATCH] accel: Move Xen accelerator code under accel/xen/
Patchew URL: https://patchew.org/QEMU/20200507155813.16169-1-phi...@redhat.com/ Hi, This series failed the docker-quick@centos7 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash make docker-image-centos7 V=1 NETWORK=1 time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1 === TEST SCRIPT END === /tmp/qemu-test/src/tests/qtest/libqtest.c:175: kill_qemu() detected QEMU death from signal 6 (Aborted) (core dumped) TESTcheck-unit: tests/check-qdict TESTiotest-qcow2: 007 ERROR - too few tests run (expected 5, got 0) make: *** [check-qtest-aarch64] Error 1 make: *** Waiting for unfinished jobs TESTcheck-qtest-x86_64: tests/qtest/fdc-test TESTcheck-unit: tests/check-block-qdict --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=e594b974940444968b77f9424310ca3c', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-p2n4ope2/src/docker-src.2020-05-08-01.15.14.21618:/var/tmp/qemu:z,ro', 'qemu:centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=e594b974940444968b77f9424310ca3c make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-p2n4ope2/src' make: *** [docker-run-test-quick@centos7] Error 2 real13m16.276s user0m8.185s The full log is available at http://patchew.org/logs/20200507155813.16169-1-phi...@redhat.com/testing.docker-quick@centos7/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-de...@redhat.com
RE: [PATCH] accel: Move Xen accelerator code under accel/xen/
> -Original Message- > From: Philippe Mathieu-Daudé > Sent: 07 May 2020 16:58 > To: qemu-devel@nongnu.org > Cc: Philippe Mathieu-Daudé ; > xen-de...@lists.xenproject.org; Stefano Stabellini > ; Aleksandar Markovic > ; Aurelien Jarno > ; Paolo Bonzini ; Igor Mammedov > ; > Eduardo Habkost ; Richard Henderson ; > Marcel Apfelbaum > ; Dr. David Alan Gilbert ; > Juan Quintela > ; Michael S. Tsirkin ; Paul Durrant > ; Anthony > Perard > Subject: [PATCH] accel: Move Xen accelerator code under accel/xen/ > > This code is not related to hardware emulation. > Move it under accel/ with the other hypervisors. > > Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Paul Durrant