Re: [Qemu-devel] [RFC QEMU PATCH 0/8] Implement vNVDIMM for Xen HVM guest
Hi, Your series failed automatic build test. Please find the testing commands and their output below. If you have docker installed, you can probably reproduce it locally. Message-id: 20161010003423.4333-1-haozhong.zh...@intel.com Subject: [Qemu-devel] [RFC QEMU PATCH 0/8] Implement vNVDIMM for Xen HVM guest Type: series === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 make J=8 docker-test-quick@centos6 make J=8 docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 455b9b0 qmp: add a qmp command 'query-nvdimms' to get plugged NVDIMM devices bea844c xen-hvm: create hotplug memory region for HVM guest ba5ca9a hostmem: add a host memory backend for Xen 02dc103 nvdimm acpi: build and copy NVDIMM namespace devices to guest on Xen a3e39ca nvdimm acpi: build and copy NFIT to guest on Xen 1671ab8 nvdimm acpi: do not use fw_cfg on Xen f7fa2ca xen-hvm: add a function to copy ACPI to guest d6a1929 nvdimm: do not initialize label_data if label_size is zero === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into 'dtc'... Submodule path 'dtc': checked out '65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf' BUILD centos6 ARCHIVE qemu.tgz ARCHIVE dtc.tgz COPYRUNNER RUN test-quick in centos6 Packages installed: SDL-devel-1.2.14-7.el6_7.1.x86_64 ccache-3.1.6-2.el6.x86_64 epel-release-6-8.noarch gcc-4.4.7-17.el6.x86_64 git-1.7.1-4.el6_7.1.x86_64 glib2-devel-2.28.8-5.el6.x86_64 libfdt-devel-1.4.0-1.el6.x86_64 make-3.81-23.el6.x86_64 package g++ is not installed pixman-devel-0.32.8-1.el6.x86_64 tar-1.23-15.el6_8.x86_64 zlib-devel-1.2.3-29.el6.x86_64 Environment variables: PACKAGES=libfdt-devel ccache tar git make gcc g++ zlib-devel glib2-devel SDL-devel pixman-devel epel-release HOSTNAME=edbfa25803c4 TERM=xterm MAKEFLAGS= -j8 HISTSIZE=1000 J=8 USER=root CCACHE_DIR=/var/tmp/ccache EXTRA_CONFIGURE_OPTS= V= SHOW_ENV=1 MAIL=/var/spool/mail/root PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ LANG=en_US.UTF-8 TARGET_LIST= HISTCONTROL=ignoredups SHLVL=1 HOME=/root TEST_DIR=/tmp/qemu-test LOGNAME=root LESSOPEN=||/usr/bin/lesspipe.sh %s FEATURES= dtc DEBUG= G_BROKEN_FILENAMES=1 CCACHE_HASHDIR= _=/usr/bin/env Configure options: --enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install No C++ compiler available; disabling C++ specific optional code Install prefix/var/tmp/qemu-build/install BIOS directory/var/tmp/qemu-build/install/share/qemu binary directory /var/tmp/qemu-build/install/bin library directory /var/tmp/qemu-build/install/lib module directory /var/tmp/qemu-build/install/lib/qemu libexec directory /var/tmp/qemu-build/install/libexec include directory /var/tmp/qemu-build/install/include config directory /var/tmp/qemu-build/install/etc local state directory /var/tmp/qemu-build/install/var Manual directory /var/tmp/qemu-build/install/share/man ELF interp prefix /usr/gnemul/qemu-%M Source path /tmp/qemu-test/src C compilercc Host C compiler cc C++ compiler Objective-C compiler cc ARFLAGS rv CFLAGS-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g QEMU_CFLAGS -I/usr/include/pixman-1-pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g make make install install pythonpython -B smbd /usr/sbin/smbd module supportno host CPU x86_64 host big endian no target list x86_64-softmmu aarch64-softmmu tcg debug enabled no gprof enabled no sparse enabledno strip binariesyes profiler no static build no pixmansystem SDL support yes (1.2.14) GTK support no GTK GL supportno VTE support no TLS priority NORMAL GNUTLS supportno GNUTLS rndno libgcrypt no libgcrypt kdf no nettleno nettle kdfno libtasn1 no curses supportno virgl support no curl support no mingw32 support no Audio drivers oss Block whitelist (rw) Block whitelist (ro) VirtFS supportno VNC support yes VNC SASL support no VNC JPEG support no VNC PNG support no xen support no brlapi supportno bluez supportno Documentation no PIE
[Qemu-devel] [RFC QEMU PATCH 0/8] Implement vNVDIMM for Xen HVM guest
Overview This RFC QEMU patch series along with corresponding patch series of Xen, Linux kernel and ndctl implements vNVDIMM for Xen HVM guests. DSM (and hence labels) and hotplug are not supported by this patch series and will be implemented later. Design and Implementation = The complete design can be found at https://lists.xenproject.org/archives/html/xen-devel/2016-07/msg01921.html. All patch series can be found at Xen: https://github.com/hzzhan9/xen.git nvdimm-rfc-v1 QEMU: https://github.com/hzzhan9/qemu.git xen-nvdimm-rfc-v1 Linux kernel: https://github.com/hzzhan9/nvdimm.git xen-nvdimm-rfc-v1 ndctl:https://github.com/hzzhan9/ndctl.git pfn-xen-rfc-v1 QEMU, as the device model of Xen HVM domU, is responsible to 1) build NVDIMM ACPI tables and namsepace devices, and 2) find proper areas in the guest physical address space to place vNVDIMM devices. The backend resources of vNVDIMM are managed by Xen rather than QEMU. Patch 02 - 05 implement above 1). They implement a mechanism to pass guest ACPI tables and namespace devices to Xen guests. Patch 06 - 08 implement above 2). Because the backend resources of vNVDIMM devices for Xen guest is managed out of QEMU, we introduce a new host memory backend memory-backend-xen to be used with vNVDIMM devices. It basically plays as a placeholder, which can fit in the current pc-dimm code and only gets the guest address ranges of vNVDIMM devices. The guest address ranges as well as other information of vNVDIMM devices are passed to Xen via a new QMP command. Because labels are not supported for Xen guest now, Patch 01 is needed to avoid dereferencing the NULL pointer to non-existing label data. How to test === Please refer to the cover letter of Xen patch series "[RFC XEN PATCH 00/16] Add vNVDIMM support to HVM domains". Haozhong Zhang (8): 01/ nvdimm: do not initialize label_data if label_size is zero 02/ xen-hvm: add a function to copy ACPI to guest 03/ nvdimm acpi: do not use fw_cfg on Xen 04/ nvdimm acpi: build and copy NFIT to guest on Xen 05/ nvdimm acpi: build and copy NVDIMM namespace devices to guest on Xen 06/ hostmem: add a host memory backend for Xen 07/ xen-hvm: create hotplug memory region for HVM guest 08/ qmp: add a qmp command 'query-nvdimms' to get plugged NVDIMM devices backends/Makefile.objs | 1 + backends/hostmem-xen.c | 120 ++ backends/hostmem.c | 9 ++ docs/qmp-commands.txt | 36 +++ hw/acpi/aml-build.c | 11 ++- hw/acpi/nvdimm.c| 75 +- hw/i386/pc.c| 12 ++- hw/mem/nvdimm.c | 39 +++- hw/mem/pc-dimm.c| 5 +- include/hw/acpi/aml-build.h | 2 + include/hw/mem/nvdimm.h | 10 ++ include/hw/xen/xen.h| 8 ++ qapi-schema.json| 29 ++ xen-hvm.c | 235 14 files changed, 556 insertions(+), 36 deletions(-) create mode 100644 backends/hostmem-xen.c -- 2.10.1