[Xen-devel] [linux-3.14 test] 33494: regressions - FAIL
flight 33494 linux-3.14 real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33494/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-amd64-xl-pvh-intel 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-pvh-amd 7 debian-installfail REGR. vs. 33341 test-amd64-i386-rumpuserxen-i386 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-libvirt 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-credit27 debian-installfail REGR. vs. 33341 test-amd64-i386-xl-multivcpu 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-rhel6hvm-amd 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-qemut-rhel6hvm-amd 5 xen-bootfail REGR. vs. 33341 test-amd64-i386-qemuu-rhel6hvm-intel 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-qemut-rhel6hvm-intel 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl5 xen-boot fail REGR. vs. 33341 test-amd64-i386-qemuu-rhel6hvm-amd 7 redhat-install fail REGR. vs. 33341 test-amd64-i386-freebsd10-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-qemuu-debianhvm-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-qemuu-ovmf-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-qemut-debianhvm-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-win7-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-freebsd10-i386 5 xen-bootfail REGR. vs. 33341 test-amd64-i386-xl-qemut-winxpsp3 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-pair 8 xen-boot/dst_host fail REGR. vs. 33341 test-amd64-amd64-xl-qemut-winxpsp3 5 xen-bootfail REGR. vs. 33341 test-amd64-i386-xl-qemuu-win7-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-qemut-win7-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-winxpsp3 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-qemut-win7-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-qemuu-win7-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-qemuu-debianhvm-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-qemut-debianhvm-amd64 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-qemuu-ovmf-amd64 7 debian-hvm-install fail REGR. vs. 33341 test-amd64-i386-xl-winxpsp3-vcpus1 5 xen-bootfail REGR. vs. 33341 test-amd64-i386-pair 8 xen-boot/dst_host fail REGR. vs. 33341 test-amd64-i386-pair 7 xen-boot/src_host fail REGR. vs. 33341 test-amd64-amd64-xl-winxpsp3 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-qemuu-winxpsp3 7 windows-install fail REGR. vs. 33341 test-amd64-i386-xl-qemuu-winxpsp3 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-rumpuserxen-amd64 7 rumpuserxen-demo-setup fail in 33462 REGR. vs. 33341 test-amd64-amd64-xl-win7-amd64 7 windows-install fail in 33462 REGR. vs. 33341 Tests which are failing intermittently (not blocking): test-amd64-amd64-rumpuserxen-amd64 5 xen-boot fail pass in 33462 test-armhf-armhf-xl 12 guest-start.2 fail pass in 33462 test-amd64-amd64-xl-win7-amd64 5 xen-boot fail pass in 33462 test-amd64-amd64-xl-pvh-amd 5 xen-boot fail in 33462 pass in 33494 test-amd64-i386-xl-credit25 xen-boot fail in 33462 pass in 33494 test-amd64-amd64-libvirt 5 xen-boot fail in 33462 pass in 33494 test-amd64-i386-qemuu-rhel6hvm-amd 5 xen-boot fail in 33462 pass in 33494 test-amd64-amd64-pair 7 xen-boot/src_host fail in 33462 pass in 33494 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 3 host-install(3) broken in 33462 pass in 33494 test-amd64-amd64-xl-qemuu-ovmf-amd64 5 xen-boot fail in 33462 pass in 33494 test-amd64-amd64-xl-qemuu-winxpsp3 5 xen-boot fail in 33462 pass in 33494 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-sedf 5 xen-boot fail REGR. vs. 33341 test-amd64-amd64-xl-pcipt-intel 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-rhel6hvm-intel 5 xen-boot fail like 33296 test-amd64-amd64-xl-sedf-pin 5 xen-boot fail REGR. vs. 33341 test-amd64-i386-xl-qemuu-debianhvm-amd64 3 host-install(3) broken in 33462 like 33296 test-amd64-i386-xl-qemuu-ovmf-amd64 3 host-install(3) broken in 33462 like 33296 Tests which did not succeed, but are not blocking: test-armhf-armhf-libvirt 9 guest-s
[Xen-devel] [libvirt test] 33553: regressions - FAIL
flight 33553 libvirt real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33553/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: build-armhf-libvirt 5 libvirt-build fail REGR. vs. 33422 build-i386-libvirt5 libvirt-build fail REGR. vs. 33422 build-amd64-libvirt 5 libvirt-build fail REGR. vs. 33422 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 1 build-check(1) blocked n/a test-armhf-armhf-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt 1 build-check(1) blocked n/a version targeted for testing: libvirt 368042cf4a6bca34c7da45517a6e3ce91876c53c baseline version: libvirt ce745914b33e3f9a136d91655600b931e7a4178f People who touched revisions under test: Anthony PERARD Cédric Bosdonnat Daniel P. Berrange Dmitry Guryanov Erik Skultety Jim Fehlig Jiri Denemark John Ferlan Ján Tomko Kiarie Kahurani Luyao Huang Martin Kletzander Michal Privoznik Shivaprasad G Bhat Shivaprasad G Bhat jobs: build-amd64 pass build-armhf pass build-i386 pass build-amd64-libvirt fail build-armhf-libvirt fail build-i386-libvirt fail build-amd64-pvopspass build-armhf-pvopspass build-i386-pvops pass test-amd64-amd64-libvirt blocked test-armhf-armhf-libvirt blocked test-amd64-i386-libvirt blocked sg-report-flight on osstest.cam.xci-test.com logs: /home/xc_osstest/logs images: /home/xc_osstest/images Logs, config files, etc. are available at http://www.chiark.greenend.org.uk/~xensrcts/logs Test harness code can be found at http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary Not pushing. (No revision log; it would be 549 lines long.) ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [linux-linus test] 33485: tolerable FAIL - PUSHED
flight 33485 linux-linus real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33485/ Failures :-/ but no regressions. Regressions which are regarded as allowable (not blocking): test-amd64-i386-freebsd10-i386 7 freebsd-install fail like 33426 test-amd64-i386-freebsd10-amd64 7 freebsd-install fail like 33426 test-amd64-i386-pair17 guest-migrate/src_host/dst_host fail like 33426 test-amd64-amd64-xl-qemuu-winxpsp3 7 windows-install fail like 33426 Tests which did not succeed, but are not blocking: test-amd64-amd64-xl-pvh-intel 9 guest-start fail never pass test-armhf-armhf-libvirt 9 guest-start fail never pass test-armhf-armhf-xl 10 migrate-support-checkfail never pass test-amd64-i386-libvirt 9 guest-start fail never pass test-amd64-amd64-libvirt 9 guest-start fail never pass test-amd64-amd64-xl-pcipt-intel 9 guest-start fail never pass test-amd64-amd64-xl-pvh-amd 9 guest-start fail never pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-amd64-xl-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-winxpsp3 14 guest-stopfail never pass test-amd64-amd64-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xl-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemut-winxpsp3 14 guest-stopfail never pass version targeted for testing: linuxfc7f0dd381720ea5ee5818645f7d0e9dece41cb0 baseline version: linux188c901941efd43cbf21e8f4f9e9a276536b989c People who touched revisions under test: Alan Stern Alexander Usyskin Alexandre Belloni Alexey Khoroshilov Amit Virdi Ani Sinha Anjali Singhai Anson Huang Anton Blanchard Arik Nemtsov Arnd Bergmann Arseny Solokha B Viswanath Benjamin Poirier Bjorn Andersson Bo Shen Boris Brezillon Catalin Marinas Chanwoo Choi Chen Gang Chen Gang Christian Borntraeger Christoffer Dall Christoph Jaeger Chuck Lever Colin Ian King Dan Carpenter Daniel Borkmann Darrick J. Wong David Peterson David S. Miller David Spinadel David Vrabel Eddie Kovsky Eduardo Valentin Emmanuel Grumbach Eric Dumazet Eyal Shapira Eyal Shapira Fabien Proriol Felipe Balbi Gabriel Fernandez Geert Uytterhoeven Geert Uytterhoeven Geunsik Lim Giel van Schijndel Greg Kroah-Hartman Greg Rose Hans de Goede Harald Freudenberger Hariprasad Shenai Heikki Krogerus Heiko Carstens Hubert Feurstein Ian Munsie Inki Dae James Bottomley Jan Willeke Javi Merino Jean-Francois Remy Jeff Kirsher Jeff Layton Jens Axboe Jeremiah Mahler Jesse Brandeburg Jim Young Jim Young Jiri Benc Jiri Pirko Joe Bryant Johan Hovold Johannes Thumshirn John W. Linville Jon Maloy Jon Paul Maloy Jonathan Cameron Julia Lawall Julian Anastasov Kalle Valo Keith Busch Kishon Vijay Abraham I Larry Finger Lars-Peter Clausen leroy christophe Linus Torvalds Louis Langholtz Malcolm Priestley Marc Dionne Marc Zyngier Mario Schuknecht Mario Smarduch Martin Long Martin Schwidefsky Masami Hiramatsu Mathias Nyman Maxime Ripard Michael Chan Michael Ellerman Michael Holzheu Mike Krinkin Mike Looijmans Miklos Szeredi Ming Lei Mugunthan V N NeilBrown Nicolas Ferre Nishanth Menon Nobuhiro Iwamatsu Oded Gabbay Oliver Neukum Olof Johansson Pablo Neira Ayuso Paolo Bonzini Paul Zimmerman Peter Chen Peter Hurley Prashant Sreedharan Pravin B Shelar Preston Fick Rasmus Villemoes Reinhard Speyerer Richard Robert Baldyga Sascha Hauer Sebastian Andrzej Siewior Sergej Pupykin Shreyas Bethur Simon Horman Songjun Wu Stefan Agner Steven Rostedt (Red Hat) Steven Rostedt Tejun Heo Thierry Reding Thomas Falcon Thomas Graf Tim Kryger Tomas Winkler Tomeu Vizoso Tomi Valkeinen Tony Lindgren
Re: [Xen-devel] [Patch V2 0/4] xen: auto-generate symbols for xen hypercalls
Hi, anything missing to take these patches? Juergen On 12/17/2014 10:50 AM, Juergen Gross wrote: The Xen hypercalls are defined in include/xen/interface/xen.h. There are some places where for each hypercall a table element is created. Instead of manually add each hypercall element to these tables use an auto generated header built during the make process of the kernel. Changes in V2: - add "autogenerated" comment to generated header file as suggested by David Vrabel (patch 1) - some minor adjustments to patch 4 as suggested by David Vrabel Juergen Gross (4): xen: build infrastructure for generating hypercall depending symbols xen: synchronize include/xen/interface/xen.h with xen xen: use generated hypervisor symbols in arch/x86/xen/trace.c xen: use generated hypercall symbols in arch/x86/xen/xen-head.S arch/x86/syscalls/Makefile | 9 +++ arch/x86/xen/trace.c| 50 +++ arch/x86/xen/xen-head.S | 63 +++-- include/xen/interface/xen.h | 6 - scripts/xen-hypercalls.sh | 12 + 5 files changed, 40 insertions(+), 100 deletions(-) create mode 100644 scripts/xen-hypercalls.sh ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [Bugfix 2/3] xen/irq: Override ACPI IRQ management callback __acpi_unregister_gsi
Xen overrides __acpi_register_gsi and leaves __acpi_unregister_gsi as is. That means, an IRQ allocated by acpi_register_gsi_xen_hvm() or acpi_register_gsi_xen() will be freed by acpi_unregister_gsi_ioapic(), which may cause undesired effects. So override __acpi_unregister_gsi to NULL for safety. Signed-off-by: Jiang Liu --- arch/x86/include/asm/acpi.h |1 + arch/x86/pci/xen.c |2 ++ 2 files changed, 3 insertions(+) diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h index 0ab4f9fd2687..3a45668f6dc3 100644 --- a/arch/x86/include/asm/acpi.h +++ b/arch/x86/include/asm/acpi.h @@ -50,6 +50,7 @@ void acpi_pic_sci_set_trigger(unsigned int, u16); extern int (*__acpi_register_gsi)(struct device *dev, u32 gsi, int trigger, int polarity); +extern void (*__acpi_unregister_gsi)(u32 gsi); static inline void disable_acpi(void) { diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c index 6e5e89c3c644..9098d880c476 100644 --- a/arch/x86/pci/xen.c +++ b/arch/x86/pci/xen.c @@ -458,6 +458,7 @@ int __init pci_xen_hvm_init(void) * just how GSIs get registered. */ __acpi_register_gsi = acpi_register_gsi_xen_hvm; + __acpi_unregister_gsi = NULL; #endif #ifdef CONFIG_PCI_MSI @@ -482,6 +483,7 @@ int __init pci_xen_initial_domain(void) pci_msi_ignore_mask = 1; #endif __acpi_register_gsi = acpi_register_gsi_xen; + __acpi_unregister_gsi = NULL; /* Pre-allocate legacy irqs */ for (irq = 0; irq < nr_legacy_irqs(); irq++) { int trigger, polarity; -- 1.7.10.4 ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [libvirt bisection] complete build-armhf-libvirt
branch xen-unstable xen branch xen-unstable job build-armhf-libvirt test libvirt-build Tree: libvirt git://libvirt.org/libvirt.git Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git Tree: xen git://xenbits.xen.org/xen.git *** Found and reproduced problem changeset *** Bug is in tree: libvirt git://libvirt.org/libvirt.git Bug introduced: 2c78051a14acfb7aba078d569b1632dfe0ca0853 Bug not present: 7ad117b2e33039737126ce9df7a267a6f939988d commit 2c78051a14acfb7aba078d569b1632dfe0ca0853 Author: Kiarie Kahurani Date: Thu Sep 11 07:10:33 2014 +0300 src/xenconfig: Xen-xl parser Introduce a Xen xl parser This parser allows for users to convert the new xl disk format and spice graphics config to libvirt xml format and vice versa. Regarding the spice graphics config, the code is pretty much straight forward. For the disk {formating, parsing}, this parser takes care of the new xl format which include positional parameters and key/value parameters. In xl format disk config a consists of parameters separated by commas. If the parameters do not contain an '=' they are automatically assigned to certain options following the order below target, format, vdev, access The above are the only mandatory parameters in the but there are many more disk config options. These options can be specified as key=value pairs. This takes care of the rest of the options such as devtype, backend, backendtype, script, direct-io-safe, The positional paramters can also be specified in key/value form for example /dev/vg/guest-volume,,hda /dev/vg/guest-volume,raw,hda,rw format=raw, vdev=hda, access=rw, target=/dev/vg/guest-volume are interpleted to one config. In xm format, the above diskspec would be written as phy:/dev/vg/guest-volume,hda,w The disk parser is based on the same parser used successfully by the Xen project for several years now. Ian Jackson authored the scanner, which is used by this commit with mimimal changes. Only the PREFIX option is changed, to produce function and file names more consistent with libvirt's convention. Signed-off-by: Kiarie Kahurani Signed-off-by: Jim Fehlig For bisection revision-tuple graph see: http://www.chiark.greenend.org.uk/~xensrcts/results/bisect.libvirt.build-armhf-libvirt.libvirt-build.html Revision IDs in each graph node refer, respectively, to the Trees above. Searching for failure / basis pass: 33514 fail [host=army] / 33422 [host=marilith-n4] 33404 [host=marilith-n4] 32648 [host=marilith-n4] 32617 [host=marilith-n4] 32596 [host=marilith-n4] 32576 [host=marilith-n4] 32555 [host=marilith-n4] 32534 [host=marilith-n4] 32508 [host=marilith-n4] 32471 [host=marilith-n4] 32433 [host=marilith-n4] 32414 [host=marilith-n4] 32351 [host=marilith-n4] 32330 [host=marilith-n4] 32308 [host=marilith-n4] 32272 [host=marilith-n4] 32217 [host=marilith-n4] 32137 [host=marilith-n4] 32005 [host=marilith-n4] 31928 [host=marilith-n4] 31860 [host=marilith-n4] 31680 [host=marilith-n4] 31660 [host=marilith-n4] 31595 [host=marilith-n4] 31566 [host=marilith-n4] 31532 [host=marilith-n4] 31508 [host=marilith-n4] 31485 [host=marilith-n4] 31465 [host=marilith-n4] 31392 [host=marilith-n4] 31372 [host=marilith-n4] 31327 [host=marilith-n4] 31284 [host=marilith-n4] 31267 [host=marilith-n4] 31242 [host=marilith-n4] 30985 ok. Failure / basis pass flights: 33514 / 30985 (tree in latest but not in basispass: libvirt_gnulib) (tree in basispass but not in latest: gnulib_libvirt) Tree: libvirt git://libvirt.org/libvirt.git Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git Tree: xen git://xenbits.xen.org/xen.git Latest 368042cf4a6bca34c7da45517a6e3ce91876c53c 1ebb75b1fee779621b63e84fefa7b07354c43a99 36174af3fbeb1b662c0eadbfa193e77f68cc955b Basis pass f9f9699f40729556238b905f67a7d6f68c084f6a c9d8f8b755e8960edf7725e05f3e6ac743a5e12e 6688825c240586708129df8887ad9b12a1708497 Generating revisions with ./adhoc-revtuple-generator git://libvirt.org/libvirt.git#f9f9699f40729556238b905f67a7d6f68c084f6a-368042cf4a6bca34c7da45517a6e3ce91876c53c git://xenbits.xen.org/staging/qemu-upstream-unstable.git#c9d8f8b755e8960edf7725e05f3e6ac743a5e12e-1ebb75b1fee779621b63e84fefa7b07354c43a99 git://xenbits.xen.org/xen.git#6688825c240586708129df8887ad9b12a1708497-36174af3fbeb1b662c0eadbfa193e77f68cc955b + exec + sh -xe + cd /export/home/osstest/repos/libvirt + git remote set-url origin git://drall.uk.xensource.com:9419/git://libvirt.org/libvirt.git + git fetch -p origin +refs/heads/*:refs/remotes/origin/* + exec + sh -xe + cd /export/home/osstest/repos/qemu-upstream-unstable + git remote set-url origin git://drall.uk.xensource.com:9419/git://xenbits.xen.
Re: [Xen-devel] [Bugfix v4 1/2] xen/pci: Fix xen IRQ allocation failure caused by commit b81975eade8c
On 2015/1/17 2:13, Konrad Rzeszutek Wilk wrote: > On Thu, Jan 15, 2015 at 09:04:35PM +0800, Jiang Liu wrote: >> >> Note: we need to test this patch on those special AMD systems which >> override normal SCI GSI (9) with strange GSI (20). > > [0.00] DMI: Supermicro X8DTN/X8DTN, BIOS 2.1c 10/28/2011 > .. > 0.00] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) > [0.00] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 20 low level) > [0.00] ACPI: IRQ0 used by override. > .. > 6.358737] xen: registering gsi 20 triggering 0 polarity 1 > [6.358756] xen: --> pirq=20 -> irq=20 (gsi=20) > ... > -bash-4.1# cat /proc/interrupts |grep acpi > 20: 0 0 0 xen-pirq-ioapic-level acpi Hi Konrad, May I assume an Tested-by from you here? Thanks! Gerry ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Re: [Xen-devel] [Bugfix v4 1/2] xen/pci: Fix xen IRQ allocation failure caused by commit b81975eade8c
On 2015/1/17 2:13, Konrad Rzeszutek Wilk wrote: > On Thu, Jan 15, 2015 at 09:04:35PM +0800, Jiang Liu wrote: >> >> Note: we need to test this patch on those special AMD systems which >> override normal SCI GSI (9) with strange GSI (20). > > [0.00] DMI: Supermicro X8DTN/X8DTN, BIOS 2.1c 10/28/2011 > .. > 0.00] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) > [0.00] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 20 low level) > [0.00] ACPI: IRQ0 used by override. > .. > 6.358737] xen: registering gsi 20 triggering 0 polarity 1 > [6.358756] xen: --> pirq=20 -> irq=20 (gsi=20) > ... > -bash-4.1# cat /proc/interrupts |grep acpi > 20: 0 0 0 xen-pirq-ioapic-level acpi > Thanks Konrad, it works as expected. Previously IRQ9 was assigned to ACPI SCI GSI 20, now it assigns IRQ20. But that's OK, ACPI has no special requirement about the assigned IRQ number, we could assign any valid IRQ number for ACPI SCI GSI. Thanks! Gerry ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [qemu-mainline test] 33480: tolerable FAIL - PUSHED
flight 33480 qemu-mainline real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33480/ Failures :-/ but no regressions. Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-sedf-pin 5 xen-boot fail REGR. vs. 33424 test-amd64-i386-pair17 guest-migrate/src_host/dst_host fail like 33424 Tests which did not succeed, but are not blocking: test-amd64-amd64-xl-pvh-intel 9 guest-start fail never pass test-amd64-i386-libvirt 9 guest-start fail never pass test-amd64-amd64-libvirt 9 guest-start fail never pass test-armhf-armhf-libvirt 9 guest-start fail never pass test-amd64-amd64-xl-pcipt-intel 9 guest-start fail never pass test-armhf-armhf-xl 10 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-amd 9 guest-start fail never pass test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-amd64-xl-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemut-winxpsp3 14 guest-stopfail never pass test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-winxpsp3 14 guest-stopfail never pass test-amd64-i386-xl-winxpsp3 14 guest-stop fail never pass version targeted for testing: qemuu1e42c353469cb58ca4f3b450eea4211af7d0b147 baseline version: qemuu3a7f560fa612610822727f7647ed6bc10bccd6ec People who touched revisions under test: Amit Shah Andrew Jones Ard Biesheuvel Bharata B Rao ChenLiang Cristian Klein David Morrison David R. Morrison Don Slutz Dr. David Alan Gilbert Eduardo Habkost Fam Zheng Frediano Ziglio Frediano Ziglio Gal Hammer Gonglei Jia Liu Laszlo Ersek Marcel Apfelbaum Michael Tokarev Paolo Bonzini Pavel Dovgalyuk Peter Lieven Peter Maydell SeokYeon Hwang Stefan Weil Thomas Huth Yang Hongyang jobs: 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-xl pass test-armhf-armhf-xl pass test-amd64-i386-xl pass test-amd64-amd64-xl-pvh-amd fail test-amd64-i386-rhel6hvm-amd pass test-amd64-i386-qemut-rhel6hvm-amd pass test-amd64-i386-qemuu-rhel6hvm-amd pass test-amd64-amd64-xl-qemut-debianhvm-amd64pass test-amd64-i386-xl-qemut-debianhvm-amd64 pass test-amd64-amd64-xl-qemuu-debianhvm-amd64pass test-amd64-i386-xl-qemuu-debianhvm-amd64 pass test-amd64-i386-freebsd10-amd64 pass test-amd64-amd64-xl-qemuu-ovmf-amd64 pass test-amd64-i386-xl-qemuu-ovmf-amd64 pass test-amd64-amd64-xl-qemut-win7-amd64 fail test-amd64-i386-xl-qemut-win7-amd64 fail test-amd64-amd64-xl-qemuu-win7-amd64 fail test-amd64-i386-xl-qemuu-win7-amd64 fail test-amd64-amd64-xl-win7-amd64 fail test-amd64-i386-xl-win7-amd64
[Xen-devel] [xen-unstable test] 33476: tolerable FAIL - PUSHED
flight 33476 xen-unstable real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33476/ Failures :-/ but no regressions. Tests which are failing intermittently (not blocking): test-amd64-i386-xl-qemuu-debianhvm-amd64 5 xen-bootfail pass in 33450 test-amd64-amd64-xl 9 guest-startfail in 33450 pass in 33476 test-amd64-i386-freebsd10-amd64 3 host-install(3) broken in 33450 pass in 33476 test-amd64-i386-xl-qemut-win7-amd64 3 host-install(3) broken in 33450 pass in 33476 Regressions which are regarded as allowable (not blocking): test-amd64-i386-pair17 guest-migrate/src_host/dst_host fail like 33112 Tests which did not succeed, but are not blocking: test-amd64-amd64-libvirt 9 guest-start fail never pass test-amd64-i386-libvirt 9 guest-start fail never pass test-amd64-amd64-xl-pvh-intel 9 guest-start fail never pass test-amd64-amd64-xl-pvh-amd 9 guest-start fail never pass test-armhf-armhf-libvirt 9 guest-start fail never pass test-amd64-amd64-xl-pcipt-intel 9 guest-start fail never pass test-armhf-armhf-xl 10 migrate-support-checkfail never pass test-amd64-i386-xl-qemut-winxpsp3 14 guest-stopfail never pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-winxpsp3 14 guest-stopfail never pass test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-amd64-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-winxpsp3 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-winxpsp3 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop fail never pass version targeted for testing: xen 0d2879062076329038860f873dcbeb6f55bd4917 baseline version: xen 36174af3fbeb1b662c0eadbfa193e77f68cc955b People who touched revisions under test: Alexandra Sandulescu Andrew Cooper Boris Ostrovsky Chao Peng Christoph Egger Ed Swierk Euan Harris Ian Campbell Ian Campbell Ian Jackson Ian Jackson Jan Beulich Juergen Gross Julien Grall Karim Allah Ahmed Keir Fraser Kevin Tian Konrad Rzeszutek Wilk Liang Li Liu Jinsong Martin Lucina Mihai DonÈu Olaf Hering Paul Durrant Robert Hu Roger Pau Monné RÄzvan Cojocaru Samuel Thibault Stefano Stabellini Thomas Leonard Tim Deegan Uma Sharma Vijaya Kumar K Wei Liu Wei Ye Yang Hongyang Yang Zhang Yu Zhang jobs: build-amd64 pass build-armhf pass build-i386 pass build-amd64-libvirt pass build-armhf-libvirt pass build-i386-libvirt pass build-amd64-oldkern pass build-i386-oldkern pass build-amd64-pvopspass build-armhf-pvopspass build-i386-pvops pass build-amd64-rumpuserxen pass build-i386-rumpuserxen pass test-amd64-amd64-xl pass test-armhf-armhf-xl pass test-amd64-i386-xl pass test-amd64-amd64-xl-pvh-amd fail test-amd64-i386-rhel6hvm-amd pass test-amd64-i386-qemut-rhel6hvm-amd pass test-amd64-i386-qemuu-rhel6hvm-amd pass test-amd64-amd64-xl-qemut-debianhvm-amd64pass test-amd64-i386-xl-qemut-debianhvm-amd64 pass test-amd64-amd64-xl-qemuu-debianhvm-amd64pass test-amd64-i386-xl-qemuu-debi
[Xen-devel] [libvirt test] 33514: regressions - FAIL
flight 33514 libvirt real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33514/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: build-i386-libvirt5 libvirt-build fail REGR. vs. 33422 build-armhf-libvirt 5 libvirt-build fail REGR. vs. 33422 build-amd64-libvirt 5 libvirt-build fail REGR. vs. 33422 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 1 build-check(1) blocked n/a test-armhf-armhf-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt 1 build-check(1) blocked n/a version targeted for testing: libvirt 368042cf4a6bca34c7da45517a6e3ce91876c53c baseline version: libvirt ce745914b33e3f9a136d91655600b931e7a4178f People who touched revisions under test: Anthony PERARD Cédric Bosdonnat Daniel P. Berrange Dmitry Guryanov Erik Skultety Jim Fehlig Jiri Denemark John Ferlan Ján Tomko Kiarie Kahurani Luyao Huang Martin Kletzander Michal Privoznik Shivaprasad G Bhat Shivaprasad G Bhat jobs: build-amd64 pass build-armhf pass build-i386 pass build-amd64-libvirt fail build-armhf-libvirt fail build-i386-libvirt fail build-amd64-pvopspass build-armhf-pvopspass build-i386-pvops pass test-amd64-amd64-libvirt blocked test-armhf-armhf-libvirt blocked test-amd64-i386-libvirt blocked sg-report-flight on osstest.cam.xci-test.com logs: /home/xc_osstest/logs images: /home/xc_osstest/images Logs, config files, etc. are available at http://www.chiark.greenend.org.uk/~xensrcts/logs Test harness code can be found at http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary Not pushing. (No revision log; it would be 549 lines long.) ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [qemu-upstream-unstable test] 33488: tolerable FAIL - PUSHED
flight 33488 qemu-upstream-unstable real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33488/ Failures :-/ but no regressions. Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 9 guest-start fail never pass test-amd64-amd64-xl-pvh-intel 9 guest-start fail never pass test-armhf-armhf-libvirt 9 guest-start fail never pass test-armhf-armhf-xl 10 migrate-support-checkfail never pass test-amd64-amd64-xl-pvh-amd 9 guest-start fail never pass test-amd64-amd64-libvirt 9 guest-start fail never pass test-amd64-amd64-xl-pcipt-intel 9 guest-start fail never pass test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-qemut-winxpsp3 14 guest-stopfail never pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-winxpsp3 14 guest-stopfail never pass test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-winxpsp3 14 guest-stop fail never pass test-amd64-amd64-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xl-winxpsp3 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-winxpsp3 14 guest-stop fail never pass version targeted for testing: qemuu0d37748342e29854db7c9f6c47d7f58c6cfba6b2 baseline version: qemuu1ebb75b1fee779621b63e84fefa7b07354c43a99 330 people touched revisions under test, not listing them all jobs: 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-xl pass test-armhf-armhf-xl pass test-amd64-i386-xl pass test-amd64-amd64-xl-pvh-amd fail test-amd64-i386-rhel6hvm-amd pass test-amd64-i386-qemut-rhel6hvm-amd pass test-amd64-i386-qemuu-rhel6hvm-amd pass test-amd64-amd64-xl-qemut-debianhvm-amd64pass test-amd64-i386-xl-qemut-debianhvm-amd64 pass test-amd64-amd64-xl-qemuu-debianhvm-amd64pass test-amd64-i386-xl-qemuu-debianhvm-amd64 pass test-amd64-i386-freebsd10-amd64 pass test-amd64-amd64-xl-qemuu-ovmf-amd64 pass test-amd64-i386-xl-qemuu-ovmf-amd64 pass test-amd64-amd64-xl-qemut-win7-amd64 fail test-amd64-i386-xl-qemut-win7-amd64 fail test-amd64-amd64-xl-qemuu-win7-amd64 fail test-amd64-i386-xl-qemuu-win7-amd64 fail test-amd64-amd64-xl-win7-amd64 fail test-amd64-i386-xl-win7-amd64fail test-amd64-i386-xl-credit2 pass test-amd64-i386-freebsd10-i386 pass test-amd64-amd64-xl-pcipt-intel fail test-amd64-amd64-xl-pvh-intelfail test-amd64-i386-rhel6hvm-intel pass test-amd64-i386-qemut-rhel6hvm-intel pass test-amd64-i386-qemuu-rhel6hvm-intel pass test-amd64-amd64-libvirt fail test-armhf-armhf-libvirt
[Xen-devel] [RFC PATCH V2 4/8] x86/hvm: rename hvm_memory_event_* functions to hvm_event_*
The function names currently imply that these events are to be delivered via the memory_event subsystem. However, the naming is confusing as these events have nothing to do with actual memory events. Simply naming these functions hvm_event_* more accurately describe their usage. Signed-off-by: Tamas K Lengyel --- docs/misc/pvh-readme.txt | 2 +- xen/arch/x86/hvm/hvm.c| 50 +-- xen/arch/x86/hvm/vmx/vmx.c| 6 +++--- xen/include/asm-x86/hvm/hvm.h | 12 +-- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/misc/pvh-readme.txt b/docs/misc/pvh-readme.txt index c5b3de4..bbd9dbe 100644 --- a/docs/misc/pvh-readme.txt +++ b/docs/misc/pvh-readme.txt @@ -49,7 +49,7 @@ Following remain to be done for PVH: - AMD port. - 32bit PVH guest support in both linux and xen. Xen changes are tagged "32bitfixme". - - Add support for monitoring guest behavior. See hvm_memory_event* functions + - Add support for monitoring guest behavior. See hvm_event* functions in hvm.c - vcpu hotplug support - Live migration of PVH guests. diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index f936d51..1968865 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3229,7 +3229,7 @@ int hvm_set_cr0(unsigned long value) hvm_funcs.handle_cd(v, value); hvm_update_cr(v, 0, value); -hvm_memory_event_cr0(value, old_value); +hvm_event_cr0(value, old_value); if ( (value ^ old_value) & X86_CR0_PG ) { if ( !nestedhvm_vmswitch_in_progress(v) && nestedhvm_vcpu_in_guestmode(v) ) @@ -3270,7 +3270,7 @@ int hvm_set_cr3(unsigned long value) old=v->arch.hvm_vcpu.guest_cr[3]; v->arch.hvm_vcpu.guest_cr[3] = value; paging_update_cr3(v); -hvm_memory_event_cr3(value, old); +hvm_event_cr3(value, old); return X86EMUL_OKAY; bad_cr3: @@ -3311,7 +3311,7 @@ int hvm_set_cr4(unsigned long value) } hvm_update_cr(v, 4, value); -hvm_memory_event_cr4(value, old_cr); +hvm_event_cr4(value, old_cr); /* * Modifying CR4.{PSE,PAE,PGE,SMEP}, or clearing CR4.PCIDE @@ -4457,7 +4457,7 @@ int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content) hvm_cpuid(1, NULL, NULL, NULL, &edx); mtrr = !!(edx & cpufeat_mask(X86_FEATURE_MTRR)); -hvm_memory_event_msr(msr, msr_content); +hvm_event_msr(msr, msr_content); switch ( msr ) { @@ -6171,7 +6171,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op) return rc; } -static void hvm_mem_event_fill_regs(mem_event_request_t *req) +static void hvm_event_fill_regs(mem_event_request_t *req) { const struct cpu_user_regs *regs = guest_cpu_user_regs(); const struct vcpu *curr = current; @@ -6203,7 +6203,7 @@ static void hvm_mem_event_fill_regs(mem_event_request_t *req) req->regs.x86.cr4 = curr->arch.hvm_vcpu.guest_cr[4]; } -static int hvm_memory_event_traps(long parameters, mem_event_request_t *req) +static int hvm_event_traps(long parameters, mem_event_request_t *req) { int rc; struct vcpu *v = current; @@ -6228,13 +6228,13 @@ static int hvm_memory_event_traps(long parameters, mem_event_request_t *req) mem_event_vcpu_pause(v); } -hvm_mem_event_fill_regs(req); +hvm_event_fill_regs(req); mem_event_put_request(d, &d->mem_event->monitor, req); return 1; } -void hvm_memory_event_cr0(unsigned long value, unsigned long old) +void hvm_event_cr0(unsigned long value, unsigned long old) { mem_event_request_t req = { .reason = MEM_EVENT_REASON_CR0, @@ -6249,10 +6249,10 @@ void hvm_memory_event_cr0(unsigned long value, unsigned long old) if ( (parameters & HVMPME_onchangeonly) && (value == old) ) return; -hvm_memory_event_traps(parameters, &req); +hvm_event_traps(parameters, &req); } -void hvm_memory_event_cr3(unsigned long value, unsigned long old) +void hvm_event_cr3(unsigned long value, unsigned long old) { mem_event_request_t req = { .reason = MEM_EVENT_REASON_CR3, @@ -6267,10 +6267,10 @@ void hvm_memory_event_cr3(unsigned long value, unsigned long old) if ( (parameters & HVMPME_onchangeonly) && (value == old) ) return; -hvm_memory_event_traps(parameters, &req); +hvm_event_traps(parameters, &req); } -void hvm_memory_event_cr4(unsigned long value, unsigned long old) +void hvm_event_cr4(unsigned long value, unsigned long old) { mem_event_request_t req = { .reason = MEM_EVENT_REASON_CR4, @@ -6285,10 +6285,10 @@ void hvm_memory_event_cr4(unsigned long value, unsigned long old) if ( (parameters & HVMPME_onchangeonly) && (value == old) ) return; -hvm_memory_event_traps(parameters, &req); +hvm_event_traps(parameters, &req); } -void hvm_memory_event_msr(unsigned long msr, unsigned long value) +void hvm_event_msr(unsigned long msr, unsigned long value) { mem_event_request_t req =
[Xen-devel] [RFC PATCH V2 8/8] x86/hvm: factor out vm_event related functions into separate file
To avoid growing hvm.c these functions can be stored separately. Signed-off-by: Tamas K Lengyel --- xen/arch/x86/hvm/Makefile | 3 +- xen/arch/x86/hvm/event.c| 195 xen/arch/x86/hvm/hvm.c | 163 + xen/arch/x86/hvm/vmx/vmx.c | 1 + xen/include/asm-x86/hvm/event.h | 40 + xen/include/asm-x86/hvm/hvm.h | 11 --- 6 files changed, 239 insertions(+), 174 deletions(-) create mode 100644 xen/arch/x86/hvm/event.c create mode 100644 xen/include/asm-x86/hvm/event.h diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile index eea..2389923 100644 --- a/xen/arch/x86/hvm/Makefile +++ b/xen/arch/x86/hvm/Makefile @@ -22,4 +22,5 @@ obj-y += vlapic.o obj-y += vmsi.o obj-y += vpic.o obj-y += vpt.o -obj-y += vpmu.o \ No newline at end of file +obj-y += vpmu.o +obj-y += event.o diff --git a/xen/arch/x86/hvm/event.c b/xen/arch/x86/hvm/event.c new file mode 100644 index 000..96d1748 --- /dev/null +++ b/xen/arch/x86/hvm/event.c @@ -0,0 +1,195 @@ +/* +* event.c: Common hardware virtual machine event abstractions. +* +* Copyright (c) 2004, Intel Corporation. +* Copyright (c) 2005, International Business Machines Corporation. +* Copyright (c) 2008, Citrix Systems, Inc. +* +* This program is free software; you can redistribute it and/or modify it +* under the terms and conditions of the GNU General Public License, +* version 2, as published by the Free Software Foundation. +* +* This program is distributed in the hope it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +* more details. +* +* You should have received a copy of the GNU General Public License along with +* this program; if not, write to the Free Software Foundation, Inc., 59 Temple +* Place - Suite 330, Boston, MA 02111-1307 USA. +*/ + +#include +#include +#include + +static void hvm_event_fill_regs(vm_event_request_t *req) +{ +const struct cpu_user_regs *regs = guest_cpu_user_regs(); +const struct vcpu *curr = current; + +req->regs.x86.rax = regs->eax; +req->regs.x86.rcx = regs->ecx; +req->regs.x86.rdx = regs->edx; +req->regs.x86.rbx = regs->ebx; +req->regs.x86.rsp = regs->esp; +req->regs.x86.rbp = regs->ebp; +req->regs.x86.rsi = regs->esi; +req->regs.x86.rdi = regs->edi; + +req->regs.x86.r8 = regs->r8; +req->regs.x86.r9 = regs->r9; +req->regs.x86.r10 = regs->r10; +req->regs.x86.r11 = regs->r11; +req->regs.x86.r12 = regs->r12; +req->regs.x86.r13 = regs->r13; +req->regs.x86.r14 = regs->r14; +req->regs.x86.r15 = regs->r15; + +req->regs.x86.rflags = regs->eflags; +req->regs.x86.rip= regs->eip; + +req->regs.x86.msr_efer = curr->arch.hvm_vcpu.guest_efer; +req->regs.x86.cr0 = curr->arch.hvm_vcpu.guest_cr[0]; +req->regs.x86.cr3 = curr->arch.hvm_vcpu.guest_cr[3]; +req->regs.x86.cr4 = curr->arch.hvm_vcpu.guest_cr[4]; +} + +static int hvm_event_traps(long parameters, vm_event_request_t *req) +{ +int rc; +struct vcpu *v = current; +struct domain *d = v->domain; + +if ( !(parameters & HVMPME_MODE_MASK) ) +return 0; + +rc = vm_event_claim_slot(d, &d->vm_event->monitor); +if ( rc == -ENOSYS ) +{ +/* If there was no ring to handle the event, then + * simple continue executing normally. */ +return 1; +} +else if ( rc < 0 ) +return rc; + +if ( (parameters & HVMPME_MODE_MASK) == HVMPME_mode_sync ) +{ +req->flags |= VM_EVENT_FLAG_VCPU_PAUSED; +vm_event_vcpu_pause(v); +} + +hvm_event_fill_regs(req); +vm_event_put_request(d, &d->vm_event->monitor, req); + +return 1; +} + +void hvm_event_cr0(unsigned long value, unsigned long old) +{ +vm_event_request_t req = { +.reason = VM_EVENT_REASON_CR0, +.vcpu_id = current->vcpu_id, +.cr_event.new_value = value, +.cr_event.old_value = old +}; + +long parameters = current->domain->arch.hvm_domain +.params[HVM_PARAM_MEMORY_EVENT_CR0]; + +if ( (parameters & HVMPME_onchangeonly) && (value == old) ) +return; + +hvm_event_traps(parameters, &req); +} + +void hvm_event_cr3(unsigned long value, unsigned long old) +{ +vm_event_request_t req = { +.reason = VM_EVENT_REASON_CR3, +.vcpu_id = current->vcpu_id, +.cr_event.new_value = value, +.cr_event.old_value = old +}; + +long parameters = current->domain->arch.hvm_domain +.params[HVM_PARAM_MEMORY_EVENT_CR3]; + +if ( (parameters & HVMPME_onchangeonly) && (value == old) ) +return; + +hvm_event_traps(parameters, &req); +} + +void hvm_event_cr4(unsigned long value, unsigned long old) +{ +vm_event_request_t req = { +.reason = VM_EVENT_REASON_CR4, +.v
[Xen-devel] [RFC PATCH V2 6/8] xen/vm_event: Decouple vm_event and mem_access.
The vm_event subsystem has been artifically tied to the presence of mem_access. While mem_access does depend on vm_event, vm_event is an entirely independent subsystem that can be used for arbitrary function-offloading to helper apps in domains. This patch removes the dependency that mem_access needs to be supported in order to enable vm_event. Signed-off-by: Tamas K Lengyel --- xen/common/Makefile| 2 +- xen/include/xen/vm_event.h | 56 -- xen/include/xsm/dummy.h| 2 -- xen/include/xsm/xsm.h | 2 -- xen/xsm/dummy.c| 2 -- xen/xsm/flask/hooks.c | 32 +++--- 6 files changed, 14 insertions(+), 82 deletions(-) diff --git a/xen/common/Makefile b/xen/common/Makefile index f1b73a3..2ccf0bb 100644 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -52,9 +52,9 @@ obj-y += tmem_xen.o obj-y += radix-tree.o obj-y += rbtree.o obj-y += lzo.o +obj-y += vm_event.o obj-$(HAS_PDX) += pdx.o obj-$(HAS_MEM_ACCESS) += mem_access.o -obj-$(HAS_MEM_ACCESS) += vm_event.o obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma unlzo unlz4 earlycpio,$(n).init.o) diff --git a/xen/include/xen/vm_event.h b/xen/include/xen/vm_event.h index 988ea42..477ef7e 100644 --- a/xen/include/xen/vm_event.h +++ b/xen/include/xen/vm_event.h @@ -26,8 +26,6 @@ #include -#ifdef HAS_MEM_ACCESS - /* Clean up on domain destruction */ void vm_event_cleanup(struct domain *d); @@ -76,60 +74,6 @@ int vm_event_domctl(struct domain *d, xen_domctl_vm_event_op_t *mec, void vm_event_vcpu_pause(struct vcpu *v); void vm_event_vcpu_unpause(struct vcpu *v); -#else - -static inline void vm_event_cleanup(struct domain *d) {} - -static inline bool_t vm_event_check_ring(struct vm_event_domain *med) -{ -return 0; -} - -static inline int vm_event_claim_slot(struct domain *d, -struct vm_event_domain *med) -{ -return -ENOSYS; -} - -static inline int vm_event_claim_slot_nosleep(struct domain *d, -struct vm_event_domain *med) -{ -return -ENOSYS; -} - -static inline -void vm_event_cancel_slot(struct domain *d, struct vm_event_domain *med) -{} - -static inline -void vm_event_put_request(struct domain *d, struct vm_event_domain *med, -vm_event_request_t *req) -{} - -static inline -int vm_event_get_response(struct domain *d, struct vm_event_domain *med, - vm_event_response_t *rsp) -{ -return -ENOSYS; -} - -static inline int do_vm_event_op(int op, uint32_t domain, void *arg) -{ -return -ENOSYS; -} - -static inline -int vm_event_domctl(struct domain *d, xen_domctl_vm_event_op_t *mec, - XEN_GUEST_HANDLE_PARAM(void) u_domctl) -{ -return -ENOSYS; -} - -static inline void vm_event_vcpu_pause(struct vcpu *v) {} -static inline void vm_event_vcpu_unpause(struct vcpu *v) {} - -#endif /* HAS_MEM_ACCESS */ - #endif /* __VM_EVENT_H__ */ diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h index 4227093..50ee929 100644 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -513,7 +513,6 @@ static XSM_INLINE int xsm_hvm_param_nested(XSM_DEFAULT_ARG struct domain *d) return xsm_default_action(action, current->domain, d); } -#ifdef HAS_MEM_ACCESS static XSM_INLINE int xsm_vm_event_control(XSM_DEFAULT_ARG struct domain *d, int mode, int op) { XSM_ASSERT_ACTION(XSM_PRIV); @@ -525,7 +524,6 @@ static XSM_INLINE int xsm_vm_event_op(XSM_DEFAULT_ARG struct domain *d, int op) XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } -#endif #ifdef CONFIG_X86 static XSM_INLINE int xsm_do_mca(XSM_DEFAULT_VOID) diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h index cff9d35..61c5acc 100644 --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -141,10 +141,8 @@ struct xsm_operations { int (*hvm_param_nested) (struct domain *d); int (*get_vnumainfo) (struct domain *d); -#ifdef HAS_MEM_ACCESS int (*vm_event_control) (struct domain *d, int mode, int op); int (*vm_event_op) (struct domain *d, int op); -#endif #ifdef CONFIG_X86 int (*do_mca) (void); diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c index 25fca68..6d12d32 100644 --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -118,10 +118,8 @@ void xsm_fixup_ops (struct xsm_operations *ops) set_to_dummy_if_null(ops, remove_from_physmap); set_to_dummy_if_null(ops, map_gmfn_foreign); -#ifdef HAS_MEM_ACCESS set_to_dummy_if_null(ops, vm_event_control); set_to_dummy_if_null(ops, vm_event_op); -#endif #ifdef CONFIG_X86 set_to_dummy_if_null(ops, do_mca); diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index c419543..5008b79 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -577,9 +577,7 @@ static int flask_domctl(struct domain *d, int cmd) case XEN_DOMCTL_iomem_permis
[Xen-devel] [RFC PATCH V2 7/8] tools/tests: Clean-up tools/tests/xen-access
The spin-lock implementation in the xen-access test program is implemented in a fashion that is actually incomplete. The x86 assembly that guarantees that the lock is held by only one thread lacks the "lock;" instruction. However, the spin-lock is not actually necessary in xen-access as it is not multithreaded. The presence of the faulty implementation of the lock in a non- mulithreaded environment is unnecessarily complicated for developers who are trying to follow this code as a guide in implementing their own applications. Thus, removing it from the code improves the clarity on the behavior of the system. Also converting functions that always return 0 to return to void, and making the teardown function actually return an error code on error. Signed-off-by: Tamas K Lengyel --- tools/tests/xen-access/xen-access.c | 99 +++-- 1 file changed, 19 insertions(+), 80 deletions(-) diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen-access.c index 3538323..80e4de9 100644 --- a/tools/tests/xen-access/xen-access.c +++ b/tools/tests/xen-access/xen-access.c @@ -45,56 +45,6 @@ #define ERROR(a, b...) fprintf(stderr, a "\n", ## b) #define PERROR(a, b...) fprintf(stderr, a ": %s\n", ## b, strerror(errno)) -/* Spinlock and mem event definitions */ - -#define SPIN_LOCK_UNLOCKED 0 - -#define ADDR (*(volatile long *) addr) -/** - * test_and_set_bit - Set a bit and return its old value - * @nr: Bit to set - * @addr: Address to count from - * - * This operation is atomic and cannot be reordered. - * It also implies a memory barrier. - */ -static inline int test_and_set_bit(int nr, volatile void *addr) -{ -int oldbit; - -asm volatile ( -"btsl %2,%1\n\tsbbl %0,%0" -: "=r" (oldbit), "=m" (ADDR) -: "Ir" (nr), "m" (ADDR) : "memory"); -return oldbit; -} - -typedef int spinlock_t; - -static inline void spin_lock(spinlock_t *lock) -{ -while ( test_and_set_bit(1, lock) ); -} - -static inline void spin_lock_init(spinlock_t *lock) -{ -*lock = SPIN_LOCK_UNLOCKED; -} - -static inline void spin_unlock(spinlock_t *lock) -{ -*lock = SPIN_LOCK_UNLOCKED; -} - -static inline int spin_trylock(spinlock_t *lock) -{ -return !test_and_set_bit(1, lock); -} - -#define vm_event_ring_lock_init(_m) spin_lock_init(&(_m)->ring_lock) -#define vm_event_ring_lock(_m) spin_lock(&(_m)->ring_lock) -#define vm_event_ring_unlock(_m) spin_unlock(&(_m)->ring_lock) - typedef struct vm_event { domid_t domain_id; xc_evtchn *xce_handle; @@ -102,7 +52,6 @@ typedef struct vm_event { vm_event_back_ring_t back_ring; uint32_t evtchn_port; void *ring_page; -spinlock_t ring_lock; } vm_event_t; typedef struct xenaccess { @@ -180,6 +129,7 @@ int xenaccess_teardown(xc_interface *xch, xenaccess_t *xenaccess) if ( rc != 0 ) { ERROR("Error tearing down domain xenaccess in xen"); +return rc; } } @@ -191,6 +141,7 @@ int xenaccess_teardown(xc_interface *xch, xenaccess_t *xenaccess) if ( rc != 0 ) { ERROR("Error unbinding event port"); +return rc; } } @@ -201,6 +152,7 @@ int xenaccess_teardown(xc_interface *xch, xenaccess_t *xenaccess) if ( rc != 0 ) { ERROR("Error closing event channel"); +return rc; } } @@ -209,6 +161,7 @@ int xenaccess_teardown(xc_interface *xch, xenaccess_t *xenaccess) if ( rc != 0 ) { ERROR("Error closing connection to xen"); +return rc; } xenaccess->xc_handle = NULL; @@ -241,9 +194,6 @@ xenaccess_t *xenaccess_init(xc_interface **xch_r, domid_t domain_id) /* Set domain id */ xenaccess->vm_event.domain_id = domain_id; -/* Initialise lock */ -vm_event_ring_lock_init(&xenaccess->vm_event); - /* Enable mem_access */ xenaccess->vm_event.ring_page = xc_mem_access_enable(xenaccess->xc_handle, @@ -314,19 +264,24 @@ xenaccess_t *xenaccess_init(xc_interface **xch_r, domid_t domain_id) return xenaccess; err: -xenaccess_teardown(xch, xenaccess); +rc = xenaccess_teardown(xch, xenaccess); +if ( rc ) +{ +ERROR("Failed to teardown xenaccess structure!\n"); +} err_iface: return NULL; } -int get_request(vm_event_t *vm_event, vm_event_request_t *req) +/* + * Note that this function is not thread safe. + */ +static void get_request(vm_event_t *vm_event, vm_event_request_t *req) { vm_event_back_ring_t *back_ring; RING_IDX req_cons; -vm_event_ring_lock(vm_event); - back_ring = &vm_event->back_ring; req_cons = back_ring->req_cons; @@ -337,19 +292,16 @@ int get_request(vm_event_t *vm_event, vm_event_request_t *req) /* Update ring */ back_ring->req_cons = req_cons; back_ring->sring->req_event = req_cons + 1; - -vm_event_ring_unlock(vm_event); - -return 0; } -static
[Xen-devel] [RFC PATCH V2 1/8] xen/mem_event: Cleanup of mem_event structures
From: Razvan Cojocaru The public mem_event structures used to communicate with helper applications via shared rings have been used in different settings. However, the variable names within this structure have not reflected this fact, resulting in the reuse of variables to mean different things under different scenarios. This patch remedies the issue by clearly defining the structure members based on the actual context within which the structure is used. Signed-off-by: Razvan Cojocaru Signed-off-by: Tamas K Lengyel --- tools/tests/xen-access/xen-access.c | 33 --- tools/xenpaging/xenpaging.c | 34 +++ xen/arch/x86/hvm/hvm.c | 185 xen/arch/x86/mm/mem_sharing.c | 7 +- xen/arch/x86/mm/p2m.c | 129 + xen/include/Makefile| 2 +- xen/include/public/mem_event.h | 99 +++ 7 files changed, 292 insertions(+), 197 deletions(-) diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen-access.c index 6cb382d..9d53fb3 100644 --- a/tools/tests/xen-access/xen-access.c +++ b/tools/tests/xen-access/xen-access.c @@ -556,8 +556,8 @@ int main(int argc, char *argv[]) rsp.flags = req.flags; switch (req.reason) { -case MEM_EVENT_REASON_VIOLATION: -rc = xc_get_mem_access(xch, domain_id, req.gfn, &access); +case MEM_EVENT_REASON_MEM_ACCESS_VIOLATION: +rc = xc_get_mem_access(xch, domain_id, req.mem_access_event.gfn, &access); if (rc < 0) { ERROR("Error %d getting mem_access event\n", rc); @@ -567,21 +567,21 @@ int main(int argc, char *argv[]) printf("PAGE ACCESS: %c%c%c for GFN %"PRIx64" (offset %06" PRIx64") gla %016"PRIx64" (valid: %c; fault in gpt: %c; fault with gla: %c) (vcpu %u)\n", - req.access_r ? 'r' : '-', - req.access_w ? 'w' : '-', - req.access_x ? 'x' : '-', - req.gfn, - req.offset, - req.gla, - req.gla_valid ? 'y' : 'n', - req.fault_in_gpt ? 'y' : 'n', - req.fault_with_gla ? 'y': 'n', + req.mem_access_event.access_r ? 'r' : '-', + req.mem_access_event.access_w ? 'w' : '-', + req.mem_access_event.access_x ? 'x' : '-', + req.mem_access_event.gfn, + req.mem_access_event.offset, + req.mem_access_event.gla, + req.mem_access_event.gla_valid ? 'y' : 'n', + req.mem_access_event.fault_in_gpt ? 'y' : 'n', + req.mem_access_event.fault_with_gla ? 'y': 'n', req.vcpu_id); if ( default_access != after_first_access ) { rc = xc_set_mem_access(xch, domain_id, after_first_access, - req.gfn, 1); + req.mem_access_event.gfn, 1); if (rc < 0) { ERROR("Error %d setting gfn to access_type %d\n", rc, @@ -592,13 +592,12 @@ int main(int argc, char *argv[]) } -rsp.gfn = req.gfn; -rsp.p2mt = req.p2mt; +rsp.mem_access_event.gfn = req.mem_access_event.gfn; break; case MEM_EVENT_REASON_INT3: -printf("INT3: rip=%016"PRIx64", gfn=%"PRIx64" (vcpu %d)\n", - req.gla, - req.gfn, +printf("INT3: rip=%016"PRIx64", gfn=%"PRIx64" (vcpu %d)\n", + req.int3_event.gla, + req.int3_event.gfn, req.vcpu_id); /* Reinject */ diff --git a/tools/xenpaging/xenpaging.c b/tools/xenpaging/xenpaging.c index 82c1ee4..148b3e7 100644 --- a/tools/xenpaging/xenpaging.c +++ b/tools/xenpaging/xenpaging.c @@ -684,9 +684,9 @@ static int xenpaging_resume_page(struct xenpaging *paging, mem_event_response_t * This allows page-out of these gfns if the target grows again. */ if (paging->num_paged_out > paging->policy_mru_size) -policy_notify_paged_in(rsp->gfn); +policy_notify_paged_in(rsp->mem_paging_event.gfn); else -policy_notify_paged_in_nomru(rsp->gfn); +policy_notify_paged_in_nomru(rsp->mem_paging_event.gfn); /* Record number of resumed pages */ paging->num_paged_out--; @@ -910,49 +910,49 @@ int main(int argc, char *argv[]) get_request(&paging->mem_event, &req); -if ( req.gfn > paging->max_pages ) +if ( req.me
[Xen-devel] [RFC PATCH V2 3/8] xen/mem_paging: Convert mem_event_op to mem_paging_op
The only use-case of the mem_event_op structure had been in mem_paging, thus renaming the structure mem_paging_op and relocating its associated functions clarifies its actual usage. Signed-off-by: Tamas K Lengyel --- tools/libxc/xc_mem_event.c | 16 tools/libxc/xc_mem_paging.c | 26 ++ tools/libxc/xc_private.h | 3 --- xen/arch/x86/mm/mem_paging.c | 12 ++-- xen/arch/x86/x86_64/compat/mm.c | 8 xen/arch/x86/x86_64/mm.c | 8 xen/common/mem_event.c | 2 +- xen/include/asm-x86/mem_paging.h | 2 +- xen/include/public/memory.h | 6 +++--- 9 files changed, 37 insertions(+), 46 deletions(-) diff --git a/tools/libxc/xc_mem_event.c b/tools/libxc/xc_mem_event.c index 20db2ed..a5e0948 100644 --- a/tools/libxc/xc_mem_event.c +++ b/tools/libxc/xc_mem_event.c @@ -40,22 +40,6 @@ int xc_mem_event_control(xc_interface *xch, domid_t domain_id, unsigned int op, return rc; } -int xc_mem_event_memop(xc_interface *xch, domid_t domain_id, -unsigned int op, unsigned int mode, -uint64_t gfn, void *buffer) -{ -xen_mem_event_op_t meo; - -memset(&meo, 0, sizeof(meo)); - -meo.op = op; -meo.domain = domain_id; -meo.gfn = gfn; -meo.buffer = (unsigned long) buffer; - -return do_memory_op(xch, mode, &meo, sizeof(meo)); -} - void *xc_mem_event_enable(xc_interface *xch, domid_t domain_id, int param, uint32_t *port, int enable_introspection) { diff --git a/tools/libxc/xc_mem_paging.c b/tools/libxc/xc_mem_paging.c index 8aa7d4d..bf3173d 100644 --- a/tools/libxc/xc_mem_paging.c +++ b/tools/libxc/xc_mem_paging.c @@ -23,6 +23,20 @@ #include "xc_private.h" +static int xc_mem_paging_memop(xc_interface *xch, domid_t domain_id, + unsigned int op, uint64_t gfn, void *buffer) +{ +xen_mem_paging_op_t mpo; + +memset(&mpo, 0, sizeof(mpo)); + +mpo.op = op; +mpo.domain = domain_id; +mpo.gfn = gfn; +mpo.buffer = (unsigned long) buffer; + +return do_memory_op(xch, XENMEM_paging_op, &mpo, sizeof(mpo)); +} int xc_mem_paging_enable(xc_interface *xch, domid_t domain_id, uint32_t *port) @@ -49,25 +63,22 @@ int xc_mem_paging_disable(xc_interface *xch, domid_t domain_id) int xc_mem_paging_nominate(xc_interface *xch, domid_t domain_id, unsigned long gfn) { -return xc_mem_event_memop(xch, domain_id, +return xc_mem_paging_memop(xch, domain_id, XENMEM_paging_op_nominate, -XENMEM_paging_op, gfn, NULL); } int xc_mem_paging_evict(xc_interface *xch, domid_t domain_id, unsigned long gfn) { -return xc_mem_event_memop(xch, domain_id, +return xc_mem_paging_memop(xch, domain_id, XENMEM_paging_op_evict, -XENMEM_paging_op, gfn, NULL); } int xc_mem_paging_prep(xc_interface *xch, domid_t domain_id, unsigned long gfn) { -return xc_mem_event_memop(xch, domain_id, +return xc_mem_paging_memop(xch, domain_id, XENMEM_paging_op_prep, -XENMEM_paging_op, gfn, NULL); } @@ -87,9 +98,8 @@ int xc_mem_paging_load(xc_interface *xch, domid_t domain_id, if ( mlock(buffer, XC_PAGE_SIZE) ) return -1; -rc = xc_mem_event_memop(xch, domain_id, +rc = xc_mem_paging_memop(xch, domain_id, XENMEM_paging_op_prep, -XENMEM_paging_op, gfn, buffer); old_errno = errno; diff --git a/tools/libxc/xc_private.h b/tools/libxc/xc_private.h index 45b8644..f1f601c 100644 --- a/tools/libxc/xc_private.h +++ b/tools/libxc/xc_private.h @@ -425,9 +425,6 @@ int xc_ffs64(uint64_t x); */ int xc_mem_event_control(xc_interface *xch, domid_t domain_id, unsigned int op, unsigned int mode, uint32_t *port); -int xc_mem_event_memop(xc_interface *xch, domid_t domain_id, -unsigned int op, unsigned int mode, -uint64_t gfn, void *buffer); /* * Enables mem_event and returns the mapped ring page indicated by param. * param can be HVM_PARAM_PAGING/ACCESS/SHARING_RING_PFN diff --git a/xen/arch/x86/mm/mem_paging.c b/xen/arch/x86/mm/mem_paging.c index 65f6a3d..f28e65b 100644 --- a/xen/arch/x86/mm/mem_paging.c +++ b/xen/arch/x86/mm/mem_paging.c @@ -25,31 +25,31 @@ #include -int mem_paging_memop(struct domain *d, xen_mem_event_op_t *mec) +int mem_paging_memop(struct domain *d, xen_mem_paging_op_t *mpc) { if ( unlikely(!d->mem_event->paging.ring_page) ) return -ENODEV; -switch( mec->op ) +switch( mpc->op ) { case XENM
[Xen-devel] [RFC PATCH V2 0/8] xen: Clean-up of mem_event subsystem
This patch series aims to clean up the mem_event subsystem within Xen. The original use-case for this system was to allow external helper applications running in privileged domains to control various memory operations performed by Xen. Amongs these were paging, sharing and access control. The subsystem has since been extended to also deliver non-memory related events, namely various HVM debugging events (INT3, MTF, MOV-TO-CR, MOV-TO-MSR). The structures and naming of related functions however has not caught up to these new use-cases, thus leaving many ambigouities in the code. In this series we convert the mem_event structures to a union of sub-structures which clearly define the scope of information that is transmitted via the event delivery mechanism. Afterwards, we clean up the naming of the structures and related functions to more clearly be in line with their actual operations. This RFC PATCH series is also available at: https://github.com/tklengyel/xen/tree/mem_event_cleanup2 Razvan Cojocaru (1): xen/mem_event: Cleanup of mem_event structures Tamas K Lengyel (7): xen/mem_event: Rename the mem_event ring from 'access' to 'monitor' xen/mem_paging: Convert mem_event_op to mem_paging_op x86/hvm: rename hvm_memory_event_* functions to hvm_event_* xen/mem_event: Rename mem_event to vm_event xen/vm_event: Decouple vm_event and mem_access. tools/tests: Clean-up tools/tests/xen-access x86/hvm: factor out vm_event related functions into separate file docs/misc/pvh-readme.txt| 2 +- tools/libxc/Makefile| 2 +- tools/libxc/xc_domain_restore.c | 14 +- tools/libxc/xc_domain_save.c| 4 +- tools/libxc/xc_hvm_build_x86.c | 2 +- tools/libxc/xc_mem_access.c | 10 +- tools/libxc/xc_mem_event.c | 178 - tools/libxc/xc_mem_paging.c | 38 +- tools/libxc/xc_memshr.c | 12 +- tools/libxc/xc_private.h| 9 +- tools/libxc/xc_vm_event.c | 162 tools/libxc/xg_save_restore.h | 2 +- tools/tests/xen-access/xen-access.c | 210 -- tools/xenpaging/pagein.c| 2 +- tools/xenpaging/xenpaging.c | 150 tools/xenpaging/xenpaging.h | 8 +- xen/arch/x86/domain.c | 2 +- xen/arch/x86/domctl.c | 4 +- xen/arch/x86/hvm/Makefile | 3 +- xen/arch/x86/hvm/emulate.c | 4 +- xen/arch/x86/hvm/event.c| 195 ++ xen/arch/x86/hvm/hvm.c | 154 +--- xen/arch/x86/hvm/vmx/vmcs.c | 4 +- xen/arch/x86/hvm/vmx/vmx.c | 7 +- xen/arch/x86/mm/hap/nested_ept.c| 4 +- xen/arch/x86/mm/hap/nested_hap.c| 4 +- xen/arch/x86/mm/mem_paging.c| 16 +- xen/arch/x86/mm/mem_sharing.c | 31 +- xen/arch/x86/mm/p2m-pod.c | 4 +- xen/arch/x86/mm/p2m-pt.c| 4 +- xen/arch/x86/mm/p2m.c | 213 ++- xen/arch/x86/x86_64/compat/mm.c | 12 +- xen/arch/x86/x86_64/mm.c| 13 +- xen/common/Makefile | 2 +- xen/common/domain.c | 12 +- xen/common/domctl.c | 6 +- xen/common/mem_access.c | 24 +- xen/common/mem_event.c | 742 xen/common/vm_event.c | 742 xen/drivers/passthrough/pci.c | 2 +- xen/include/Makefile| 2 +- xen/include/asm-arm/p2m.h | 6 +- xen/include/asm-x86/domain.h| 4 +- xen/include/asm-x86/hvm/emulate.h | 2 +- xen/include/asm-x86/hvm/event.h | 40 ++ xen/include/asm-x86/hvm/hvm.h | 11 - xen/include/asm-x86/mem_paging.h| 2 +- xen/include/asm-x86/p2m.h | 16 +- xen/include/public/domctl.h | 44 +-- xen/include/public/hvm/params.h | 2 +- xen/include/public/mem_event.h | 134 --- xen/include/public/memory.h | 6 +- xen/include/public/vm_event.h | 197 ++ xen/include/xen/mem_access.h| 4 +- xen/include/xen/mem_event.h | 143 --- xen/include/xen/p2m-common.h| 4 +- xen/include/xen/sched.h | 24 +- xen/include/xen/vm_event.h | 87 + xen/include/xsm/dummy.h | 6 +- xen/include/xsm/xsm.h | 14 +- xen/xsm/dummy.c | 6 +- xen/xsm/flask/hooks.c | 36 +- xen/xsm/flask/policy/access_vectors | 2 +- 63 files changed, 1909 insertions(+), 1892 deletions(-) delete mode 100644 tools/libxc/xc_mem_event.c create mode 100644 tools/libxc/xc_vm_event.c create mode 100644 xen/arch/x86/hvm/event.c delete mode 100644 xen/common/mem_event.c create mode 100644 xen/common/vm_event.c create mode 100644 xen/include/asm-x86/hvm/event.h delete mode 100644 xen/include/public/mem_event.h create mode 100644 xen/include/public/vm_event.h delete mode 100644 xen/include/xen/m
[Xen-devel] [RFC PATCH V2 2/8] xen/mem_event: Rename the mem_event ring from 'access' to 'monitor'
The name of the ring still implies it is used only for memory accesses, which is no longer the case. It is also used to deliver variuos HVM events, thus the name "monitor" is more appropriate in this setting. Signed-off-by: Tamas K Lengyel --- tools/libxc/xc_domain_restore.c | 14 +++--- tools/libxc/xc_domain_save.c| 4 ++-- tools/libxc/xc_hvm_build_x86.c | 2 +- tools/libxc/xc_mem_access.c | 8 tools/libxc/xc_mem_event.c | 8 tools/libxc/xg_save_restore.h | 2 +- xen/arch/x86/hvm/hvm.c | 4 ++-- xen/arch/x86/hvm/vmx/vmcs.c | 2 +- xen/arch/x86/mm/p2m.c | 2 +- xen/common/mem_access.c | 8 xen/common/mem_event.c | 22 +++--- xen/include/public/domctl.h | 12 ++-- xen/include/public/hvm/params.h | 2 +- xen/include/xen/sched.h | 4 ++-- 14 files changed, 47 insertions(+), 47 deletions(-) diff --git a/tools/libxc/xc_domain_restore.c b/tools/libxc/xc_domain_restore.c index a382701..2ab9f46 100644 --- a/tools/libxc/xc_domain_restore.c +++ b/tools/libxc/xc_domain_restore.c @@ -734,7 +734,7 @@ typedef struct { uint64_t vcpumap[XC_SR_MAX_VCPUS/64]; uint64_t identpt; uint64_t paging_ring_pfn; -uint64_t access_ring_pfn; +uint64_t monitor_ring_pfn; uint64_t sharing_ring_pfn; uint64_t vm86_tss; uint64_t console_pfn; @@ -828,15 +828,15 @@ static int pagebuf_get_one(xc_interface *xch, struct restore_ctx *ctx, // DPRINTF("paging ring pfn address: %llx\n", buf->paging_ring_pfn); return pagebuf_get_one(xch, ctx, buf, fd, dom); -case XC_SAVE_ID_HVM_ACCESS_RING_PFN: +case XC_SAVE_ID_HVM_MONITOR_RING_PFN: /* Skip padding 4 bytes then read the mem access ring location. */ -if ( RDEXACT(fd, &buf->access_ring_pfn, sizeof(uint32_t)) || - RDEXACT(fd, &buf->access_ring_pfn, sizeof(uint64_t)) ) +if ( RDEXACT(fd, &buf->monitor_ring_pfn, sizeof(uint32_t)) || + RDEXACT(fd, &buf->monitor_ring_pfn, sizeof(uint64_t)) ) { PERROR("error read the access ring pfn"); return -1; } -// DPRINTF("access ring pfn address: %llx\n", buf->access_ring_pfn); +// DPRINTF("monitor ring pfn address: %llx\n", buf->monitor_ring_pfn); return pagebuf_get_one(xch, ctx, buf, fd, dom); case XC_SAVE_ID_HVM_SHARING_RING_PFN: @@ -1660,8 +1660,8 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom, xc_hvm_param_set(xch, dom, HVM_PARAM_IDENT_PT, pagebuf.identpt); if ( pagebuf.paging_ring_pfn ) xc_hvm_param_set(xch, dom, HVM_PARAM_PAGING_RING_PFN, pagebuf.paging_ring_pfn); -if ( pagebuf.access_ring_pfn ) -xc_hvm_param_set(xch, dom, HVM_PARAM_ACCESS_RING_PFN, pagebuf.access_ring_pfn); +if ( pagebuf.monitor_ring_pfn ) +xc_hvm_param_set(xch, dom, HVM_PARAM_MONITOR_RING_PFN, pagebuf.monitor_ring_pfn); if ( pagebuf.sharing_ring_pfn ) xc_hvm_param_set(xch, dom, HVM_PARAM_SHARING_RING_PFN, pagebuf.sharing_ring_pfn); if ( pagebuf.vm86_tss ) diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c index 254fdb3..949ef64 100644 --- a/tools/libxc/xc_domain_save.c +++ b/tools/libxc/xc_domain_save.c @@ -1664,9 +1664,9 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter goto out; } -chunk.id = XC_SAVE_ID_HVM_ACCESS_RING_PFN; +chunk.id = XC_SAVE_ID_HVM_MONITOR_RING_PFN; chunk.data = 0; -xc_hvm_param_get(xch, dom, HVM_PARAM_ACCESS_RING_PFN, &chunk.data); +xc_hvm_param_get(xch, dom, HVM_PARAM_MONITOR_RING_PFN, &chunk.data); if ( (chunk.data != 0) && wrexact(io_fd, &chunk, sizeof(chunk)) ) diff --git a/tools/libxc/xc_hvm_build_x86.c b/tools/libxc/xc_hvm_build_x86.c index c81a25b..30a929d 100644 --- a/tools/libxc/xc_hvm_build_x86.c +++ b/tools/libxc/xc_hvm_build_x86.c @@ -497,7 +497,7 @@ static int setup_guest(xc_interface *xch, special_pfn(SPECIALPAGE_CONSOLE)); xc_hvm_param_set(xch, dom, HVM_PARAM_PAGING_RING_PFN, special_pfn(SPECIALPAGE_PAGING)); -xc_hvm_param_set(xch, dom, HVM_PARAM_ACCESS_RING_PFN, +xc_hvm_param_set(xch, dom, HVM_PARAM_MONITOR_RING_PFN, special_pfn(SPECIALPAGE_ACCESS)); xc_hvm_param_set(xch, dom, HVM_PARAM_SHARING_RING_PFN, special_pfn(SPECIALPAGE_SHARING)); diff --git a/tools/libxc/xc_mem_access.c b/tools/libxc/xc_mem_access.c index 55d0e9f..1c979ed 100644 --- a/tools/libxc/xc_mem_access.c +++ b/tools/libxc/xc_mem_access.c @@ -26,22 +26,22 @@ void *xc_mem_access_enable(xc_interface *xch, domid_t domain_id, uint32_t *port) { -return xc_mem_event_enable(xch, domain_id, HVM_PARAM_ACCESS_RING_PFN, +return xc_mem_event_enabl
[Xen-devel] [libvirt bisection] complete build-i386-libvirt
branch xen-unstable xen branch xen-unstable job build-i386-libvirt test libvirt-build Tree: libvirt git://libvirt.org/libvirt.git Tree: qemu git://xenbits.xen.org/staging/qemu-xen-unstable.git Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git Tree: xen git://xenbits.xen.org/xen.git *** Found and reproduced problem changeset *** Bug is in tree: libvirt git://libvirt.org/libvirt.git Bug introduced: 2c78051a14acfb7aba078d569b1632dfe0ca0853 Bug not present: 7ad117b2e33039737126ce9df7a267a6f939988d commit 2c78051a14acfb7aba078d569b1632dfe0ca0853 Author: Kiarie Kahurani Date: Thu Sep 11 07:10:33 2014 +0300 src/xenconfig: Xen-xl parser Introduce a Xen xl parser This parser allows for users to convert the new xl disk format and spice graphics config to libvirt xml format and vice versa. Regarding the spice graphics config, the code is pretty much straight forward. For the disk {formating, parsing}, this parser takes care of the new xl format which include positional parameters and key/value parameters. In xl format disk config a consists of parameters separated by commas. If the parameters do not contain an '=' they are automatically assigned to certain options following the order below target, format, vdev, access The above are the only mandatory parameters in the but there are many more disk config options. These options can be specified as key=value pairs. This takes care of the rest of the options such as devtype, backend, backendtype, script, direct-io-safe, The positional paramters can also be specified in key/value form for example /dev/vg/guest-volume,,hda /dev/vg/guest-volume,raw,hda,rw format=raw, vdev=hda, access=rw, target=/dev/vg/guest-volume are interpleted to one config. In xm format, the above diskspec would be written as phy:/dev/vg/guest-volume,hda,w The disk parser is based on the same parser used successfully by the Xen project for several years now. Ian Jackson authored the scanner, which is used by this commit with mimimal changes. Only the PREFIX option is changed, to produce function and file names more consistent with libvirt's convention. Signed-off-by: Kiarie Kahurani Signed-off-by: Jim Fehlig For bisection revision-tuple graph see: http://www.chiark.greenend.org.uk/~xensrcts/results/bisect.libvirt.build-i386-libvirt.libvirt-build.html Revision IDs in each graph node refer, respectively, to the Trees above. Searching for failure / basis pass: 33474 fail [host=field-cricket] / 33422 [host=scape-moth] 33404 [host=rice-weevil] 32648 [host=itch-mite] 32617 [host=grain-weevil] 32596 ok. Failure / basis pass flights: 33474 / 32596 (tree in latest but not in basispass: libvirt_gnulib) (tree with no url: seabios) (tree in basispass but not in latest: gnulib_libvirt) Tree: libvirt git://libvirt.org/libvirt.git Tree: qemu git://xenbits.xen.org/staging/qemu-xen-unstable.git Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git Tree: xen git://xenbits.xen.org/xen.git Latest 368042cf4a6bca34c7da45517a6e3ce91876c53c b0d42741f8e9a00854c3b3faca1da84bfc69bf22 1ebb75b1fee779621b63e84fefa7b07354c43a99 36174af3fbeb1b662c0eadbfa193e77f68cc955b Basis pass 3865941be1fa5466d7892b24f1a2d7ee14f86712 b0d42741f8e9a00854c3b3faca1da84bfc69bf22 1ebb75b1fee779621b63e84fefa7b07354c43a99 36174af3fbeb1b662c0eadbfa193e77f68cc955b Generating revisions with ./adhoc-revtuple-generator git://libvirt.org/libvirt.git#3865941be1fa5466d7892b24f1a2d7ee14f86712-368042cf4a6bca34c7da45517a6e3ce91876c53c git://xenbits.xen.org/staging/qemu-xen-unstable.git#b0d42741f8e9a00854c3b3faca1da84bfc69bf22-b0d42741f8e9a00854c3b3faca1da84bfc69bf22 git://xenbits.xen.org/staging/qemu-upstream-unstable.git#1ebb75b1fee779621b63e84fefa7b07354c43a99-1ebb75b1fee779621b63e84fefa7b07354c43a99 git://xenbits.xen.org/xen.git#36174af3fbeb1b662c0eadbfa193e77f68cc955b-36174af3fbeb1b662c0eadbfa193e77f68cc955b + exec + sh -xe + cd /export/home/osstest/repos/libvirt + git remote set-url origin git://drall.uk.xensource.com:9419/git://libvirt.org/libvirt.git + git fetch -p origin +refs/heads/*:refs/remotes/origin/* + exec + sh -xe + cd /export/home/osstest/repos/libvirt + git remote set-url origin git://drall.uk.xensource.com:9419/git://libvirt.org/libvirt.git + git fetch -p origin +refs/heads/*:refs/remotes/origin/* Loaded 1001 nodes in revision graph Searching for test results: 32596 pass 3865941be1fa5466d7892b24f1a2d7ee14f86712 b0d42741f8e9a00854c3b3faca1da84bfc69bf22 1ebb75b1fee779621b63e84fefa7b07354c43a99 36174af3fbeb1b662c0eadbfa193e77f68cc955b 32617 [host=grain-weevil] 32648 [host=itch-mite] 33162 [host=rice-weevil] 33117 [host=rice-weevil] 33163
[Xen-devel] [linux-3.10 test] 33466: regressions - trouble: broken/fail/pass
flight 33466 linux-3.10 real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33466/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-libvirt 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-rhel6hvm-intel 5 xen-bootfail REGR. vs. 26303 test-amd64-i386-qemut-rhel6hvm-intel 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-xl5 xen-boot fail REGR. vs. 26303 test-amd64-i386-qemuu-rhel6hvm-intel 3 host-install(3) broken REGR. vs. 26303 test-amd64-amd64-xl 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-xl-credit26 leak-check/basis(6) fail REGR. vs. 26303 test-amd64-i386-xl-qemut-win7-amd64 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-freebsd10-i386 5 xen-bootfail REGR. vs. 26303 test-amd64-amd64-xl-qemuu-winxpsp3 5 xen-bootfail REGR. vs. 26303 test-amd64-i386-xl-winxpsp3-vcpus1 5 xen-bootfail REGR. vs. 26303 test-amd64-i386-xl-multivcpu 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-xl-qemuu-ovmf-amd64 5 xen-boot fail REGR. vs. 26303 test-amd64-amd64-pair 7 xen-boot/src_host fail REGR. vs. 26303 test-amd64-i386-xl-qemuu-win7-amd64 5 xen-boot fail REGR. vs. 26303 test-amd64-amd64-xl-qemut-win7-amd64 7 windows-install fail REGR. vs. 26303 test-amd64-amd64-xl-win7-amd64 5 xen-bootfail REGR. vs. 26303 test-amd64-i386-xl-qemut-winxpsp3 5 xen-boot fail REGR. vs. 26303 test-amd64-amd64-xl-qemuu-win7-amd64 5 xen-boot fail REGR. vs. 26303 test-amd64-amd64-xl-qemuu-ovmf-amd64 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 5 xen-boot fail REGR. vs. 26261 test-amd64-i386-pair 8 xen-boot/dst_host fail REGR. vs. 26303 test-amd64-i386-pair 7 xen-boot/src_host fail REGR. vs. 26303 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-xl-winxpsp3 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-xl-win7-amd64 5 xen-boot fail REGR. vs. 26303 test-amd64-amd64-xl-winxpsp3 5 xen-boot fail REGR. vs. 26303 test-amd64-amd64-xl-qemut-winxpsp3 7 windows-install fail REGR. vs. 26303 test-amd64-i386-xl-qemuu-winxpsp3 5 xen-boot fail REGR. vs. 26303 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-pvh-intel 5 xen-bootfail blocked in 26303 test-amd64-i386-rumpuserxen-i386 5 xen-boot fail blocked in 26303 test-amd64-amd64-xl-pvh-amd 5 xen-boot fail blocked in 26303 test-amd64-amd64-xl-pcipt-intel 5 xen-boot fail REGR. vs. 26303 test-amd64-i386-rhel6hvm-amd 5 xen-bootfail like 28907-bisect test-amd64-i386-qemuu-rhel6hvm-amd 7 redhat-install fail like 26261 test-amd64-i386-qemut-rhel6hvm-amd 5 xen-boot fail like 28953-bisect test-amd64-amd64-xl-sedf-pin 5 xen-boot fail REGR. vs. 26303 test-amd64-amd64-xl-sedf 8 debian-fixup fail REGR. vs. 26303 test-amd64-i386-freebsd10-amd64 5 xen-boot fail like 29368-bisect test-amd64-i386-xl-qemuu-debianhvm-amd64 5 xen-boot fail blocked in 26303 test-amd64-i386-xl-qemut-debianhvm-amd64 5 xen-boot fail blocked in 26303 test-amd64-amd64-xl-qemut-debianhvm-amd64 5 xen-bootfail blocked in 26303 test-amd64-amd64-xl-qemuu-debianhvm-amd64 5 xen-bootfail blocked in 26303 Tests which did not succeed, but are not blocking: test-amd64-amd64-libvirt 9 guest-start fail never pass test-armhf-armhf-xl 5 xen-boot fail never pass test-armhf-armhf-libvirt 5 xen-boot fail never pass version targeted for testing: linux5054319d9fe56ed1ef6c83c00ae37fdc2b277a79 baseline version: linuxbe67db109090b17b56eb8eb2190cd70700f107aa 841 people touched revisions under test, not listing them all jobs: 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 bui
Re: [Xen-devel] (v2) Design proposal for RMRR fix
> From: George Dunlap > Sent: Thursday, January 15, 2015 7:45 PM > > > > > If above high level flow can be agreed, then we can move forward to > > discuss next level detail e.g. how to pass the rmrr list cross different > > components. :-) > > I think we're definitely ready to move on. There are a bunch of tiny > details we could discuss, but those are mostly minor changes that can > be tweaked when the patches are submitted. > Thanks for all the good discussions in the thread, and good we have consensus to move forward now. still one open to hear suggestion though, regarding to how we want to pass the reserved regions to domain builder and hvmloader (for Xen we will extend related assignment hypercall to include per device override). one simple solution is to extend xc_hvm_build_args and hvm_info_table to include specified regions, with the limitation on defining a fixed number (possibly use E820_MAX as a reasonable assumption) another option is to place the information in xenstore which is more flexible. However domain builder doesn't use xenstore right now (suppose extending use xenstore is not complex?) or any other thought to be evaluated? Thanks Kevin ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Re: [Xen-devel] (v2) Design proposal for RMRR fix
> From: Jan Beulich [mailto:jbeul...@suse.com] > Sent: Thursday, January 15, 2015 6:06 PM > > > The composed reserved region list is then passed to domain builder, > > which tries to detect and avoid conflicts when populating guest RAM. > > To avoid breaking lowmem/highmem layout, we can define a > > lowmem_guard so if making hole for a region would make lowmem_top > > below lowmem_guard we'll treat this region as a conflict. We may > > either just hardcode the value like 2G (or other reasonable value in your > > mind), or allow user to config e.g.: > > rmrr = [ 'host, check=force/try', 'lowmem_boundary=2G' ] > > To me it looks like lowmem_boundary makes sense only when > check=try. yes it only makes sense when check=try but the setting should be global i.e. we don't want to have it configured per-device, right? do you have a thought on a better option here? > > > > If above high level flow can be agreed, then we can move forward to > > discuss next level detail e.g. how to pass the rmrr list cross different > > components. :-) > > Apart from the minor detail mentioned I think the above is a good > representation of what we want/need. > Thanks for your valuable inputs. Kevin ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [xen-4.4-testing test] 33464: regressions - trouble: blocked/broken/fail/pass
flight 33464 xen-4.4-testing real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/33464/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-pair 17 guest-migrate/src_host/dst_host fail REGR. vs. 33292 Tests which are failing intermittently (not blocking): test-amd64-amd64-pv 3 host-install(3) broken pass in 33437 test-amd64-i386-xl-qemuu-ovmf-amd64 3 host-install(3)broken pass in 33437 Regressions which are regarded as allowable (not blocking): test-amd64-i386-xl-qemut-win7-amd64 7 windows-install fail in 33437 like 33186 Tests which did not succeed, but are not blocking: test-amd64-amd64-rumpuserxen-amd64 1 build-check(1) blocked n/a test-amd64-i386-rumpuserxen-i386 1 build-check(1) blocked n/a test-armhf-armhf-libvirt 9 guest-start fail never pass test-amd64-i386-libvirt 9 guest-start fail never pass test-armhf-armhf-xl 10 migrate-support-checkfail never pass test-amd64-amd64-libvirt 9 guest-start fail never pass build-i386-rumpuserxen6 xen-buildfail never pass test-amd64-amd64-xl-qemut-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-win7-amd64 14 guest-stop fail never pass build-amd64-rumpuserxen 6 xen-buildfail never pass test-amd64-amd64-xl-win7-amd64 14 guest-stop fail never pass test-amd64-amd64-xl-winxpsp3 14 guest-stop fail never pass test-amd64-amd64-xl-pcipt-intel 9 guest-start fail never pass test-amd64-i386-xend-winxpsp3 17 leak-check/check fail never pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-winxpsp3 14 guest-stop fail never pass test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop fail never pass test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop fail never pass test-amd64-i386-xend-qemut-winxpsp3 17 leak-check/checkfail never pass test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop fail never pass test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop fail never pass version targeted for testing: xen 30f10d4d2b102bd7184b84c9cc3d2246f060706a baseline version: xen 089dd62211042011e26de1b87b558394cdfe388b People who touched revisions under test: Ian Campbell Ian Jackson Luis R. Rodriguez Wei Liu jobs: build-amd64-xend pass build-i386-xend 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 build-amd64-rumpuserxen fail build-i386-rumpuserxen fail test-amd64-amd64-xl pass test-armhf-armhf-xl pass test-amd64-i386-xl pass test-amd64-i386-rhel6hvm-amd pass test-amd64-i386-qemut-rhel6hvm-amd pass test-amd64-i386-qemuu-rhel6hvm-amd pass test-amd64-amd64-xl-qemut-debianhvm-amd64pass test-amd64-i386-xl-qemut-debianhvm-amd64 pass test-amd64-amd64-xl-qemuu-debianhvm-amd64pass test-amd64-i386-xl-qemuu-debianhvm-amd64 pass test-amd64-i386-freebsd10-amd64 pass test-amd64-amd64-xl-qemuu-ovmf-amd64 pass test-amd64-i386-xl-qemuu-ovmf-amd64 broken test-amd64-amd64-rumpuserxen-amd64 blocked test-amd64-amd64-xl-qemut-win7-amd64 fail test-amd64-i386-xl-qemut-win7-amd64 fail t