Re: [Qemu-devel] [PATCH v2 0/2] hw/i386: Update FADT to Revision 3 (ACPI 2.0)
On 15 March 2017 at 08:29, Michael S. Tsirkin <m...@redhat.com> wrote: > > On Sat, Mar 11, 2017 at 10:06:22PM -0800, no-re...@patchew.org wrote: > > Hi, > > > > This 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. > > > > Type: series > > Subject: [Qemu-devel] [PATCH v2 0/2] hw/i386: Update FADT to Revision 3 > > (ACPI 2.0) > > Message-id: 1489298291-25154-1-git-send-email-p...@philjordan.eu > > LINKtests/check-qlist > > /tmp/qemu-test/src/tests/bios-tables-test.c: In function > > ‘test_acpi_fadt_table’: > > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > > make: *** [tests/bios-tables-test.o] Error 1 > > make: *** Waiting for unfinished jobs > > make: *** wait: No child processes. Stop. > > make[1]: *** [docker-run] Error 2 > > make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-c8855z5b/src' > > make: *** [docker-run-test-quick@centos6] Error 2 > > === OUTPUT END === > > Hi Phil, did you run make check? Please make sure it isn't > broken by any of your patches. Sorry for the noise - I originally wrote most of the patch weeks ago and on getting back to it forgot I hadn't sorted out the test situation. I've just posted version 3, which does indeed pass make check.
Re: [Qemu-devel] [PATCH v2 0/2] hw/i386: Update FADT to Revision 3 (ACPI 2.0)
On Sat, Mar 11, 2017 at 10:06:22PM -0800, no-re...@patchew.org wrote: > Hi, > > This 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. > > Type: series > Subject: [Qemu-devel] [PATCH v2 0/2] hw/i386: Update FADT to Revision 3 (ACPI > 2.0) > Message-id: 1489298291-25154-1-git-send-email-p...@philjordan.eu > LINKtests/check-qlist > /tmp/qemu-test/src/tests/bios-tables-test.c: In function > ‘test_acpi_fadt_table’: > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > /tmp/qemu-test/src/tests/bios-tables-test.c:171: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4’ > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > /tmp/qemu-test/src/tests/bios-tables-test.c:172: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4a’ > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > /tmp/qemu-test/src/tests/bios-tables-test.c:173: error: > ‘AcpiFadtDescriptorRev3’ has no member named ‘reserved4b’ > make: *** [tests/bios-tables-test.o] Error 1 > make: *** Waiting for unfinished jobs > make: *** wait: No child processes. Stop. > make[1]: *** [docker-run] Error 2 > make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-c8855z5b/src' > make: *** [docker-run-test-quick@centos6] Error 2 > === OUTPUT END === Hi Phil, did you run make check? Please make sure it isn't broken by any of your patches. > Test command exited with code: 2 > > > --- > Email generated automatically by Patchew [http://patchew.org/]. > Please send your feedback to patchew-de...@freelists.org
Re: [Qemu-devel] [PATCH v2 0/2] hw/i386: Update FADT to Revision 3 (ACPI 2.0)
Hi, This 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. Type: series Subject: [Qemu-devel] [PATCH v2 0/2] hw/i386: Update FADT to Revision 3 (ACPI 2.0) Message-id: 1489298291-25154-1-git-send-email-p...@philjordan.eu === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=16 make docker-test-quick@centos6 make docker-test-mingw@fedora make docker-test-build@min-glib === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 8ced515 hw/i386: Build-time assertion on pc/q35 reset register being identical. 61f42cf hw/i386: Use Rev3 FADT (ACPI 2.0) instead of Rev1 to improve guest OS support. === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into 'dtc'... Submodule path 'dtc': checked out 'fa8bc7f928ac25f23532afc8beb2073efc8fb063' BUILD centos6 make[1]: Entering directory `/var/tmp/patchew-tester-tmp-c8855z5b/src' ARCHIVE qemu.tgz ARCHIVE dtc.tgz COPYRUNNER RUN test-quick in qemu: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=3e9c368bf5ae TERM=xterm MAKEFLAGS= -j16 HISTSIZE=1000 J=16 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 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -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 -Wno-missing-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 yes vde support no netmap supportno Linux AIO support no ATTR/XATTR support yes Install blobs yes KVM support yes HAX support no RDMA
[Qemu-devel] [PATCH v2 0/2] hw/i386: Update FADT to Revision 3 (ACPI 2.0)
This updates the FADT generated for x86/64 machine types from Revision 1 to 3. (Based on ACPI standard 2.0 instead of 1.0) As previously, the goal is to make running macOS/OS X guests smoother. With a Rev1 FADT, rebooting such a guest doesn't work, as the OS uses the reset register information from the FADT. Switching to a Rev3 (ACPI 2.0) FADT solves this problem. The previous discussion of this raised a bunch of points, which I'll address/clarify here as well: 1. No runtime option. The preference was expressed that we try to stay backwards-compatible with legacy guests as opposed to adding a runtime option for different APCI versions. ACPI 2.0/FADT Rev3 is the minimum version required for exposing the reset register, and it is also backwards-compatible with 1.0/Rev1, so that seemed a good version to target. 2. Legacy guest testing. I've tested this successfully (no apparent regressions) with: * Windows XP x86 (both "pc" and "q35" machine types, the latter using -device piix4-ide) * Windows 7, both 32-bit and 64-bit editions * Windows 10 x64 * Fedora 7 x86 Live image * Fedora 25 x86_64 Live image * Ubuntu 10.04.4 AMD64 Live image Any other specific OSes and versions I should check? 3. 64-bit and 32-bit pointer fields. Only very recent versions of the ACPI spec (6.1 and various errata of 5.1 and 6.0) are clear about mutual exclusion of the FADT's 32-bit and 64-bit variants of pointers to tables and registers. The 2.0 version simply states "This is a required field" for both PM1a_EVT_BLK and X_PM1a_EVT_BLK, for example, although it does also state for the former that "This field is superseded in ACPI 2.0 by the X_PM1a_EVT_BLK field." No requirement is specified explicitly for the DSDT and X_DSDT fields. In practice, I have found that Windows 10 will fail to boot with a Rev3 FADT unless BOTH the 32-bit and 64-bit variants are filled. The exception is X_FIRMWARE_CTRL, which is the first to be explicitly marked as mutually exclusive with FIRMWARE_CTRL in an ACPI spec - with a preference for FIRMWARE_CTRL if the pointer fits in a 32-bit field. Satisfying Windows 10 in this way does not contradict the 2.0 specification, and it also complies with the 1.0 standard for the fields which Rev1 of the FADT already has, so that's what I've gone with in the implementation. The only problem is that upstream OVMF cannot deal with multiple pointers to the same table in the linker commands. This turns out to be a bug in OVMF/EDK2[1], and I am submitting a separate patch to EDK2 to fix that problem. The fix for a second issue where OVMF would rewrite the FADT so the DSDT is erroneously set to 0 has already been upstreamed.[2] I don't see a workaround to this other than fixing the OVMF code. 4. i440FX vs Q35 Both machine types have the reset register, and it's at the same I/O port. To illustrate/document this, the second patch in the series adds a build-time assertion that this is indeed so. Changelog = v1 -> v2: * v1 Thread was "[PATCH RFC] acpi: add reset register to fadt" * Instead of just adding the reset register, set up a fully standards compliant Rev3 FADT. (ACPI 2.0) * A compile-time assertion has been added for the PC/Q35 reset register equivalence. [1]: https://bugzilla.tianocore.org/show_bug.cgi?id=368 [2]: EDK2 commit range e0e1cfcbbb24..198a46d768fb Phil Dennis-Jordan (2): hw/i386: Use Rev3 FADT (ACPI 2.0) instead of Rev1 to improve guest OS support. hw/i386: Build-time assertion on pc/q35 reset register being identical. hw/i386/acpi-build.c| 35 +++-- hw/pci-host/piix.c | 6 include/hw/acpi/acpi-defs.h | 77 + include/hw/i386/pc.h| 6 tests/bios-tables-test.c| 4 +-- 5 files changed, 76 insertions(+), 52 deletions(-) -- 2.3.2 (Apple Git-55)