[Xen-devel] [xen-unstable bisection] complete test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm
branch xen-unstable xenbranch xen-unstable job test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm testid debian-hvm-install Tree: linux git://xenbits.xen.org/linux-pvops.git Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git Tree: qemu git://xenbits.xen.org/qemu-xen-traditional.git Tree: qemuu git://xenbits.xen.org/qemu-xen.git Tree: xen git://xenbits.xen.org/xen.git *** Found and reproduced problem changeset *** Bug is in tree: xen git://xenbits.xen.org/xen.git Bug introduced: 0897514b4b376a167f968f79c6ea0dee1061458e Bug not present: 4000a7c7d7b0e01837abd3918e393f289c07d68c Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/101803/ commit 0897514b4b376a167f968f79c6ea0dee1061458e Author: Andrew CooperDate: Wed Oct 26 10:34:21 2016 +0100 tools/oxenstored: Avoid allocating invalid transaction ids The transaction id of 0 is reserved, meaning "not in a transaction". It is up to the xenstored server to allocate transaction ids. While oxenstored starts its ids at 1, but insufficient care is taken with truncation cases. A 32bit oxenstored has an int with 31 bits of width, meaning that the transaction id will wrap around to 0 after 2 billion transactions. A 64bit oxenstored has an int with 63 bits of width, meaning that once 4 billion transactions are used, the allocated id will be truncated when written into the uin32_t field in the ring. This causes the client to reply with the truncated id, breaking any further attempt to use any transactions. Limit all transaction ids to the range between 1 and 0x7ffe. This is the best which can be done without making oxenstored depend on Stdint or Cstruct, yet still work for 32bit builds. Also check that the proposed new transaction id isn't currently in use. For the first 2 billion transactions there is no chance of a collision, and after that, the chance is at most 20 (the default open transaction quota) in 2 billion. Signed-off-by: Andrew Cooper Acked-by: David Scott Release-acked-by: Wei Liu For bisection revision-tuple graph see: http://logs.test-lab.xenproject.org/osstest/results/bisect/xen-unstable/test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install.html Revision IDs in each graph node refer, respectively, to the Trees above. Running cs-bisection-step --graph-out=/home/logs/results/bisect/xen-unstable/test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm.debian-hvm-install --summary-out=tmp/101803.bisection-summary --basis-template=101673 --blessings=real,real-bisect xen-unstable test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm debian-hvm-install Searching for failure / basis pass: 101780 fail [host=nobling0] / 101673 [host=nobling1] 101654 [host=chardonnay0] 101644 [host=fiano1] 101626 [host=nocera0] 101601 [host=elbling1] 101590 [host=italia0] 101571 [host=elbling0] 101563 [host=pinot0] 101555 [host=chardonnay1] 101546 [host=italia1] 101533 [host=baroque0] 101510 [host=huxelrebe1] 101496 [host=fiano0] 101491 [host=baroque1] 101484 [host=chardonnay0] 101475 [host=huxelrebe0] 101440 [host=fiano1] 101429 [host=elbling1] 101415 [host=italia1] 101396 [host=italia0] 101383 [host=nobling1] 101379 [host=elbling0] 101372 [host=chardonnay1] 101364 ok. Failure / basis pass flights: 101780 / 101364 (tree with no url: minios) (tree with no url: ovmf) (tree with no url: seabios) Tree: linux git://xenbits.xen.org/linux-pvops.git Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git Tree: qemu git://xenbits.xen.org/qemu-xen-traditional.git Tree: qemuu git://xenbits.xen.org/qemu-xen.git Tree: xen git://xenbits.xen.org/xen.git Latest b65f2f457c49b2cfd7967c34b7a0b04c25587f13 c530a75c1e6a472b0eb9558310b518f0dfcd8860 c4e0d84d3c92923fdbc7fa922638d54e5e834753 6cfcdf037edadba984ccf8476b5d1e2a0940b789 35ac0c08178ac15565b32ca56b00fa5414f1d3b1 Basis pass b65f2f457c49b2cfd7967c34b7a0b04c25587f13 c530a75c1e6a472b0eb9558310b518f0dfcd8860 c4e0d84d3c92923fdbc7fa922638d54e5e834753 570117996772b762e9654e58e708943a4db68b4f 68dc7185cbffab34211c77339874f2ea517990fd Generating revisions with ./adhoc-revtuple-generator git://xenbits.xen.org/linux-pvops.git#b65f2f457c49b2cfd7967c34b7a0b04c25587f13-b65f2f457c49b2cfd7967c34b7a0b04c25587f13 git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860 git://xenbits.xen.org/qemu-xen-traditional.git#c4e0d84d3c92923fdbc7fa922638d54e5e834753-c4e0d84d3c92923fdbc7fa922638d54e5e834753 git://xenbits.xen.org/qemu-xen.git#570117996772b762e9654e58e708943a4db68b4f-6cfcdf037edadba984ccf8476b5d1e2a0940b789
[Xen-devel] [linux-3.10 test] 101783: regressions - FAIL
flight 101783 linux-3.10 real [real] http://logs.test-lab.xenproject.org/osstest/logs/101783/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-xl-xsm6 xen-boot fail REGR. vs. 100648 test-amd64-amd64-amd64-pvgrub 6 xen-bootfail REGR. vs. 100648 test-amd64-i386-qemut-rhel6hvm-intel 6 xen-boot fail REGR. vs. 100648 test-amd64-amd64-xl 6 xen-boot fail REGR. vs. 100648 test-amd64-amd64-xl-credit2 6 xen-boot fail REGR. vs. 100648 test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm 6 xen-boot fail REGR. vs. 100648 test-amd64-i386-xl-qemuu-ovmf-amd64 6 xen-boot fail REGR. vs. 100648 test-amd64-i386-xl6 xen-boot fail REGR. vs. 100648 Tests which are failing intermittently (not blocking): test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 14 guest-saverestore.2 fail in 101761 pass in 101783 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail pass in 101576 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail pass in 101594 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 6 xen-boot fail pass in 101663 test-amd64-i386-libvirt 6 xen-boot fail pass in 101680 test-amd64-amd64-xl-qemuu-debianhvm-amd64 6 xen-boot fail pass in 101680 test-amd64-i386-xl-qemuu-debianhvm-amd64 6 xen-boot fail pass in 101731 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 6 xen-boot fail pass in 101731 test-amd64-amd64-libvirt-pair 9 xen-boot/src_host fail pass in 101731 test-amd64-amd64-libvirt-pair 10 xen-boot/dst_host fail pass in 101731 test-amd64-i386-libvirt-xsm 9 debian-install fail pass in 101761 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 15 guest-localmigrate/x10 fail in 101594 like 100646 build-i386-rumprun5 rumprun-build fail in 101663 baseline untested build-amd64-rumprun 5 rumprun-build fail in 101663 baseline untested test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stopfail like 100648 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 100648 Tests which did not succeed, but are not blocking: test-amd64-amd64-rumprun-amd64 1 build-check(1) blocked n/a test-amd64-i386-rumprun-i386 1 build-check(1) blocked n/a test-amd64-i386-libvirt 12 migrate-support-check fail in 101680 never pass test-amd64-i386-libvirt-xsm 12 migrate-support-check fail in 101680 never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail in 101680 never pass build-i386-rumprun7 xen-buildfail never pass build-amd64-rumprun 7 xen-buildfail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass version targeted for testing: linux7828a9658951301a3fd83daa4ed0a607d370399e baseline version: linux2ecaf1d025af0f481d00b3701ffbcc600dcab076 Last test of basis 100648 2016-08-28 23:14:14 Z 62 days Testing same since 101576 2016-10-21 10:51:14 Z8 days 13 attempts People who touched revisions under test: Andrea ArcangeliAndrew Morton Bjorn Helgaas Casey Schaufler Dan Carpenter Dave Carroll Greg Kroah-Hartman Herbert Xu Hugh Dickins Ian Abbott James Hogan Jann Horn Jason S. McMullan Jiri Slaby Kashyap Desai Kees Cook Linus Torvalds Martin K. Petersen Paolo Bonzini Philipp Hahn Rafael J. Wysocki Simon Horman Wei Liu Willy Tarreau Yinghai Lu jobs: build-amd64-xsm pass
Re: [Xen-devel] [PATCH v3.1 02/15] xen/x86: fix return value of *_set_allocation functions
At 10:59 +0200 on 29 Oct (1477738788), Roger Pau Monne wrote: > Return should be an int. > > Signed-off-by: Roger Pau MonnéAcked-by: Tim Deegan ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [qemu-mainline test] 101782: regressions - FAIL
flight 101782 qemu-mainline real [real] http://logs.test-lab.xenproject.org/osstest/logs/101782/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-armhf-armhf-xl-arndale 15 guest-start/debian.repeat fail REGR. vs. 101676 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stopfail like 101703 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 101703 test-armhf-armhf-libvirt-qcow2 12 saverestore-support-check fail like 101703 test-armhf-armhf-libvirt-xsm 13 saverestore-support-checkfail like 101703 test-armhf-armhf-libvirt 13 saverestore-support-checkfail like 101703 test-amd64-amd64-xl-rtds 9 debian-install fail like 101703 test-armhf-armhf-libvirt-raw 12 saverestore-support-checkfail like 101703 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-armhf-armhf-xl 12 migrate-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-armhf-armhf-xl 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-cubietruck 12 migrate-support-checkfail never pass test-armhf-armhf-xl-cubietruck 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-armhf-armhf-libvirt-qcow2 11 migrate-support-checkfail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-armhf-armhf-xl-multivcpu 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-arndale 12 migrate-support-checkfail never pass test-armhf-armhf-xl-arndale 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-armhf-armhf-xl-vhd 11 migrate-support-checkfail never pass test-armhf-armhf-xl-vhd 12 saverestore-support-checkfail never pass version targeted for testing: qemuu5b2ecabaeabc17f032197246c4846b9ba95ba8a6 baseline version: qemuuede0cbeb7892bdf4a19128853a3a3c61a17fb068 Last test of basis 101703 2016-10-27 00:46:02 Z2 days Failing since101727 2016-10-27 21:32:21 Z1 days3 attempts Testing same since 101782 2016-10-29 08:15:21 Z0 days1 attempts People who touched revisions under test: Alberto GarciaAlex Bennée Alexey Kardashevskiy Benjamin Herrenschmidt Bharata B Rao Brad Smith Cédric Le Goater Daniel P. Berrange David Gibson Emilio G. Cota Fam Zheng Felipe Franciosi Gerd Hoffmann Hervé Poussineau Jason Wang John Paul Adrian Glaubitz John Snow Kevin Wolf Kevin Wolf Laurent Vivier Laurent Vivier Li Qiang Mark Cave-Ayland Max Reitz Michael Roth Nicholas Piggin Nikunj A Dadhania Paolo Bonzini Peter Maydell
[Xen-devel] [xen-unstable test] 101780: regressions - FAIL
flight 101780 xen-unstable real [real] http://logs.test-lab.xenproject.org/osstest/logs/101780/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 9 debian-hvm-install fail REGR. vs. 101673 test-amd64-i386-xl-qemut-debianhvm-amd64 17 guest-start/debianhvm.repeat fail REGR. vs. 101673 test-amd64-i386-xl-qemut-debianhvm-amd64-xsm 17 guest-start/debianhvm.repeat fail REGR. vs. 101673 test-armhf-armhf-xl-vhd 10 guest-start fail REGR. vs. 101673 test-amd64-i386-xl-raw 18 guest-start/debian.repeat fail REGR. vs. 101673 Regressions which are regarded as allowable (not blocking): test-armhf-armhf-libvirt 13 saverestore-support-checkfail like 101673 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 101673 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 101673 test-armhf-armhf-libvirt-qcow2 12 saverestore-support-check fail like 101673 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stopfail like 101673 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stopfail like 101673 test-armhf-armhf-libvirt-xsm 13 saverestore-support-checkfail like 101673 test-armhf-armhf-libvirt-raw 12 saverestore-support-checkfail like 101673 test-amd64-amd64-xl-rtds 9 debian-install fail like 101673 Tests which did not succeed, but are not blocking: test-amd64-amd64-rumprun-amd64 1 build-check(1) blocked n/a test-amd64-i386-rumprun-i386 1 build-check(1) blocked n/a build-amd64-rumprun 7 xen-buildfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass build-i386-rumprun7 xen-buildfail never pass test-amd64-i386-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-armhf-armhf-xl-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-xl 12 migrate-support-checkfail never pass test-armhf-armhf-xl 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-cubietruck 12 migrate-support-checkfail never pass test-armhf-armhf-xl-cubietruck 13 saverestore-support-checkfail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-armhf-armhf-libvirt-qcow2 11 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-arndale 12 migrate-support-checkfail never pass test-armhf-armhf-xl-arndale 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-armhf-armhf-xl-multivcpu 13 saverestore-support-checkfail never pass version targeted for testing: xen 35ac0c08178ac15565b32ca56b00fa5414f1d3b1 baseline version: xen 6f9b62ca57322197e26d3b22ff11b629697142bd Last test of basis 101673 2016-10-26 02:01:16 Z3 days Failing since101698 2016-10-26 19:50:48 Z2 days4 attempts Testing same since 101780 2016-10-29 06:33:52 Z0 days1 attempts People who touched revisions under test: Andrew CooperDario Faggioli David Scott Ian Jackson Jan Beulich Juergen Gross Meng Xu Roger Pau Monne Roger Pau Monné Wei Liu jobs: build-amd64-xsm
[Xen-devel] [distros-debian-stretch test] 67960: tolerable FAIL
flight 67960 distros-debian-stretch real [real] http://osstest.xs.citrite.net/~osstest/testlogs/logs/67960/ Failures :-/ but no regressions. Regressions which are regarded as allowable (not blocking): test-armhf-armhf-armhf-stretch-netboot-pygrub 9 debian-di-install fail like 67923 test-amd64-amd64-amd64-stretch-netboot-pvgrub 9 debian-di-install fail like 67923 test-amd64-amd64-i386-stretch-netboot-pygrub 9 debian-di-install fail like 67923 test-amd64-i386-amd64-stretch-netboot-pygrub 9 debian-di-install fail like 67923 test-amd64-i386-i386-stretch-netboot-pvgrub 9 debian-di-install fail like 67923 baseline version: flight 67923 jobs: build-amd64 pass build-armhf pass build-i386 pass build-amd64-pvopspass build-armhf-pvopspass build-i386-pvops pass test-amd64-amd64-amd64-stretch-netboot-pvgrubfail test-amd64-i386-i386-stretch-netboot-pvgrub fail test-amd64-i386-amd64-stretch-netboot-pygrub fail test-armhf-armhf-armhf-stretch-netboot-pygrubfail test-amd64-amd64-i386-stretch-netboot-pygrub fail sg-report-flight on osstest.xs.citrite.net logs: /home/osstest/logs images: /home/osstest/images Logs, config files, etc. are available at http://osstest.xs.citrite.net/~osstest/testlogs/logs Test harness code can be found at http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary Push not applicable. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] Stubdom GMP build failure for gcc 6
On Fri, Oct 28, 2016 at 10:16:12PM -0700, Pry Mar wrote: > Wei, > > [PATCH] glibc 223 fix gmp-crosslib config error > http://paste.fedoraproject.org/462654/14777176/ > > I've used this patch since last spring. This is a configure bug which stops > the Stubdom build. The bug first appeared in Ubuntu 16.04 when they went to > libc6 2.23+. Next, Stretch followed with the same upgrade. It has nothing > to do with gcc version. > Right. Thanks for the information regarding glibc version. I wouldn't call that a glibc bug thought. It's actually a bug in stubdom build system. I've posted a patch to fix this issue properly. http://marc.info/?l=xen-devel=147776183718177=2 Wei. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH for-4.8] stubdom: make GMP aware that it's being cross-compiled
Append --build and --host flags to GMP's configure script so that it knows it is being compiled for another architecture. This should fix the issue that GMP doesn't compile with gcc 6, because configure script won't try to test the host environment anymore. Signed-off-by: Wei Liu--- Cc: Ian Jackson Cc: dgde...@tycho.nsa.gov Cc: xuqu...@huawei.com Cc: samuel.thiba...@ens-lyon.org Cc: jgr...@suse.com --- stubdom/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubdom/Makefile b/stubdom/Makefile index d7a47f0..94ef540 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -171,7 +171,7 @@ gmp-$(XEN_TARGET_ARCH): gmp-$(GMP_VERSION).tar.bz2 $(NEWLIB_STAMPFILE) rm $@ -rf || : mv gmp-$(GMP_VERSION) $@ #patch -d $@ -p0 < gmp.patch - cd $@; CPPFLAGS="-isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include $(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" CC=$(CC) $(GMPEXT) ./configure --disable-shared --enable-static --disable-fft --without-readline --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf + cd $@; CPPFLAGS="-isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include $(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" CC=$(CC) $(GMPEXT) ./configure --disable-shared --enable-static --disable-fft --without-readline --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf --build=`gcc -dumpmachine` --host=$(GNU_TARGET_ARCH)-xen-elf sed -i 's/#define HAVE_OBSTACK_VPRINTF 1/\/\/#define HAVE_OBSTACK_VPRINTF 1/' $@/config.h touch $@ -- 2.9.3 ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] Stubdom GMP build failure for gcc 6
On Fri, Oct 28, 2016 at 01:50:36PM +0100, Wei Liu wrote: > On Fri, Oct 28, 2016 at 06:29:49AM -0600, Jan Beulich wrote: > > >>> On 28.10.16 at 14:10,wrote: > > > There have been a few reports on stubdom build failure with gcc 6 > > > toolchain. I spent some time yesterday to figure what went wrong. Here > > > is what I found. > > > > > > When building GMP library, its configure script generates small C > > > programs to determine various aspects of the system. Unfortunately the > > > build rune for it is incorrect, so the test program ends up consuming > > > newlib headers while linking against the host glibc. It's amazing that > > > this even worked in the past few years! :-) > > > > > > Unfortunately my attempt to fix it by providing LDFLAGS="-nostdlib > > > -LXXX" doesn't work. It turns out that there is no crt generated in > > > newlib. I'm not sure if that's because the newlib port is incomplete or > > > I haven't discovered a way to teach it to generate one. > > > > Considering that they can't reasonably try to run any of these > > test programs (after all this is a cross build), wouldn't it suffice to > > make up crt*.o just for the configure process, and just providing > > the necessary symbols to make linking succeed? Agreed this, if > > anything, makes the present situation even uglier, but it might > > work. > > > > It might. But that's not sustainable IMO. > > One thing is that gmp configure doesn't try to run those test programs, > because the configure rune doesn't indicate a cross-build, although it > is actually one. This is the key to fix this issue -- I didn't even notice it when I wrote this down! After going through its configure script options, I found a way to make it aware of cross-compilation. Wei. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH v6 02/11] locking/osq: Drop the overload of osq_lock()
On Fri, 28 Oct 2016, Pan Xinhui wrote: /* * If we need to reschedule bail... so we can block. +* Use vcpu_is_preempted to detech lock holder preemption issue ^^ detect + * and break. Could you please remove the rest of this comment? Its just noise to point out that vcpu_is_preempted is a macro defined by arch/false. This is standard protocol in the kernel. Same goes for all locks you change with this. Thanks, Davidlohr * vcpu_is_preempted is a macro defined by false if +* arch does not support vcpu preempted check, */ - if (need_resched()) + if (need_resched() || vcpu_is_preempted(node_cpu(node->prev))) goto unqueue; cpu_relax_lowlatency(); -- 2.4.11 ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [linux-3.4 test] 101770: regressions - FAIL
flight 101770 linux-3.4 real [real] http://logs.test-lab.xenproject.org/osstest/logs/101770/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-amd64-xl 6 xen-boot fail REGR. vs. 92983 test-amd64-i386-qemut-rhel6hvm-intel 6 xen-boot fail REGR. vs. 92983 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 6 xen-boot fail REGR. vs. 92983 test-amd64-amd64-libvirt-vhd 6 xen-boot fail REGR. vs. 92983 test-amd64-i386-xl-qemut-debianhvm-amd64-xsm 6 xen-boot fail REGR. vs. 92983 test-amd64-i386-xl-qemuu-winxpsp3 6 xen-boot fail REGR. vs. 92983 test-amd64-i386-xl-qemuu-debianhvm-amd64 6 xen-boot fail REGR. vs. 92983 test-amd64-i386-xl6 xen-boot fail REGR. vs. 92983 test-amd64-amd64-xl-qcow2 6 xen-boot fail REGR. vs. 92983 test-amd64-amd64-xl-qemuu-winxpsp3 6 xen-bootfail REGR. vs. 92983 test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm 6 xen-boot fail REGR. vs. 92983 test-amd64-amd64-qemuu-nested-intel 6 xen-boot fail REGR. vs. 92983 test-amd64-amd64-xl-xsm 6 xen-boot fail REGR. vs. 92983 Tests which are failing intermittently (not blocking): test-amd64-amd64-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail in 101695 pass in 101770 test-amd64-amd64-i386-pvgrub 6 xen-boot fail pass in 101695 test-amd64-i386-freebsd10-amd64 6 xen-bootfail pass in 101695 test-amd64-amd64-xl-rtds 6 xen-boot fail pass in 101695 test-amd64-i386-pair 9 xen-boot/src_host fail pass in 101720 test-amd64-i386-pair 10 xen-boot/dst_host fail pass in 101720 Regressions which are regarded as allowable (not blocking): test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 92983 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail like 92983 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 92983 Tests which did not succeed, but are not blocking: test-amd64-amd64-rumprun-amd64 1 build-check(1) blocked n/a test-amd64-i386-rumprun-i386 1 build-check(1) blocked n/a build-i386-rumprun7 xen-buildfail never pass build-amd64-rumprun 7 xen-buildfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-amd64-i386-libvirt 12 migrate-support-checkfail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail never pass version targeted for testing: linux8d1988f838a95e836342b505398d38b223181f17 baseline version: linux343a5fbeef08baf2097b8cf4e26137cebe3cfef4 Last test of basis92983 2016-04-27 16:21:44 Z 184 days Testing same since 101695 2016-10-26 18:26:23 Z2 days4 attempts People who touched revisions under test: "Suzuki K. Poulose"Aaro Koskinen Al Viro Alan Stern Aleksander Morgado Alex Thorlton Alexandru Cornea Alexey Khoroshilov Amitkumar Karwar Andrew Banman Andrew Morton Andrey Ryabinin Anson Huang Arnaldo Carvalho de Melo Arnaldo Carvalho de Melo Arnd Bergmann Ben Hutchings Bjørn Mork Boris Brezillon Borislav Petkov Brian Norris Charles Keepax Chen Yu Christoph Hellwig Chunfeng Yun Clemens Ladisch Colin Ian King Cong Wang Daeho Jeong Dan Carpenter Darren Hart Dave Airlie David Howells David Rientjes David
[Xen-devel] [ovmf baseline-only test] 67961: all pass
This run is configured for baseline tests only. flight 67961 ovmf real [real] http://osstest.xs.citrite.net/~osstest/testlogs/logs/67961/ Perfect :-) All tests in this flight passed as required version targeted for testing: ovmf 5211ece936eedb0a29ea170b449e0af8edff8db2 baseline version: ovmf 6c12fe63f989b1a3aff9f44c22b2833fa78cfcab Last test of basis67959 2016-10-29 00:20:30 Z0 days Testing same since67961 2016-10-29 12:16:30 Z0 days1 attempts People who touched revisions under test: Ard BiesheuvelLaszlo Ersek Ryan Harkin Satya Yarlagadda jobs: build-amd64-xsm pass build-i386-xsm pass build-amd64 pass build-i386 pass build-amd64-libvirt pass build-i386-libvirt pass build-amd64-pvopspass build-i386-pvops pass test-amd64-amd64-xl-qemuu-ovmf-amd64 pass test-amd64-i386-xl-qemuu-ovmf-amd64 pass sg-report-flight on osstest.xs.citrite.net logs: /home/osstest/logs images: /home/osstest/images Logs, config files, etc. are available at http://osstest.xs.citrite.net/~osstest/testlogs/logs Test harness code can be found at http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary Push not applicable. (No revision log; it would be 349 lines long.) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [ovmf baseline-only test] 67959: all pass
This run is configured for baseline tests only. flight 67959 ovmf real [real] http://osstest.xs.citrite.net/~osstest/testlogs/logs/67959/ Perfect :-) All tests in this flight passed as required version targeted for testing: ovmf 6c12fe63f989b1a3aff9f44c22b2833fa78cfcab baseline version: ovmf d1b757e2cd034e32676c5cc2d542f785e74f8c5d Last test of basis67957 2016-10-28 13:17:43 Z0 days Testing same since67959 2016-10-29 00:20:30 Z0 days1 attempts People who touched revisions under test: Dong, GuoFu Siyuan Guo Dong Michael Kinney jobs: build-amd64-xsm pass build-i386-xsm pass build-amd64 pass build-i386 pass build-amd64-libvirt pass build-i386-libvirt pass build-amd64-pvopspass build-i386-pvops pass test-amd64-amd64-xl-qemuu-ovmf-amd64 pass test-amd64-i386-xl-qemuu-ovmf-amd64 pass sg-report-flight on osstest.xs.citrite.net logs: /home/osstest/logs images: /home/osstest/images Logs, config files, etc. are available at http://osstest.xs.citrite.net/~osstest/testlogs/logs Test harness code can be found at http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary Push not applicable. commit 6c12fe63f989b1a3aff9f44c22b2833fa78cfcab Author: Fu Siyuan Date: Thu Oct 27 09:23:22 2016 +0800 NetworkPkg: Update IP4 stack drivers for classless address unicast check. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan Reviewed-by: Ye Ting Reviewed-by: Wu Jiaxin commit 01b5ac880f00cf89833e6fc80666bccc9779dea7 Author: Fu Siyuan Date: Thu Oct 27 09:23:08 2016 +0800 MdeModulePkg: Update IP4 stack drivers for classless address unicast check. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan Reviewed-by: Ye Ting Reviewed-by: Wu Jiaxin commit 3289dcba45e48af5c4fd329f57c49cc8e5830ed8 Author: Fu Siyuan Date: Thu Oct 27 09:22:08 2016 +0800 MdeModulePkg: Update NetLib interface to support classless addressing. The classful addressing (IP class A/B/C) has been deprecated according to RFC4632. This patch updates the NetLib NetGetIpClass() and NetIp4IsUnicast() accordingly. NetGetIpClass() The function is kept for compatibility, while the caller of this function could only check the returned value against with IP4_ADDR_CLASSD (multicast) or IP4_ADDR_CLASSE (reserved) now. The function has been updated to note this. NetIp4IsUnicast() The NetMask becomes a required parameter to check the unicast address. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan Reviewed-by: Ye Ting Reviewed-by: Wu Jiaxin commit 6440385b17def888544c2454ffba58384b929a22 Author: Michael Kinney Date: Wed Aug 17 23:41:20 2016 -0700 MdePkg/Include: Add enumeration size checks to Base.h https://bugzilla.tianocore.org/show_bug.cgi?id=181 Add size check for 8-bit, 16-bit, and 32-bit enums to make sure they follow the UEFI Specification 2.3.1 Data Types. Element of a standard ANSI C enum type declaration. Type INT32.or UINT32. ANSI C does not define the size of sign of an enum so they should never be used in structures. ANSI C integer promotion rules make INT32 or UINT32 interchangeable when passed as an argument to a function. Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney Reviewed-by: Liming Gao commit 2b27b557277a52998e2387333cc834e09a887c18 Author: Michael Kinney Date: Wed Oct 26 14:08:22 2016 -0700 MdePkg/PciSegmentLib: Optimize PCI_SEGMENT_LIB_ADDRESS() https://bugzilla.tianocore.org/show_bug.cgi?id=180 The PCI_SEGMENT_LIB_ADDRESS() macro puts the Segment number into bits
[Xen-devel] [libvirt test] 101773: tolerable all pass - PUSHED
flight 101773 libvirt real [real] http://logs.test-lab.xenproject.org/osstest/logs/101773/ Failures :-/ but no regressions. Regressions which are regarded as allowable (not blocking): test-armhf-armhf-libvirt-raw 12 saverestore-support-checkfail like 101738 test-armhf-armhf-libvirt-xsm 13 saverestore-support-checkfail like 101738 test-armhf-armhf-libvirt 13 saverestore-support-checkfail like 101738 test-armhf-armhf-libvirt-qcow2 12 saverestore-support-check fail like 101738 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-amd64-i386-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-qcow2 11 migrate-support-checkfail never pass version targeted for testing: libvirt 011935457a3b5d911e10dc60c681778e78c8fdf9 baseline version: libvirt 65462b2944d761eb185cb6d10db9ccf026bea36b Last test of basis 101738 2016-10-28 04:24:49 Z1 days Testing same since 101773 2016-10-29 04:20:39 Z0 days1 attempts People who touched revisions under test: Chen HanxiaoKothapally Madhu Pavan Laine Stump Michal Privoznik jobs: build-amd64-xsm pass build-armhf-xsm pass build-i386-xsm pass build-amd64 pass build-armhf pass build-i386 pass build-amd64-libvirt pass build-armhf-libvirt pass build-i386-libvirt pass build-amd64-pvopspass build-armhf-pvopspass build-i386-pvops pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsmpass test-amd64-amd64-libvirt-xsm pass test-armhf-armhf-libvirt-xsm pass test-amd64-i386-libvirt-xsm pass test-amd64-amd64-libvirt pass test-armhf-armhf-libvirt pass test-amd64-i386-libvirt pass test-amd64-amd64-libvirt-pairpass test-amd64-i386-libvirt-pair pass test-armhf-armhf-libvirt-qcow2 pass test-armhf-armhf-libvirt-raw pass test-amd64-amd64-libvirt-vhd pass sg-report-flight on osstest.test-lab.xenproject.org logs: /home/logs/logs images: /home/logs/images Logs, config files, etc. are available at http://logs.test-lab.xenproject.org/osstest/logs Explanation of these reports, and of osstest in general, is at http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master Test harness code can be found at http://xenbits.xen.org/gitweb?p=osstest.git;a=summary Pushing revision : + branch=libvirt + revision=011935457a3b5d911e10dc60c681778e78c8fdf9 + . ./cri-lock-repos ++ . ./cri-common +++ . ./cri-getconfig +++ umask 002 +++ getrepos getconfig Repos perl -e ' use Osstest; readglobalconfig(); print $c{"Repos"} or die $!; ' +++ local repos=/home/osstest/repos +++ '[' -z /home/osstest/repos ']' +++ '[' '!' -d /home/osstest/repos ']' +++ echo /home/osstest/repos ++ repos=/home/osstest/repos ++ repos_lock=/home/osstest/repos/lock ++ '[' x '!=' x/home/osstest/repos/lock ']' ++
[Xen-devel] [ovmf test] 101774: all pass - PUSHED
flight 101774 ovmf real [real] http://logs.test-lab.xenproject.org/osstest/logs/101774/ Perfect :-) All tests in this flight passed as required version targeted for testing: ovmf 5211ece936eedb0a29ea170b449e0af8edff8db2 baseline version: ovmf 6c12fe63f989b1a3aff9f44c22b2833fa78cfcab Last test of basis 101749 2016-10-28 10:03:05 Z0 days Testing same since 101763 2016-10-28 19:21:45 Z0 days2 attempts People who touched revisions under test: Ard BiesheuvelLaszlo Ersek Ryan Harkin Satya Yarlagadda jobs: build-amd64-xsm pass build-i386-xsm pass build-amd64 pass build-i386 pass build-amd64-libvirt pass build-i386-libvirt pass build-amd64-pvopspass build-i386-pvops pass test-amd64-amd64-xl-qemuu-ovmf-amd64 pass test-amd64-i386-xl-qemuu-ovmf-amd64 pass sg-report-flight on osstest.test-lab.xenproject.org logs: /home/logs/logs images: /home/logs/images Logs, config files, etc. are available at http://logs.test-lab.xenproject.org/osstest/logs Explanation of these reports, and of osstest in general, is at http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master Test harness code can be found at http://xenbits.xen.org/gitweb?p=osstest.git;a=summary Pushing revision : + branch=ovmf + revision=5211ece936eedb0a29ea170b449e0af8edff8db2 + . ./cri-lock-repos ++ . ./cri-common +++ . ./cri-getconfig +++ umask 002 +++ getrepos getconfig Repos perl -e ' use Osstest; readglobalconfig(); print $c{"Repos"} or die $!; ' +++ local repos=/home/osstest/repos +++ '[' -z /home/osstest/repos ']' +++ '[' '!' -d /home/osstest/repos ']' +++ echo /home/osstest/repos ++ repos=/home/osstest/repos ++ repos_lock=/home/osstest/repos/lock ++ '[' x '!=' x/home/osstest/repos/lock ']' ++ OSSTEST_REPOS_LOCK_LOCKED=/home/osstest/repos/lock ++ exec with-lock-ex -w /home/osstest/repos/lock ./ap-push ovmf 5211ece936eedb0a29ea170b449e0af8edff8db2 + branch=ovmf + revision=5211ece936eedb0a29ea170b449e0af8edff8db2 + . ./cri-lock-repos ++ . ./cri-common +++ . ./cri-getconfig +++ umask 002 +++ getrepos getconfig Repos perl -e ' use Osstest; readglobalconfig(); print $c{"Repos"} or die $!; ' +++ local repos=/home/osstest/repos +++ '[' -z /home/osstest/repos ']' +++ '[' '!' -d /home/osstest/repos ']' +++ echo /home/osstest/repos ++ repos=/home/osstest/repos ++ repos_lock=/home/osstest/repos/lock ++ '[' x/home/osstest/repos/lock '!=' x/home/osstest/repos/lock ']' + . ./cri-common ++ . ./cri-getconfig ++ umask 002 + select_xenbranch + case "$branch" in + tree=ovmf + xenbranch=xen-unstable + '[' xovmf = xlinux ']' + linuxbranch= + '[' x = x ']' + qemuubranch=qemu-upstream-unstable + select_prevxenbranch ++ ./cri-getprevxenbranch xen-unstable + prevxenbranch=xen-4.7-testing + '[' x5211ece936eedb0a29ea170b449e0af8edff8db2 = x ']' + : tested/2.6.39.x + . ./ap-common ++ : osst...@xenbits.xen.org +++ getconfig OsstestUpstream +++ perl -e ' use Osstest; readglobalconfig(); print $c{"OsstestUpstream"} or die $!; ' ++ : ++ : git://xenbits.xen.org/xen.git ++ : osst...@xenbits.xen.org:/home/xen/git/xen.git ++ : git://xenbits.xen.org/qemu-xen-traditional.git ++ : git://git.kernel.org ++ : git://git.kernel.org/pub/scm/linux/kernel/git ++ : git ++ : git://xenbits.xen.org/xtf.git ++ : osst...@xenbits.xen.org:/home/xen/git/xtf.git ++ : git://xenbits.xen.org/xtf.git ++ : git://xenbits.xen.org/libvirt.git ++ : osst...@xenbits.xen.org:/home/xen/git/libvirt.git ++ : git://xenbits.xen.org/libvirt.git ++ : git://xenbits.xen.org/osstest/rumprun.git ++ : git ++ : git://xenbits.xen.org/osstest/rumprun.git ++ : osst...@xenbits.xen.org:/home/xen/git/osstest/rumprun.git ++ : git://git.seabios.org/seabios.git ++ : osst...@xenbits.xen.org:/home/xen/git/osstest/seabios.git ++ : git://xenbits.xen.org/osstest/seabios.git ++ : https://github.com/tianocore/edk2.git ++ : osst...@xenbits.xen.org:/home/xen/git/osstest/ovmf.git ++ : git://xenbits.xen.org/osstest/ovmf.git ++ : git://xenbits.xen.org/osstest/linux-firmware.git ++ :
[Xen-devel] [linux-3.10 test] 101761: regressions - FAIL
flight 101761 linux-3.10 real [real] http://logs.test-lab.xenproject.org/osstest/logs/101761/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-xl-xsm6 xen-boot fail REGR. vs. 100648 test-amd64-amd64-amd64-pvgrub 6 xen-bootfail REGR. vs. 100648 test-amd64-amd64-xl-credit2 6 xen-boot fail REGR. vs. 100648 test-amd64-i386-qemut-rhel6hvm-intel 6 xen-boot fail REGR. vs. 100648 test-amd64-amd64-xl 6 xen-boot fail REGR. vs. 100648 test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm 6 xen-boot fail REGR. vs. 100648 test-amd64-i386-xl-qemuu-ovmf-amd64 6 xen-boot fail REGR. vs. 100648 test-amd64-i386-xl6 xen-boot fail REGR. vs. 100648 Tests which are failing intermittently (not blocking): test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail pass in 101576 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail pass in 101594 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 6 xen-boot fail pass in 101663 test-amd64-i386-libvirt 6 xen-boot fail pass in 101680 test-amd64-amd64-xl-qemuu-debianhvm-amd64 6 xen-boot fail pass in 101680 test-amd64-amd64-libvirt-pair 9 xen-boot/src_host fail pass in 101731 test-amd64-amd64-libvirt-pair 10 xen-boot/dst_host fail pass in 101731 test-amd64-i386-xl-qemuu-debianhvm-amd64 6 xen-boot fail pass in 101731 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 6 xen-boot fail pass in 101731 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 14 guest-saverestore.2 fail pass in 101731 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 15 guest-localmigrate/x10 fail in 101594 like 100646 build-i386-rumprun5 rumprun-build fail in 101663 baseline untested build-amd64-rumprun 5 rumprun-build fail in 101663 baseline untested test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stopfail like 100648 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 100648 Tests which did not succeed, but are not blocking: test-amd64-amd64-rumprun-amd64 1 build-check(1) blocked n/a test-amd64-i386-rumprun-i386 1 build-check(1) blocked n/a test-amd64-i386-libvirt 12 migrate-support-check fail in 101680 never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail in 101680 never pass build-i386-rumprun7 xen-buildfail never pass build-amd64-rumprun 7 xen-buildfail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass version targeted for testing: linux7828a9658951301a3fd83daa4ed0a607d370399e baseline version: linux2ecaf1d025af0f481d00b3701ffbcc600dcab076 Last test of basis 100648 2016-08-28 23:14:14 Z 61 days Testing same since 101576 2016-10-21 10:51:14 Z7 days 12 attempts People who touched revisions under test: Andrea ArcangeliAndrew Morton Bjorn Helgaas Casey Schaufler Dan Carpenter Dave Carroll Greg Kroah-Hartman Herbert Xu Hugh Dickins Ian Abbott James Hogan Jann Horn Jason S. McMullan Jiri Slaby Kashyap Desai Kees Cook Linus Torvalds Martin K. Petersen Paolo Bonzini Philipp Hahn Rafael J. Wysocki Simon Horman Wei Liu Willy Tarreau Yinghai Lu jobs: build-amd64-xsm pass build-i386-xsm pass build-amd64
[Xen-devel] [PATCH v3.1 15/15] xen/x86: setup PVHv2 Dom0 ACPI tables
Create a new MADT table that contains the topology exposed to the guest. A new XSDT table is also created, in order to filter the tables that we want to expose to the guest, plus the Xen crafted MADT. This in turn requires Xen to also create a new RSDP in order to make it point to the custom XSDT. Also, regions marked as E820_ACPI or E820_NVS are identity mapped into Dom0 p2m, plus any top-level ACPI tables that should be accessible to Dom0 and that don't reside in RAM regions. This is needed because some memory maps don't properly account for all the memory used by ACPI, so it's common to find ACPI tables in holes. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Completely reworked. --- xen/arch/x86/domain_build.c | 428 +++- 1 file changed, 427 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 1ebc21f..d7b54d9 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -38,6 +39,8 @@ #include #include +#include + #include #include #include @@ -49,6 +52,9 @@ static long __initdata dom0_max_nrpages = LONG_MAX; /* Size of the VM86 TSS for virtual 8086 mode to use. */ #define HVM_VM86_TSS_SIZE 128 +static unsigned int __initdata acpi_intr_overrrides; +static struct acpi_madt_interrupt_override __initdata *intsrcovr; + /* * dom0_mem=[min:,][max:,][] * @@ -572,7 +578,7 @@ static __init void hvm_setup_e820(struct domain *d, unsigned long nr_pages) /* * Craft the e820 memory map for Dom0 based on the hardware e820 map. */ -d->arch.e820 = xzalloc_array(struct e820entry, e820.nr_map); +d->arch.e820 = xzalloc_array(struct e820entry, E820MAX); if ( !d->arch.e820 ) panic("Unable to allocate memory for Dom0 e820 map"); entry_guest = d->arch.e820; @@ -1757,6 +1763,54 @@ static int __init hvm_steal_ram(struct domain *d, unsigned long size, return -ENOMEM; } +static int __init hvm_add_mem_range(struct domain *d, uint64_t s, uint64_t e, +uint32_t type) +{ +unsigned int i; + +for ( i = 0; i < d->arch.nr_e820; i++ ) +{ +uint64_t rs = d->arch.e820[i].addr; +uint64_t re = rs + d->arch.e820[i].size; + +if ( rs == e && d->arch.e820[i].type == type ) +{ +d->arch.e820[i].addr = s; +return 0; +} + +if ( re == s && d->arch.e820[i].type == type && + (i + 1 == d->arch.nr_e820 || d->arch.e820[i + 1].addr >= e) ) +{ +d->arch.e820[i].size += e - s; +return 0; +} + +if ( rs >= e ) +break; + +if ( re > s ) +return -ENOMEM; +} + +if ( d->arch.nr_e820 >= E820MAX ) +{ +printk(XENLOG_WARNING "E820: overflow while adding region" + "[%"PRIx64", %"PRIx64")\n", s, e); +return -ENOMEM; +} + +memmove(d->arch.e820 + i + 1, d->arch.e820 + i, +(d->arch.nr_e820 - i) * sizeof(*d->arch.e820)); + +d->arch.nr_e820++; +d->arch.e820[i].addr = s; +d->arch.e820[i].size = e - s; +d->arch.e820[i].type = type; + +return 0; +} + static int __init hvm_setup_vmx_realmode_helpers(struct domain *d) { p2m_type_t p2mt; @@ -2112,6 +2166,371 @@ static int __init hvm_setup_cpus(struct domain *d, paddr_t entry, return 0; } +static int __init acpi_count_intr_ov(struct acpi_subtable_header *header, + const unsigned long end) +{ + +acpi_intr_overrrides++; +return 0; +} + +static int __init acpi_set_intr_ov(struct acpi_subtable_header *header, + const unsigned long end) +{ +struct acpi_madt_interrupt_override *intr = +container_of(header, struct acpi_madt_interrupt_override, header); + +ACPI_MEMCPY(intsrcovr, intr, sizeof(*intr)); +intsrcovr++; + +return 0; +} + +static int __init hvm_setup_acpi_madt(struct domain *d, paddr_t *addr) +{ +struct acpi_table_madt *madt; +struct acpi_table_header *table; +struct acpi_madt_io_apic *io_apic; +struct acpi_madt_local_apic *local_apic; +struct vcpu *saved_current, *v = d->vcpu[0]; +acpi_status status; +unsigned long size; +unsigned int i; +int rc; + +/* Count number of interrupt overrides in the MADT. */ +acpi_table_parse_madt(ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_count_intr_ov, + MAX_IRQ_SOURCES); + +/* Calculate the size of the crafted MADT. */ +size = sizeof(struct acpi_table_madt); +size += sizeof(struct acpi_madt_interrupt_override) * acpi_intr_overrrides; +size += sizeof(struct acpi_madt_io_apic); +size += sizeof(struct
[Xen-devel] [PATCH v3.1 14/15] xen/x86: hack to setup PVHv2 Dom0 CPUs
Initialize Dom0 BSP/APs and setup the memory and IO permissions. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- DO NOT APPLY. The logic used to setup the CPUID leaves is clearly lacking. This patch will be rebased on top of Andrew's CPUID work, that will move CPUID setup from libxc into Xen. For the time being this is needed in order to be able to boot a PVHv2 Dom0, in order to test the rest of the patches. --- xen/arch/x86/domain_build.c | 97 + 1 file changed, 97 insertions(+) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 168be62..1ebc21f 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -40,6 +40,7 @@ #include #include +#include static long __initdata dom0_nrpages; static long __initdata dom0_min_nrpages; @@ -2024,6 +2025,93 @@ out: return rc; } +static int __init hvm_setup_cpus(struct domain *d, paddr_t entry, + paddr_t start_info) +{ +vcpu_hvm_context_t cpu_ctx; +struct vcpu *v = d->vcpu[0]; +int cpu, i, rc; +struct { +uint32_t index; +uint32_t count; +} cpuid_leaves[] = { +{0, XEN_CPUID_INPUT_UNUSED}, +{1, XEN_CPUID_INPUT_UNUSED}, +{2, XEN_CPUID_INPUT_UNUSED}, +{4, 0}, +{4, 1}, +{4, 2}, +{4, 3}, +{4, 4}, +{7, 0}, +{0xa, XEN_CPUID_INPUT_UNUSED}, +{0xd, 0}, +{0x8000, XEN_CPUID_INPUT_UNUSED}, +{0x8001, XEN_CPUID_INPUT_UNUSED}, +{0x8002, XEN_CPUID_INPUT_UNUSED}, +{0x8003, XEN_CPUID_INPUT_UNUSED}, +{0x8004, XEN_CPUID_INPUT_UNUSED}, +{0x8005, XEN_CPUID_INPUT_UNUSED}, +{0x8006, XEN_CPUID_INPUT_UNUSED}, +{0x8007, XEN_CPUID_INPUT_UNUSED}, +{0x8008, XEN_CPUID_INPUT_UNUSED}, +}; + +cpu = v->processor; +for ( i = 1; i < d->max_vcpus; i++ ) +{ +cpu = cpumask_cycle(cpu, _cpus); +setup_dom0_vcpu(d, i, cpu); +} + +memset(_ctx, 0, sizeof(cpu_ctx)); + +cpu_ctx.mode = VCPU_HVM_MODE_32B; + +cpu_ctx.cpu_regs.x86_32.ebx = start_info; +cpu_ctx.cpu_regs.x86_32.eip = entry; +cpu_ctx.cpu_regs.x86_32.cr0 = X86_CR0_PE | X86_CR0_ET; + +cpu_ctx.cpu_regs.x86_32.cs_limit = ~0u; +cpu_ctx.cpu_regs.x86_32.ds_limit = ~0u; +cpu_ctx.cpu_regs.x86_32.ss_limit = ~0u; +cpu_ctx.cpu_regs.x86_32.tr_limit = 0x67; +cpu_ctx.cpu_regs.x86_32.cs_ar = 0xc9b; +cpu_ctx.cpu_regs.x86_32.ds_ar = 0xc93; +cpu_ctx.cpu_regs.x86_32.ss_ar = 0xc93; +cpu_ctx.cpu_regs.x86_32.tr_ar = 0x8b; + +rc = arch_set_info_hvm_guest(v, _ctx); +if ( rc ) +{ +printk("Unable to setup Dom0 BSP context: %d\n", rc); +return rc; +} + +for ( i = 0; i < ARRAY_SIZE(cpuid_leaves); i++ ) +{ +d->arch.cpuids[i].input[0] = cpuid_leaves[i].index; +d->arch.cpuids[i].input[1] = cpuid_leaves[i].count; +cpuid_count(d->arch.cpuids[i].input[0], d->arch.cpuids[i].input[1], +>arch.cpuids[i].eax, >arch.cpuids[i].ebx, +>arch.cpuids[i].ecx, >arch.cpuids[i].edx); +/* XXX: we need to do much more filtering here. */ +if ( d->arch.cpuids[i].input[0] == 1 ) +d->arch.cpuids[i].ecx &= ~X86_FEATURE_VMX; +} + +rc = setup_permissions(d); +if ( rc ) +{ +panic("Unable to setup Dom0 permissions: %d\n", rc); +return rc; +} + +update_domain_wallclock_time(d); + +return 0; +} + static int __init construct_dom0_hvm(struct domain *d, const module_t *image, unsigned long image_headroom, module_t *initrd, @@ -2056,6 +2144,15 @@ static int __init construct_dom0_hvm(struct domain *d, const module_t *image, return rc; } +rc = hvm_setup_cpus(d, entry, start_info); +if ( rc ) +{ +printk("Failed to setup Dom0 CPUs: %d\n", rc); +return rc; +} + +clear_bit(_VPF_down, >vcpu[0]->pause_flags); + return 0; } -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 13/15] xen/x86: parse Dom0 kernel for PVHv2
Introduce a helper to parse the Dom0 kernel. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Remove debug messages. - Don't hardcode the number of modules to 1. --- xen/arch/x86/domain_build.c | 138 1 file changed, 138 insertions(+) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index ec1ac89..168be62 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -39,6 +39,7 @@ #include #include +#include static long __initdata dom0_nrpages; static long __initdata dom0_min_nrpages; @@ -1895,12 +1896,141 @@ static int __init hvm_setup_p2m(struct domain *d) return 0; } +static int __init hvm_load_kernel(struct domain *d, const module_t *image, + unsigned long image_headroom, + module_t *initrd, char *image_base, + char *cmdline, paddr_t *entry, + paddr_t *start_info_addr) +{ +char *image_start = image_base + image_headroom; +unsigned long image_len = image->mod_end; +struct elf_binary elf; +struct elf_dom_parms parms; +paddr_t last_addr; +struct hvm_start_info start_info; +struct hvm_modlist_entry mod; +struct vcpu *saved_current, *v = d->vcpu[0]; +int rc; + +if ( (rc = bzimage_parse(image_base, _start, _len)) != 0 ) +{ +printk("Error trying to detect bz compressed kernel\n"); +return rc; +} + +if ( (rc = elf_init(, image_start, image_len)) != 0 ) +{ +printk("Unable to init ELF\n"); +return rc; +} +#ifdef VERBOSE +elf_set_verbose(); +#endif +elf_parse_binary(); +if ( (rc = elf_xen_parse(, )) != 0 ) +{ +printk("Unable to parse kernel for ELFNOTES\n"); +return rc; +} + +if ( parms.phys_entry == UNSET_ADDR32 ) { +printk("Unable to find kernel entry point, aborting\n"); +return -EINVAL; +} + +printk("OS: %s version: %s loader: %s bitness: %s\n", parms.guest_os, + parms.guest_ver, parms.loader, + elf_64bit() ? "64-bit" : "32-bit"); + +/* Copy the OS image and free temporary buffer. */ +elf.dest_base = (void *)(parms.virt_kstart - parms.virt_base); +elf.dest_size = parms.virt_kend - parms.virt_kstart; + +saved_current = current; +set_current(v); + +rc = elf_load_binary(); +if ( rc < 0 ) +{ +printk("Failed to load kernel: %d\n", rc); +printk("Xen dom0 kernel broken ELF: %s\n", elf_check_broken()); +goto out; +} + +last_addr = ROUNDUP(parms.virt_kend - parms.virt_base, PAGE_SIZE); + +if ( initrd != NULL ) +{ +rc = hvm_copy_to_guest_phys(last_addr, mfn_to_virt(initrd->mod_start), +initrd->mod_end); +if ( rc != HVMCOPY_okay ) +{ +printk("Unable to copy initrd to guest\n"); +rc = -EFAULT; +goto out; +} + +mod.paddr = last_addr; +mod.size = initrd->mod_end; +last_addr += ROUNDUP(initrd->mod_end, PAGE_SIZE); +} + +/* Free temporary buffers. */ +discard_initial_images(); + +memset(_info, 0, sizeof(start_info)); +if ( cmdline != NULL ) +{ +rc = hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdline) + 1); +if ( rc != HVMCOPY_okay ) +{ +printk("Unable to copy guest command line\n"); +rc = -EFAULT; +goto out; +} +start_info.cmdline_paddr = last_addr; +last_addr += ROUNDUP(strlen(cmdline) + 1, 8); +} +if ( initrd != NULL ) +{ +rc = hvm_copy_to_guest_phys(last_addr, , sizeof(mod)); +if ( rc != HVMCOPY_okay ) +{ +printk("Unable to copy guest modules\n"); +rc = -EFAULT; +goto out; +} +start_info.modlist_paddr = last_addr; +start_info.nr_modules = 1; +last_addr += sizeof(mod); +} + +start_info.magic = XEN_HVM_START_MAGIC_VALUE; +start_info.flags = SIF_PRIVILEGED | SIF_INITDOMAIN; +rc = hvm_copy_to_guest_phys(last_addr, _info, sizeof(start_info)); +if ( rc != HVMCOPY_okay ) +{ +printk("Unable to copy start info to guest\n"); +rc = -EFAULT; +goto out; +} + +*entry = parms.phys_entry; +*start_info_addr = last_addr; +rc = 0; + +out: +set_current(saved_current); +return rc; +} + static int __init construct_dom0_hvm(struct domain *d, const module_t *image, unsigned long image_headroom, module_t *initrd, void *(*bootstrap_map)(const module_t *), char *cmdline) { +paddr_t entry,
[Xen-devel] [PATCH v3.1 00/15] Initial PVHv2 Dom0 support
(resending as v3.1, it seems like I need to figure out how to properly use msmtp with git send-email because on the last try only the cover letter was actually sent). Hello, This is the first batch of the PVH Dom0 support eries, that includes everything up to the point where ACPI tables for he Dom0 are crafted. I've decided to left the last part of the series (the ne that contains the PCI config space handlers, and other mulation/trapping related code) separated, in order to focus and ease the review. This is f course not functional, one might be able to partially boot a Dom0 kernel if t doesn't try to access any physical device. Another reason for splitting this series is so hat I can write a proper design document about how this trapping is going o work, and what is it supposed to do, because during the last review ound I got the feeling that some comments where not really related to the ode itself, but to what I was trying to achieve, so it's best to discuss them n a design document rather than mixed up with code. Thanks, Roger. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 03/15] xen/x86: allow calling {sh/hap}_set_allocation with the idle domain
... and using the "preempted" parameter. The solution relies on just calling softirq_pending if the current domain is the idle domain. If such preemption happens, the caller should then call process_pending_softirqs in order to drain the pending softirqs, and then call {sh/hap}_set_allocation again to continue with it's execution. This allows us to call *_set_allocation() when building domain 0. Signed-off-by: Roger Pau MonnéAcked-by: George Dunlap --- Cc: George Dunlap Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Fix commit message. --- xen/arch/x86/mm/hap/hap.c | 4 +++- xen/arch/x86/mm/shadow/common.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c index f099e94..0645521 100644 --- a/xen/arch/x86/mm/hap/hap.c +++ b/xen/arch/x86/mm/hap/hap.c @@ -379,7 +379,9 @@ hap_set_allocation(struct domain *d, unsigned int pages, int *preempted) break; /* Check to see if we need to yield and try again */ -if ( preempted && hypercall_preempt_check() ) +if ( preempted && + (is_idle_vcpu(current) ? softirq_pending(smp_processor_id()) : + hypercall_preempt_check()) ) { *preempted = 1; return 0; diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index 065bdc7..b2e99c2 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1679,7 +1679,9 @@ static int sh_set_allocation(struct domain *d, break; /* Check to see if we need to yield and try again */ -if ( preempted && hypercall_preempt_check() ) +if ( preempted && + (is_idle_vcpu(current) ? softirq_pending(smp_processor_id()) : + hypercall_preempt_check()) ) { *preempted = 1; return 0; -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 06/15] xen/x86: split the setup of Dom0 permissions to a function
So that it can also be used by the PVH-specific domain builder. This is just code motion, it should not introduce any functional change. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Fix comment style. - Convert i to unsigned int. - Restore previous BUG_ON in case of failure (instead of panic). - Remove unneeded rc initializer. --- xen/arch/x86/domain_build.c | 160 +++- 1 file changed, 83 insertions(+), 77 deletions(-) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 17f8e91..1e557b9 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -869,6 +869,88 @@ static __init void setup_pv_physmap(struct domain *d, unsigned long pgtbl_pfn, unmap_domain_page(l4start); } +static int __init setup_permissions(struct domain *d) +{ +unsigned long mfn; +unsigned int i; +int rc; + +/* The hardware domain is initially permitted full I/O capabilities. */ +rc = ioports_permit_access(d, 0, 0x); +rc |= iomem_permit_access(d, 0UL, (1UL << (paddr_bits - PAGE_SHIFT)) - 1); +rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1); + +/* Modify I/O port access permissions. */ + +/* Master Interrupt Controller (PIC). */ +rc |= ioports_deny_access(d, 0x20, 0x21); +/* Slave Interrupt Controller (PIC). */ +rc |= ioports_deny_access(d, 0xA0, 0xA1); +/* Interval Timer (PIT). */ +rc |= ioports_deny_access(d, 0x40, 0x43); +/* PIT Channel 2 / PC Speaker Control. */ +rc |= ioports_deny_access(d, 0x61, 0x61); +/* ACPI PM Timer. */ +if ( pmtmr_ioport ) +rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3); +/* PCI configuration space (NB. 0xcf8 has special treatment). */ +rc |= ioports_deny_access(d, 0xcfc, 0xcff); +/* Command-line I/O ranges. */ +process_dom0_ioports_disable(d); + +/* Modify I/O memory access permissions. */ + +/* Local APIC. */ +if ( mp_lapic_addr != 0 ) +{ +mfn = paddr_to_pfn(mp_lapic_addr); +rc |= iomem_deny_access(d, mfn, mfn); +} +/* I/O APICs. */ +for ( i = 0; i < nr_ioapics; i++ ) +{ +mfn = paddr_to_pfn(mp_ioapics[i].mpc_apicaddr); +if ( !rangeset_contains_singleton(mmio_ro_ranges, mfn) ) +rc |= iomem_deny_access(d, mfn, mfn); +} +/* MSI range. */ +rc |= iomem_deny_access(d, paddr_to_pfn(MSI_ADDR_BASE_LO), +paddr_to_pfn(MSI_ADDR_BASE_LO + + MSI_ADDR_DEST_ID_MASK)); +/* HyperTransport range. */ +if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD ) +rc |= iomem_deny_access(d, paddr_to_pfn(0xfdULL << 32), +paddr_to_pfn((1ULL << 40) - 1)); + +/* Remove access to E820_UNUSABLE I/O regions above 1MB. */ +for ( i = 0; i < e820.nr_map; i++ ) +{ +unsigned long sfn, efn; +sfn = max_t(unsigned long, paddr_to_pfn(e820.map[i].addr), 0x100ul); +efn = paddr_to_pfn(e820.map[i].addr + e820.map[i].size - 1); +if ( (e820.map[i].type == E820_UNUSABLE) && + (e820.map[i].size != 0) && + (sfn <= efn) ) +rc |= iomem_deny_access(d, sfn, efn); +} + +/* Prevent access to HPET */ +if ( hpet_address ) +{ +u8 prot_flags = hpet_flags & ACPI_HPET_PAGE_PROTECT_MASK; + +mfn = paddr_to_pfn(hpet_address); +if ( prot_flags == ACPI_HPET_PAGE_PROTECT4 ) +rc |= iomem_deny_access(d, mfn, mfn); +else if ( prot_flags == ACPI_HPET_PAGE_PROTECT64 ) +rc |= iomem_deny_access(d, mfn, mfn + 15); +else if ( ro_hpet ) +rc |= rangeset_add_singleton(mmio_ro_ranges, mfn); +} + +return rc; +} + int __init construct_dom0( struct domain *d, const module_t *image, unsigned long image_headroom, @@ -1539,83 +1621,7 @@ int __init construct_dom0( if ( test_bit(XENFEAT_supervisor_mode_kernel, parms.f_required) ) panic("Dom0 requires supervisor-mode execution"); -rc = 0; - -/* The hardware domain is initially permitted full I/O capabilities. */ -rc |= ioports_permit_access(d, 0, 0x); -rc |= iomem_permit_access(d, 0UL, (1UL << (paddr_bits - PAGE_SHIFT)) - 1); -rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1); - -/* - * Modify I/O port access permissions. - */ -/* Master Interrupt Controller (PIC). */ -rc |= ioports_deny_access(d, 0x20, 0x21); -/* Slave Interrupt Controller (PIC). */ -rc |= ioports_deny_access(d, 0xA0, 0xA1); -/* Interval Timer (PIT). */ -rc |= ioports_deny_access(d, 0x40, 0x43); -/* PIT Channel 2 / PC Speaker Control. */ -rc |= ioports_deny_access(d, 0x61, 0x61); -/* ACPI PM Timer. */ -if ( pmtmr_ioport ) -rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport +
[Xen-devel] [PATCH v3.1 05/15] x86/paging: introduce paging_set_allocation
... and remove hap_set_alloc_for_pvh_dom0. While there also change the last parameter of the {hap/sh}_set_allocation functions to be a boolean. Signed-off-by: Roger Pau MonnéAcked-by: Tim Deegan Acked-by: George Dunlap --- Cc: Jan Beulich Cc: Andrew Cooper Cc: George Dunlap Cc: Tim Deegan --- Changes since v2: - Convert the preempt parameter into a bool. - Fix Dom0 builder comment to reflect that paging.mode should be correct before calling paging_set_allocation. Changes since RFC: - Make paging_set_allocation preemtable. - Move comments. --- xen/arch/x86/domain_build.c | 21 +++-- xen/arch/x86/mm/hap/hap.c | 22 +- xen/arch/x86/mm/paging.c| 19 ++- xen/arch/x86/mm/shadow/common.c | 15 +-- xen/include/asm-x86/hap.h | 4 ++-- xen/include/asm-x86/paging.h| 7 +++ xen/include/asm-x86/shadow.h| 10 +- 7 files changed, 61 insertions(+), 37 deletions(-) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 0a02d65..17f8e91 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -35,7 +35,6 @@ #include #include /* for bzimage_parse */ #include -#include #include #include @@ -1383,15 +1382,25 @@ int __init construct_dom0( nr_pages); } -if ( is_pvh_domain(d) ) -hap_set_alloc_for_pvh_dom0(d, dom0_paging_pages(d, nr_pages)); - /* - * We enable paging mode again so guest_physmap_add_page will do the - * right thing for us. + * We enable paging mode again so guest_physmap_add_page and + * paging_set_allocation will do the right thing for us. */ d->arch.paging.mode = save_pvh_pg_mode; +if ( is_pvh_domain(d) ) +{ +bool preempted; + +do { +preempted = false; +paging_set_allocation(d, dom0_paging_pages(d, nr_pages), + ); +process_pending_softirqs(); +} while ( preempted ); +} + + /* Write the phys->machine and machine->phys table entries. */ for ( pfn = 0; pfn < count; pfn++ ) { diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c index 0645521..b930619 100644 --- a/xen/arch/x86/mm/hap/hap.c +++ b/xen/arch/x86/mm/hap/hap.c @@ -334,8 +334,7 @@ hap_get_allocation(struct domain *d) /* Set the pool of pages to the required number of pages. * Returns 0 for success, non-zero for failure. */ -static int -hap_set_allocation(struct domain *d, unsigned int pages, int *preempted) +int hap_set_allocation(struct domain *d, unsigned int pages, bool *preempted) { struct page_info *pg; @@ -383,7 +382,7 @@ hap_set_allocation(struct domain *d, unsigned int pages, int *preempted) (is_idle_vcpu(current) ? softirq_pending(smp_processor_id()) : hypercall_preempt_check()) ) { -*preempted = 1; +*preempted = true; return 0; } } @@ -563,7 +562,7 @@ void hap_final_teardown(struct domain *d) paging_unlock(d); } -void hap_teardown(struct domain *d, int *preempted) +void hap_teardown(struct domain *d, bool *preempted) { struct vcpu *v; mfn_t mfn; @@ -611,7 +610,8 @@ out: int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc, XEN_GUEST_HANDLE_PARAM(void) u_domctl) { -int rc, preempted = 0; +int rc; +bool preempted = false; switch ( sc->op ) { @@ -638,18 +638,6 @@ int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc, } } -void __init hap_set_alloc_for_pvh_dom0(struct domain *d, - unsigned long hap_pages) -{ -int rc; - -paging_lock(d); -rc = hap_set_allocation(d, hap_pages, NULL); -paging_unlock(d); - -BUG_ON(rc); -} - static const struct paging_mode hap_paging_real_mode; static const struct paging_mode hap_paging_protected_mode; static const struct paging_mode hap_paging_pae_mode; diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c index cc44682..5d80b03 100644 --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -809,7 +809,8 @@ long paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) /* Call when destroying a domain */ int paging_teardown(struct domain *d) { -int rc, preempted = 0; +int rc; +bool preempted = false; if ( hap_enabled(d) ) hap_teardown(d, ); @@ -954,6 +955,22 @@ void paging_write_p2m_entry(struct p2m_domain *p2m, unsigned long gfn, safe_write_pte(p, new); } +int paging_set_allocation(struct domain *d, unsigned int pages, bool *preempted) +{ +int rc; + +ASSERT(paging_mode_enabled(d)); + +paging_lock(d); +if ( hap_enabled(d)
[Xen-devel] [PATCH v3.1 02/15] xen/x86: fix return value of *_set_allocation functions
Return should be an int. Signed-off-by: Roger Pau MonnéAcked-by: George Dunlap --- Cc: George Dunlap Cc: Jan Beulich Cc: Andrew Cooper Cc: Tim Deegan --- Changes since v2: - Also fix the callers to treat the return value as an int. - Don't convert the pages parameter to unsigned long. --- xen/arch/x86/mm/hap/hap.c | 8 +++- xen/arch/x86/mm/shadow/common.c | 12 +--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c index 3218fa2..f099e94 100644 --- a/xen/arch/x86/mm/hap/hap.c +++ b/xen/arch/x86/mm/hap/hap.c @@ -334,7 +334,7 @@ hap_get_allocation(struct domain *d) /* Set the pool of pages to the required number of pages. * Returns 0 for success, non-zero for failure. */ -static unsigned int +static int hap_set_allocation(struct domain *d, unsigned int pages, int *preempted) { struct page_info *pg; @@ -468,14 +468,12 @@ int hap_enable(struct domain *d, u32 mode) old_pages = d->arch.paging.hap.total_pages; if ( old_pages == 0 ) { -unsigned int r; paging_lock(d); -r = hap_set_allocation(d, 256, NULL); -if ( r != 0 ) +rv = hap_set_allocation(d, 256, NULL); +if ( rv != 0 ) { hap_set_allocation(d, 0, NULL); paging_unlock(d); -rv = -ENOMEM; goto out; } paging_unlock(d); diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index 21607bf..065bdc7 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1613,9 +1613,9 @@ shadow_free_p2m_page(struct domain *d, struct page_info *pg) * Input will be rounded up to at least shadow_min_acceptable_pages(), * plus space for the p2m table. * Returns 0 for success, non-zero for failure. */ -static unsigned int sh_set_allocation(struct domain *d, - unsigned int pages, - int *preempted) +static int sh_set_allocation(struct domain *d, + unsigned int pages, + int *preempted) { struct page_info *sp; unsigned int lower_bound; @@ -3151,13 +3151,11 @@ int shadow_enable(struct domain *d, u32 mode) old_pages = d->arch.paging.shadow.total_pages; if ( old_pages == 0 ) { -unsigned int r; paging_lock(d); -r = sh_set_allocation(d, 1024, NULL); /* Use at least 4MB */ -if ( r != 0 ) +rv = sh_set_allocation(d, 1024, NULL); /* Use at least 4MB */ +if ( rv != 0 ) { sh_set_allocation(d, 0, NULL); -rv = -ENOMEM; goto out_locked; } paging_unlock(d); -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 04/15] xen/x86: assert that local_events_need_delivery is not called by the idle domain
It doesn't make sense since the idle domain doesn't receive any events. This is relevant in order to be sure that hypercall_preempt_check is not called by the idle domain, which would happen previously when calling {hap/sh}_set_allocation during domain 0 creation. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Expand commit message. --- xen/include/asm-x86/event.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xen/include/asm-x86/event.h b/xen/include/asm-x86/event.h index a82062e..d589d6f 100644 --- a/xen/include/asm-x86/event.h +++ b/xen/include/asm-x86/event.h @@ -23,6 +23,9 @@ int hvm_local_events_need_delivery(struct vcpu *v); static inline int local_events_need_delivery(void) { struct vcpu *v = current; + +ASSERT(!is_idle_vcpu(v)); + return (has_hvm_container_vcpu(v) ? hvm_local_events_need_delivery(v) : (vcpu_info(v, evtchn_upcall_pending) && !vcpu_info(v, evtchn_upcall_mask))); -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 12/15] xen/x86: populate PVHv2 Dom0 physical memory map
Craft the Dom0 e820 memory map and populate it. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Introduce get_order_from_bytes_floor as a local function to domain_build.c. - Remove extra asserts. - Make hvm_populate_memory_range return an error code instead of panicking. - Fix comments and printks. - Use ULL sufix instead of casting to uint64_t. - Rename hvm_setup_vmx_unrestricted_guest to hvm_setup_vmx_realmode_helpers. - Only substract two pages from the memory calculation, that will be used by the MADT replacement. - Remove some comments. - Remove printing allocation information. - Don't stash any pages for the MADT, TSS or ident PT, those will be subtracted directly from RAM regions of the memory map. - Count the number of iterations before calling process_pending_softirqs when populating the memory map. - Move the initial call to process_pending_softirqs into construct_dom0, and remove the ones from construct_dom0_hvm and construct_dom0_pv. - Make memflags global so it can be shared between alloc_chunk and hvm_populate_memory_range. Changes since RFC: - Use IS_ALIGNED instead of checking with PAGE_MASK. - Use the new %pB specifier in order to print sizes in human readable form. - Create a VM86 TSS for hardware that doesn't support unrestricted mode. - Subtract guest RAM for the identity page table and the VM86 TSS. - Split the creation of the unrestricted mode helper structures to a separate function. - Use preemption with paging_set_allocation. - Use get_order_from_bytes_floor. --- xen/arch/x86/domain_build.c | 275 ++-- 1 file changed, 266 insertions(+), 9 deletions(-) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 2c9ebf2..ec1ac89 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -43,6 +44,9 @@ static long __initdata dom0_nrpages; static long __initdata dom0_min_nrpages; static long __initdata dom0_max_nrpages = LONG_MAX; +/* Size of the VM86 TSS for virtual 8086 mode to use. */ +#define HVM_VM86_TSS_SIZE 128 + /* * dom0_mem=[min:,][max:,][] * @@ -190,6 +194,14 @@ struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0) return setup_dom0_vcpu(dom0, 0, cpumask_first(_cpus)); } +static unsigned int __init get_order_from_bytes_floor(paddr_t size) +{ +unsigned int order; + +order = get_order_from_bytes(size + 1); +return order > 0 ? order - 1 : order; +} + #ifdef CONFIG_SHADOW_PAGING bool __initdata opt_dom0_shadow; boolean_param("dom0_shadow", opt_dom0_shadow); @@ -213,11 +225,12 @@ boolean_param("ro-hpet", ro_hpet); #define round_pgup(_p)(((_p)+(PAGE_SIZE-1))_MASK) #define round_pgdown(_p) ((_p)_MASK) +static unsigned int __initdata memflags = MEMF_no_dma|MEMF_exact_node; + static struct page_info * __init alloc_chunk( struct domain *d, unsigned long max_pages) { static unsigned int __initdata last_order = MAX_ORDER; -static unsigned int __initdata memflags = MEMF_no_dma|MEMF_exact_node; struct page_info *page; unsigned int order = get_order_from_pages(max_pages), free_order; @@ -302,7 +315,8 @@ static unsigned long __init compute_dom0_nr_pages( avail -= max_pdx >> s; } -need_paging = opt_dom0_shadow || (is_pvh_domain(d) && !iommu_hap_pt_share); +need_paging = opt_dom0_shadow || (has_hvm_container_domain(d) && + (!iommu_hap_pt_share || !paging_mode_hap(d))); for ( ; ; need_paging = 0 ) { nr_pages = dom0_nrpages; @@ -334,7 +348,8 @@ static unsigned long __init compute_dom0_nr_pages( avail -= dom0_paging_pages(d, nr_pages); } -if ( (parms->p2m_base == UNSET_ADDR) && (dom0_nrpages <= 0) && +if ( is_pv_domain(d) && + (parms->p2m_base == UNSET_ADDR) && (dom0_nrpages <= 0) && ((dom0_min_nrpages <= 0) || (nr_pages > min_pages)) ) { /* @@ -545,11 +560,12 @@ static __init void pvh_map_all_iomem(struct domain *d, unsigned long nr_pages) ASSERT(nr_holes == 0); } -static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages) +static __init void hvm_setup_e820(struct domain *d, unsigned long nr_pages) { struct e820entry *entry, *entry_guest; unsigned int i; unsigned long pages, cur_pages = 0; +uint64_t start, end; /* * Craft the e820 memory map for Dom0 based on the hardware e820 map. @@ -577,8 +593,19 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages) continue; } -*entry_guest = *entry; -pages = PFN_UP(entry_guest->size); +/* + * Make sure the start and length are aligned to PAGE_SIZE, because + * that's the minimum
[Xen-devel] [PATCH v3.1 11/15] xen/mm: introduce a function to map large chunks of MMIO
Current {un}map_mmio_regions implementation has a maximum number of loops to perform before giving up and returning to the caller. This is an issue when mapping large MMIO regions when building the hardware domain. In order to solve it, introduce a wrapper around {un}map_mmio_regions that takes care of calling process_pending_softirqs between consecutive {un}map_mmio_regions calls. Signed-off-by: Roger Pau Monné--- Cc: Andrew Cooper Cc: George Dunlap Cc: Ian Jackson Cc: Jan Beulich Cc: Konrad Rzeszutek Wilk Cc: Stefano Stabellini Cc: Tim Deegan Cc: Wei Liu --- Changes since v2: - Pull the code into a separate patch. - Use an unbounded for loop with break conditions. --- xen/common/memory.c | 26 ++ xen/include/xen/p2m-common.h | 7 +++ 2 files changed, 33 insertions(+) diff --git a/xen/common/memory.c b/xen/common/memory.c index 21797ca..66c0484 100644 --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -1418,6 +1418,32 @@ int prepare_ring_for_helper( return 0; } +int modify_identity_mmio(struct domain *d, unsigned long pfn, + unsigned long nr_pages, bool map) +{ +int rc; + +for ( ; ; ) +{ +rc = (map ? map_mmio_regions : unmap_mmio_regions) + (d, _gfn(pfn), nr_pages, _mfn(pfn)); +if ( rc == 0 ) +break; +if ( rc < 0 ) +{ +printk(XENLOG_WARNING + "Failed to identity %smap [%#lx,%#lx) for d%d: %d\n", + map ? "" : "un", pfn, pfn + nr_pages, d->domain_id, rc); +break; +} +nr_pages -= rc; +pfn += rc; +process_pending_softirqs(); +} + +return rc; +} + /* * Local variables: * mode: C diff --git a/xen/include/xen/p2m-common.h b/xen/include/xen/p2m-common.h index 3be1e91..2ade0e7 100644 --- a/xen/include/xen/p2m-common.h +++ b/xen/include/xen/p2m-common.h @@ -65,4 +65,11 @@ long p2m_set_mem_access_multi(struct domain *d, */ int p2m_get_mem_access(struct domain *d, gfn_t gfn, xenmem_access_t *access); +/* + * Helper for {un}mapping large MMIO regions, it will take care of calling + * process_pending_softirqs between consecutive {un}map_mmio_regions calls. + */ +int modify_identity_mmio(struct domain *d, unsigned long pfn, + unsigned long nr_pages, bool map); + #endif /* _XEN_P2M_COMMON_H */ -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 01/15] xen/x86: remove XENFEAT_hvm_pirqs for PVHv2 guests
PVHv2 guests, unlike HVM guests, won't have the option to route interrupts from physical or emulated devices over event channels using PIRQs. This applies to both DomU and Dom0 PVHv2 guests. Introduce a new XEN_X86_EMU_USE_PIRQ to notify Xen whether a HVM guest can route physical interrupts (even from emulated devices) over event channels, and is thus allowed to use some of the PHYSDEV ops. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Change local variable name to currd instead of d. - Use currd where it makes sense. --- xen/arch/x86/hvm/hvm.c| 25 - xen/arch/x86/physdev.c| 5 +++-- xen/common/kernel.c | 3 ++- xen/include/public/arch-x86/xen.h | 4 +++- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 11e2b82..e516b20 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -4164,10 +4164,12 @@ static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) { +struct domain *currd = current->domain; + switch ( cmd ) { default: -if ( !is_pvh_vcpu(current) || !is_hardware_domain(current->domain) ) +if ( !is_pvh_domain(currd) || !is_hardware_domain(currd) ) return -ENOSYS; /* fall through */ case PHYSDEVOP_map_pirq: @@ -4175,7 +4177,9 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) case PHYSDEVOP_eoi: case PHYSDEVOP_irq_status_query: case PHYSDEVOP_get_free_pirq: -return do_physdev_op(cmd, arg); +return ((currd->arch.emulation_flags & XEN_X86_EMU_USE_PIRQ) || + is_pvh_domain(currd)) ? +do_physdev_op(cmd, arg) : -ENOSYS; } } @@ -4208,17 +4212,20 @@ static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) static long hvm_physdev_op_compat32( int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) { +struct domain *d = current->domain; + switch ( cmd ) { -case PHYSDEVOP_map_pirq: -case PHYSDEVOP_unmap_pirq: -case PHYSDEVOP_eoi: -case PHYSDEVOP_irq_status_query: -case PHYSDEVOP_get_free_pirq: -return compat_physdev_op(cmd, arg); +case PHYSDEVOP_map_pirq: +case PHYSDEVOP_unmap_pirq: +case PHYSDEVOP_eoi: +case PHYSDEVOP_irq_status_query: +case PHYSDEVOP_get_free_pirq: +return (d->arch.emulation_flags & XEN_X86_EMU_USE_PIRQ) ? +compat_physdev_op(cmd, arg) : -ENOSYS; break; default: -return -ENOSYS; +return -ENOSYS; break; } } diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c index 5a49796..0bea6e1 100644 --- a/xen/arch/x86/physdev.c +++ b/xen/arch/x86/physdev.c @@ -94,7 +94,8 @@ int physdev_map_pirq(domid_t domid, int type, int *index, int *pirq_p, int pirq, irq, ret = 0; void *map_data = NULL; -if ( domid == DOMID_SELF && is_hvm_domain(d) ) +if ( domid == DOMID_SELF && is_hvm_domain(d) && + (d->arch.emulation_flags & XEN_X86_EMU_USE_PIRQ) ) { /* * Only makes sense for vector-based callback, else HVM-IRQ logic @@ -265,7 +266,7 @@ int physdev_unmap_pirq(domid_t domid, int pirq) if ( ret ) goto free_domain; -if ( is_hvm_domain(d) ) +if ( is_hvm_domain(d) && (d->arch.emulation_flags & XEN_X86_EMU_USE_PIRQ) ) { spin_lock(>event_lock); if ( domain_pirq_to_emuirq(d, pirq) != IRQ_UNBOUND ) diff --git a/xen/common/kernel.c b/xen/common/kernel.c index d0edb13..a82f55f 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -332,7 +332,8 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) case guest_type_hvm: fi.submap |= (1U << XENFEAT_hvm_safe_pvclock) | (1U << XENFEAT_hvm_callback_vector) | - (1U << XENFEAT_hvm_pirqs); + ((d->arch.emulation_flags & XEN_X86_EMU_USE_PIRQ) ? + (1U << XENFEAT_hvm_pirqs) : 0); break; } #endif diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h index cdd93c1..da6f4f2 100644 --- a/xen/include/public/arch-x86/xen.h +++ b/xen/include/public/arch-x86/xen.h @@ -283,12 +283,14 @@ struct xen_arch_domainconfig { #define XEN_X86_EMU_IOMMU (1U<<_XEN_X86_EMU_IOMMU) #define _XEN_X86_EMU_PIT8 #define XEN_X86_EMU_PIT (1U<<_XEN_X86_EMU_PIT) +#define _XEN_X86_EMU_USE_PIRQ 9 +#define XEN_X86_EMU_USE_PIRQ(1U<<_XEN_X86_EMU_USE_PIRQ) #define XEN_X86_EMU_ALL (XEN_X86_EMU_LAPIC | XEN_X86_EMU_HPET | \
[Xen-devel] [PATCH v3.1 09/15] xen/x86: allow the emulated APICs to be enabled for the hardware domain
Allow the use of both the emulated local APIC and IO APIC for the hardware domain. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Allow all PV guests to use the emulated PIT. Changes since RFC: - Move the emulation flags check to a separate helper. --- xen/arch/x86/domain.c | 27 ++- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 1bd5eb6..42a4923 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -509,6 +509,27 @@ void vcpu_destroy(struct vcpu *v) xfree(v->arch.pv_vcpu.trap_ctxt); } +static bool emulation_flags_ok(const struct domain *d, uint32_t emflags) +{ + +if ( is_hvm_domain(d) ) +{ +if ( is_hardware_domain(d) && + emflags != (XEN_X86_EMU_PIT|XEN_X86_EMU_LAPIC|XEN_X86_EMU_IOAPIC) ) +return false; +if ( !is_hardware_domain(d) && emflags && + emflags != XEN_X86_EMU_ALL && emflags != XEN_X86_EMU_LAPIC ) +return false; +} +else if ( emflags != 0 && emflags != XEN_X86_EMU_PIT ) +{ +/* PV or classic PVH. */ +return false; +} + +return true; +} + int arch_domain_create(struct domain *d, unsigned int domcr_flags, struct xen_arch_domainconfig *config) { @@ -558,11 +579,7 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags, return -EINVAL; } -/* PVHv2 guests can request emulated APIC. */ -if ( emflags && -(is_hvm_domain(d) ? ((emflags != XEN_X86_EMU_ALL) && - (emflags != XEN_X86_EMU_LAPIC)) : -(emflags != XEN_X86_EMU_PIT)) ) +if ( !emulation_flags_ok(d, emflags) ) { printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation " "with the current selection of emulators: %#x\n", -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 08/15] x86/vtd: fix mapping of RMRR regions
Currently RMRR regions are only mapped to the hardware domain or to non-translated domains that use an IOMMU. In order to fix this, make sure set_identity_p2m_entry sets the appropriate IOMMU mappings, and that clear_identity_p2m_entry also removes them. Signed-off-by: Roger Pau Monné--- Cc: George Dunlap Cc: Jan Beulich Cc: Andrew Cooper --- xen/arch/x86/mm/p2m.c | 37 - 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index 6a45185..da3e937 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -1049,22 +1049,29 @@ int set_identity_p2m_entry(struct domain *d, unsigned long gfn, mfn = p2m->get_entry(p2m, gfn, , , 0, NULL, NULL); -if ( p2mt == p2m_invalid || p2mt == p2m_mmio_dm ) +switch ( p2mt ) +{ +case p2m_invalid: +case p2m_mmio_dm: ret = p2m_set_entry(p2m, gfn, _mfn(gfn), PAGE_ORDER_4K, p2m_mmio_direct, p2ma); -else if ( mfn_x(mfn) == gfn && p2mt == p2m_mmio_direct && a == p2ma ) -{ -ret = 0; -/* - * PVH fixme: during Dom0 PVH construction, p2m entries are being set - * but iomem regions are not mapped with IOMMU. This makes sure that - * RMRRs are correctly mapped with IOMMU. - */ -if ( is_hardware_domain(d) && !iommu_use_hap_pt(d) ) +if ( ret ) +break; +/* fallthrough */ +case p2m_mmio_direct: +if ( p2mt == p2m_mmio_direct && a != p2ma ) +{ +printk(XENLOG_G_WARNING + "Cannot setup identity map d%d:%lx, already mapped with " + "different access type (current: %d, requested: %d).\n", + d->domain_id, gfn, a, p2ma); +ret = (flag & XEN_DOMCTL_DEV_RDM_RELAXED) ? 0 : -EBUSY; +break; +} +if ( !iommu_use_hap_pt(d) ) ret = iommu_map_page(d, gfn, gfn, IOMMUF_readable|IOMMUF_writable); -} -else -{ +break; +default: if ( flag & XEN_DOMCTL_DEV_RDM_RELAXED ) ret = 0; else @@ -1073,6 +1080,7 @@ int set_identity_p2m_entry(struct domain *d, unsigned long gfn, "Cannot setup identity map d%d:%lx," " gfn already mapped to %lx.\n", d->domain_id, gfn, mfn_x(mfn)); +break; } gfn_unlock(p2m, gfn, 0); @@ -1149,6 +1157,9 @@ int clear_identity_p2m_entry(struct domain *d, unsigned long gfn) { ret = p2m_set_entry(p2m, gfn, INVALID_MFN, PAGE_ORDER_4K, p2m_invalid, p2m->default_access); +if ( !iommu_use_hap_pt(d) ) +ret = iommu_unmap_page(d, gfn) ? : ret; + gfn_unlock(p2m, gfn, 0); } else -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [PATCH v3.1 10/15] xen/x86: split Dom0 build into PV and PVHv2
Split the Dom0 builder into two different functions, one for PV (and classic PVH), and another one for PVHv2. Introduce a new command line parameter called 'dom0' that can be used to request the creation of a PVHv2 Dom0 by setting the 'hvm' sub-option. Signed-off-by: Roger Pau Monné--- Cc: Jan Beulich Cc: Andrew Cooper --- Changes since v2: - Fix coding style. - Introduce a new dom0 option that allows passing several parameters. Currently supported ones are hvm and shadow. Changes since RFC: - Add documentation for the new command line option. - Simplify the logic in construct_dom0. --- docs/misc/xen-command-line.markdown | 17 xen/arch/x86/domain_build.c | 28 ++ xen/arch/x86/setup.c| 39 + xen/include/asm-x86/setup.h | 6 ++ 4 files changed, 86 insertions(+), 4 deletions(-) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 87c3023..006e90c 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -656,6 +656,23 @@ affinities to prefer but be not limited to the specified node(s). Pin dom0 vcpus to their respective pcpus +### dom0 +> `= List of [ hvm | shadow ]` + +> Sub-options: + +> `hvm` + +> Default: `false` + +Flag that makes a dom0 boot in PVHv2 mode. + +> `shadow` + +> Default: `false` + +Flag that makes a dom0 use shadow paging. + ### dom0pvh > `= ` diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 1e557b9..2c9ebf2 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -191,10 +191,8 @@ struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0) } #ifdef CONFIG_SHADOW_PAGING -static bool_t __initdata opt_dom0_shadow; +bool __initdata opt_dom0_shadow; boolean_param("dom0_shadow", opt_dom0_shadow); -#else -#define opt_dom0_shadow 0 #endif static char __initdata opt_dom0_ioports_disable[200] = ""; @@ -951,7 +949,7 @@ static int __init setup_permissions(struct domain *d) return rc; } -int __init construct_dom0( +static int __init construct_dom0_pv( struct domain *d, const module_t *image, unsigned long image_headroom, module_t *initrd, @@ -1655,6 +1653,28 @@ out: return rc; } +static int __init construct_dom0_hvm(struct domain *d, const module_t *image, + unsigned long image_headroom, + module_t *initrd, + void *(*bootstrap_map)(const module_t *), + char *cmdline) +{ + +printk("** Building a PVH Dom0 **\n"); + +return 0; +} + +int __init construct_dom0(struct domain *d, const module_t *image, + unsigned long image_headroom, module_t *initrd, + void *(*bootstrap_map)(const module_t *), + char *cmdline) +{ + +return (is_hvm_domain(d) ? construct_dom0_hvm : construct_dom0_pv) + (d, image, image_headroom, initrd,bootstrap_map, cmdline); +} + /* * Local variables: * mode: C diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 72e7f24..64d4c89 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -67,6 +67,16 @@ unsigned long __read_mostly cr4_pv32_mask; static bool_t __initdata opt_dom0pvh; boolean_param("dom0pvh", opt_dom0pvh); +/* + * List of parameters that affect Dom0 creation: + * + * - hvm Create a PVHv2 Dom0. + * - shadowUse shadow paging for Dom0. + */ +static void parse_dom0_param(char *s); +custom_param("dom0", parse_dom0_param); +static bool __initdata dom0_hvm; + /* Linux config option: propagated to domain0. */ /* "acpi=off":Sisables both ACPI table parsing and interpreter. */ /* "acpi=force": Override the disable blacklist. */ @@ -187,6 +197,27 @@ static void __init parse_acpi_param(char *s) } } +static void __init parse_dom0_param(char *s) +{ +char *ss; + +do { + +ss = strchr(s, ','); +if ( ss ) +*ss = '\0'; + +if ( !strcmp(s, "hvm") ) +dom0_hvm = true; +#ifdef CONFIG_SHADOW_PAGING +else if ( !strcmp(s, "shadow") ) +opt_dom0_shadow = true; +#endif + +s = ss + 1; +} while ( ss ); +} + static const module_t *__initdata initial_images; static unsigned int __initdata nr_initial_images; @@ -1543,6 +1574,14 @@ void __init noreturn __start_xen(unsigned long mbi_p) if ( opt_dom0pvh ) domcr_flags |= DOMCRF_pvh | DOMCRF_hap; +if ( dom0_hvm ) +{ +domcr_flags |= DOMCRF_hvm | + ((hvm_funcs.hap_supported && !opt_dom0_shadow) ? + DOMCRF_hap : 0); +config.emulation_flags = XEN_X86_EMU_LAPIC|XEN_X86_EMU_IOAPIC; +} + /* Create
[Xen-devel] [PATCH v3.1 07/15] xen/x86: do the PCI scan unconditionally
Instead of being tied to the presence of an IOMMU. This avoids doing the scan in two different places, and although it's only required for PVHv2 guests (that also require and IOMMU), it makes the code slightly easier to follow. Signed-off-by: Roger Pau MonnéSuggested-by: Andrew Cooper --- Cc: Jan Beulich Cc: Andrew Cooper Cc: Suravee Suthikulpanit Cc: Kevin Tian Cc: Feng Wu --- Changes since v2: - Expand the commit message. --- xen/arch/x86/setup.c| 2 ++ xen/drivers/passthrough/amd/pci_amd_iommu.c | 3 ++- xen/drivers/passthrough/vtd/iommu.c | 2 -- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index b130671..72e7f24 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -1491,6 +1491,8 @@ void __init noreturn __start_xen(unsigned long mbi_p) early_msi_init(); +scan_pci_devices(); + iommu_setup();/* setup iommu if available */ smp_prepare_cpus(max_cpus); diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c index 94a25a4..d12575d 100644 --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -219,7 +219,8 @@ int __init amd_iov_detect(void) if ( !amd_iommu_perdev_intremap ) printk(XENLOG_WARNING "AMD-Vi: Using global interrupt remap table is not recommended (see XSA-36)!\n"); -return scan_pci_devices(); + +return 0; } static int allocate_domain_resources(struct domain_iommu *hd) diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c index 48f120b..919993e 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -2299,8 +2299,6 @@ int __init intel_vtd_setup(void) P(iommu_hap_pt_share, "Shared EPT tables"); #undef P -scan_pci_devices(); - ret = init_vtd_hw(); if ( ret ) goto error; -- 2.7.4 (Apple Git-66) ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] [qemu-mainline test] 101757: regressions - FAIL
flight 101757 qemu-mainline real [real] http://logs.test-lab.xenproject.org/osstest/logs/101757/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-armhf-armhf-xl-credit2 15 guest-start/debian.repeat fail REGR. vs. 101703 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stopfail like 101703 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 101703 test-armhf-armhf-libvirt-qcow2 12 saverestore-support-check fail like 101703 test-armhf-armhf-libvirt-xsm 13 saverestore-support-checkfail like 101703 test-armhf-armhf-libvirt 13 saverestore-support-checkfail like 101703 test-amd64-amd64-xl-rtds 9 debian-install fail like 101703 test-armhf-armhf-libvirt-raw 12 saverestore-support-checkfail like 101703 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-armhf-armhf-xl 12 migrate-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-armhf-armhf-xl 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-cubietruck 12 migrate-support-checkfail never pass test-armhf-armhf-xl-cubietruck 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-armhf-armhf-libvirt-qcow2 11 migrate-support-checkfail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-armhf-armhf-xl-multivcpu 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-arndale 12 migrate-support-checkfail never pass test-armhf-armhf-xl-arndale 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-armhf-armhf-xl-vhd 11 migrate-support-checkfail never pass test-armhf-armhf-xl-vhd 12 saverestore-support-checkfail never pass version targeted for testing: qemuu01b601f06154c0d35f945b1321ddb3f39530cc43 baseline version: qemuuede0cbeb7892bdf4a19128853a3a3c61a17fb068 Last test of basis 101703 2016-10-27 00:46:02 Z2 days Failing since101727 2016-10-27 21:32:21 Z1 days2 attempts Testing same since 101757 2016-10-28 16:22:12 Z0 days1 attempts People who touched revisions under test: Alex BennéeBrad Smith Daniel P. Berrange Emilio G. Cota Fam Zheng Felipe Franciosi Gerd Hoffmann Jason Wang John Paul Adrian Glaubitz John Snow Kevin Wolf Kevin Wolf Laurent Vivier Li Qiang Mark Cave-Ayland Max Reitz Paolo Bonzini Peter Maydell Prasad J Pandit Richard Henderson Richard Henderson Zhang Chen jobs: build-amd64-xsm pass build-armhf-xsm pass build-i386-xsm pass build-amd64
[Xen-devel] [linux-4.1 baseline-only test] 67955: regressions - FAIL
This run is configured for baseline tests only. flight 67955 linux-4.1 real [real] http://osstest.xs.citrite.net/~osstest/testlogs/logs/67955/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-armhf-armhf-xl-midway 15 guest-start/debian.repeat fail REGR. vs. 67872 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-qemuu-nested-intel 16 debian-hvm-install/l1/l2 fail like 67872 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 67872 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 67872 Tests which did not succeed, but are not blocking: test-amd64-amd64-rumprun-amd64 1 build-check(1) blocked n/a test-amd64-i386-rumprun-i386 1 build-check(1) blocked n/a test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-xl 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-xl 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-midway 12 migrate-support-checkfail never pass test-armhf-armhf-xl-midway 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt 14 guest-saverestorefail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-armhf-armhf-xl-multivcpu 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-xsm 14 guest-saverestorefail never pass test-amd64-i386-libvirt 12 migrate-support-checkfail never pass build-amd64-rumprun 6 xen-buildfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-xl-pvh-intel 14 guest-saverestorefail never pass test-armhf-armhf-xl-rtds 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass build-i386-rumprun6 xen-buildfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-qcow2 11 migrate-support-checkfail never pass test-armhf-armhf-libvirt-qcow2 13 guest-saverestorefail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-armhf-armhf-libvirt-raw 13 guest-saverestorefail never pass test-armhf-armhf-xl-vhd 11 migrate-support-checkfail never pass test-armhf-armhf-xl-vhd 12 saverestore-support-checkfail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail never pass test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail never pass version targeted for testing: linux9ca365c0c8bdd8552ec064f0e696600cf7ea66dd baseline version: linux91473db3a3257eacead8f4d84cf4bc96c447193f Last test of basis67872 2016-10-13 08:19:29 Z 15 days Testing same since67955 2016-10-28 10:20:20 Z0 days1 attempts People who touched revisions under test: Christopher S. HallDaniel J Blueman Greg Kroah-Hartman Hugh Dickins John Stultz Linus Torvalds Mathias Nyman Sasha Levin Thomas Gleixner jobs: build-amd64-xsm pass build-armhf-xsm pass build-i386-xsm pass build-amd64 pass build-armhf pass build-i386 pass
[Xen-devel] [xen-unstable test] 101756: regressions - FAIL
flight 101756 xen-unstable real [real] http://logs.test-lab.xenproject.org/osstest/logs/101756/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 9 debian-hvm-install fail REGR. vs. 101673 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 15 guest-start/debianhvm.repeat fail REGR. vs. 101673 test-armhf-armhf-xl-vhd 14 guest-start/debian.repeat fail REGR. vs. 101673 test-armhf-armhf-libvirt-qcow2 14 guest-start/debian.repeat fail REGR. vs. 101673 build-amd64-xsm 5 xen-build fail in 101726 REGR. vs. 101673 Tests which are failing intermittently (not blocking): test-armhf-armhf-libvirt-xsm 11 guest-start fail in 101726 pass in 101756 test-amd64-i386-xl-qemuu-debianhvm-amd64 18 guest-start.2 fail in 101726 pass in 101756 test-armhf-armhf-xl-vhd 10 guest-start fail in 101726 pass in 101756 test-armhf-armhf-libvirt-raw 9 debian-di-install fail in 101726 pass in 101756 test-amd64-i386-xl-qemuu-ovmf-amd64 17 guest-start/debianhvm.repeat fail in 101726 pass in 101756 test-armhf-armhf-xl-credit2 15 guest-start/debian.repeat fail pass in 101726 test-amd64-i386-xl-qemut-debianhvm-amd64 17 guest-start/debianhvm.repeat fail pass in 101726 Regressions which are regarded as allowable (not blocking): test-armhf-armhf-libvirt 13 saverestore-support-checkfail like 101673 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 101673 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 101673 test-armhf-armhf-libvirt-qcow2 12 saverestore-support-check fail like 101673 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stopfail like 101673 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stopfail like 101673 test-armhf-armhf-libvirt-xsm 13 saverestore-support-checkfail like 101673 test-armhf-armhf-libvirt-raw 12 saverestore-support-checkfail like 101673 test-amd64-amd64-xl-rtds 9 debian-install fail like 101673 Tests which did not succeed, but are not blocking: test-amd64-i386-xl-xsm1 build-check(1) blocked in 101726 n/a test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-i386-xl-qemut-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-i386-libvirt-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-amd64-libvirt-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-amd64-xl-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm 1 build-check(1) blocked in 101726 n/a test-amd64-amd64-rumprun-amd64 1 build-check(1) blocked n/a test-amd64-i386-rumprun-i386 1 build-check(1) blocked n/a build-amd64-rumprun 7 xen-buildfail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass build-i386-rumprun7 xen-buildfail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-i386-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass test-armhf-armhf-xl-arndale 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-armhf-armhf-xl-arndale 13 saverestore-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-armhf-armhf-xl-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-armhf-armhf-xl 12 migrate-support-checkfail never pass test-armhf-armhf-xl 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-xl-cubietruck 12