[Xen-devel] [xen-unstable test] 95893: tolerable trouble: blocked/broken/fail/pass - PUSHED
flight 95893 xen-unstable real [real] http://logs.test-lab.xenproject.org/osstest/logs/95893/ Failures :-/ but no regressions. Tests which are failing intermittently (not blocking): test-armhf-armhf-libvirt 3 host-install(3) broken pass in 95872 test-armhf-armhf-xl-arndale 7 host-ping-check-xen fail in 95872 pass in 95893 test-armhf-armhf-xl-credit2 6 xen-bootfail pass in 95872 Regressions which are regarded as allowable (not blocking): build-amd64-rumpuserxen 6 xen-buildfail like 95842 build-i386-rumpuserxen6 xen-buildfail like 95842 test-amd64-amd64-xl-rtds 9 debian-install fail like 95842 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 95842 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail like 95842 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 95842 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 95842 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 14 guest-saverestore fail in 95872 never pass test-armhf-armhf-libvirt 12 migrate-support-check fail in 95872 never pass test-armhf-armhf-xl-credit2 13 saverestore-support-check fail in 95872 never pass test-armhf-armhf-xl-credit2 12 migrate-support-check fail in 95872 never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-xsm 14 guest-saverestorefail 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 13 guest-saverestorefail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail 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-multivcpu 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-amd64-i386-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-rtds 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-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-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-xsm 12 migrate-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 version targeted for testing: xen 08754333892407f415045c05659783baeb8fc5d4 baseline version: xen 759b9618b8a22ddd87d01c0bff5366814b17eea7 Last test of basis95842 2016-06-17 00:49:45 Z2 days Testing same since95872 2016-06-17 22:28:26 Z1 days2 attempts People who touched revisions under test: Andrew Cooper Dario Faggioli David Scott Dongli Zhang George Dunlap Ian Jackson Jan Beulich Juergen Gross Julien Grall Kevin Tian Peng Fan Quan Xu Roger Pau Monné Shanker Donthineni Shannon Zhao Stefano Stabellini Suravee Suthikulpanit Wei Chen Wei Liu jobs: build-amd64-xsm pass build-armhf-xsm pass build-i386-xsm pass build-amd64
[Xen-devel] [qemu-upstream-4.3-testing test] 95895: regressions - FAIL
flight 95895 qemu-upstream-4.3-testing real [real] http://logs.test-lab.xenproject.org/osstest/logs/95895/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: build-amd64-libvirt 5 libvirt-build fail REGR. vs. 80927 build-i386-libvirt5 libvirt-build fail REGR. vs. 80927 Tests which are failing intermittently (not blocking): test-amd64-i386-xl-qemuu-win7-amd64 15 guest-localmigrate/x10 fail in 95874 pass in 95895 test-amd64-amd64-pv 17 guest-localmigrate/x10 fail pass in 95874 Regressions which are regarded as allowable (not blocking): test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 80927 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 80927 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt-vhd 1 build-check(1) blocked n/a test-amd64-amd64-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail never pass test-amd64-i386-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail never pass version targeted for testing: qemuu12e8fccf5b5460be7aecddc71d27eceaba6e1f15 baseline version: qemuu10c1b763c26feb645627a1639e722515f3e1e876 Last test of basis80927 2016-02-06 13:30:02 Z 133 days Failing since 93977 2016-05-10 11:09:16 Z 39 days 129 attempts Testing same since95534 2016-06-11 00:59:46 Z8 days9 attempts People who touched revisions under test: Anthony PERARD Gerd Hoffmann Ian Jackson Stefano Stabellini Wei Liu jobs: build-amd64 pass build-i386 pass build-amd64-libvirt fail build-i386-libvirt fail build-amd64-pvopspass build-i386-pvops pass test-amd64-amd64-xl pass test-amd64-i386-xl pass test-amd64-i386-qemuu-rhel6hvm-amd 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 fail test-amd64-i386-xl-qemuu-ovmf-amd64 fail test-amd64-amd64-xl-qemuu-win7-amd64 fail test-amd64-i386-xl-qemuu-win7-amd64 fail test-amd64-amd64-xl-credit2 pass test-amd64-i386-freebsd10-i386 pass test-amd64-i386-qemuu-rhel6hvm-intel pass test-amd64-amd64-libvirt blocked test-amd64-i386-libvirt blocked test-amd64-amd64-xl-multivcpupass test-amd64-amd64-pairpass test-amd64-i386-pair pass test-amd64-amd64-pv fail test-amd64-i386-pv pass test-amd64-amd64-amd64-pvgrubpass test-amd64-amd64-i386-pvgrub pass test-amd64-amd64-pygrub pass test-amd64-amd64-xl-qcow2pass test-amd64-i386-xl-raw pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 pass test-amd64-amd64-libvirt-vhd blocked test-amd64-amd64-xl-qemuu-winxpsp3 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 Not pushing. commit 12e8fccf5b5460be7aecddc71d27eceaba6e1f15 Author: Ian Jackson Date: Thu May 26 16:21:56 20
[Xen-devel] [qemu-mainline test] 95888: regressions - FAIL
flight 95888 qemu-mainline real [real] http://logs.test-lab.xenproject.org/osstest/logs/95888/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 9 debian-hvm-install fail REGR. vs. 94856 test-armhf-armhf-xl-arndale 15 guest-start/debian.repeat fail REGR. vs. 94856 test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm 9 debian-hvm-install fail REGR. vs. 94856 Regressions which are regarded as allowable (not blocking): test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 94856 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 94856 test-amd64-amd64-xl-rtds 9 debian-install fail like 94856 Tests which did not succeed, but are not blocking: test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail 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-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-i386-libvirt 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-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-armhf-armhf-xl-multivcpu 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail 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-libvirt-vhd 11 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-libvirt 14 guest-saverestorefail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-xsm 12 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 test-armhf-armhf-libvirt-raw 13 guest-saverestorefail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-rtds 12 migrate-support-checkfail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass version targeted for testing: qemuu482b61844ae7c6df39df0b48ac90ffbc87bed7d2 baseline version: qemuud6550e9ed2e1a60d889dfb721de00d9a4e3bafbe Last test of basis94856 2016-05-27 20:14:49 Z 22 days Failing since 94983 2016-05-31 09:40:12 Z 18 days 23 attempts Testing same since95868 2016-06-17 17:52:56 Z1 days2 attempts People who touched revisions under test: Alberto Garcia Alex Bennée Alex Bligh Alex Williamson Alexander Graf Alexey Kardashevskiy Alistair Francis Amit Shah Andrea Arcangeli Andrew Jeffery Andrew Jones Anthony PERARD Anton Blanchard Ard Biesheuvel Benjamin Herrenschmidt Bharata B Rao Cao jin Changlong Xie Chao Peng Chen Fan Christian Borntraeger Christophe Lyon Cole Robinson Colin Lord Corey Minyard Cornelia Huck Cédric Le Goater Daniel P. Berrange David Gibson David Hildenbrand Denis V. Lunev Dmitry Fleytman Dmitry Fleytman Dmitry Osipenko Dr. David Alan Gilbert Drew Jones Edgar E. Iglesias Eduardo Habkost Emilio G. Cota Eric Blake Fam Zheng Gavin Shan Gerd Hoffmann Greg Kurz Gu Zheng Guillaume Delbergue Halil Pasic Hannes Reinecke Hyun Kwon Igor Mammedov Jakub Horak James Clarke Jan Beulich Jan Vesely Jason Wang Jean-Christophe Dubois Jens Wiklander Jerome Forissier Kevin Wolf KONRAD
[Xen-devel] [qemu-mainline bisection] complete test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm
branch xen-unstable xenbranch xen-unstable job test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm testid debian-hvm-install Tree: libvirt git://xenbits.xen.org/libvirt.git Tree: libvirt_gnulib git://git.sv.gnu.org/gnulib.git 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://git.qemu.org/qemu.git Tree: xen git://xenbits.xen.org/xen.git *** Found and reproduced problem changeset *** Bug is in tree: qemuu git://git.qemu.org/qemu.git Bug introduced: 8156d480861e937768d7d9ac0b73c1e74c368f1d Bug not present: 46e7b70699d8bf4db08c8bb5111974318dd5416d Last fail repro: http://logs.test-lab.xenproject.org/osstest/logs/95867/ commit 8156d480861e937768d7d9ac0b73c1e74c368f1d Author: Gerd Hoffmann Date: Thu Jun 2 10:48:25 2016 +0200 pc: allow raising low memory via max-ram-below-4g option This patch extends the functionality of the max-ram-below-4g option to also allow increasing lowmem. Use case: Give as much memory as possible to legacy non-PAE guests. While being at it also rework the lowmem calculation logic and add a longish comment describing how it works and what the compatibility constrains are. Note: This is a incompatible change. When setting max-ram-below-4g to a value larger than 3.5G (or 3G with gigabyte alignment) it has no effect on older qemu versions: qemu silently ignores it. With the patch applied it actually has an effect and changes the ram layout. Highly unlikely to hit in practive though as there is no reason start old qemu versions that way. Signed-off-by: Gerd Hoffmann Reviewed-by: Eduardo Habkost Message-Id: <1464857305-26675-1-git-send-email-kra...@redhat.com> Signed-off-by: Paolo Bonzini For bisection revision-tuple graph see: http://logs.test-lab.xenproject.org/osstest/results/bisect/qemu-mainline/test-amd64-i386-libvirt-qemuu-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/qemu-mainline/test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm.debian-hvm-install --summary-out=tmp/95889.bisection-summary --basis-template=94856 --blessings=real,real-bisect qemu-mainline test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm debian-hvm-install Searching for failure / basis pass: 95868 fail [host=merlot1] / 95502 [host=chardonnay0] 95451 [host=huxelrebe0] 95397 [host=fiano0] 95352 [host=baroque1] 95299 [host=elbling0] 95276 [host=baroque0] 95258 [host=italia0] 95237 [host=italia1] 95213 [host=fiano1] 95183 [host=rimava0] 95144 [host=nocera0] 95121 [host=pinot1] 95089 [host=elbling1] 94994 [host=nocera1] 94856 ok. Failure / basis pass flights: 95868 / 94856 (tree with no url: minios) (tree with no url: ovmf) (tree with no url: seabios) Tree: libvirt git://xenbits.xen.org/libvirt.git Tree: libvirt_gnulib git://git.sv.gnu.org/gnulib.git 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://git.qemu.org/qemu.git Tree: xen git://xenbits.xen.org/xen.git Latest 2c51fa6ec4d34ccdd63f0935fb7530b681b126ac 246b3b28808ee5f4664be674dce573af9497fc7a f06cb456a442c7df95a4ba6e2f3a341cf925d7cf c530a75c1e6a472b0eb9558310b518f0dfcd8860 6e20809727261599e8527c456eb078c0e89139a1 482b61844ae7c6df39df0b48ac90ffbc87bed7d2 759b9618b8a22ddd87d01c0bff5366814b17eea7 Basis pass 4d100c7a41befc21a5c09ad8385c711772714827 6cc32c63e80bc1a30c521b2f07f2b54909b59892 c977650a67e6ca6c3cff9548b031d072d00db80a c530a75c1e6a472b0eb9558310b518f0dfcd8860 df553c056104e3dd8a2bd2e72539a57c4c085bae d6550e9ed2e1a60d889dfb721de00d9a4e3bafbe f5610009529628314c9d1d52b00715fe855fcf06 Generating revisions with ./adhoc-revtuple-generator git://xenbits.xen.org/libvirt.git#4d100c7a41befc21a5c09ad8385c711772714827-2c51fa6ec4d34ccdd63f0935fb7530b681b126ac git://git.sv.gnu.org/gnulib.git#6cc32c63e80bc1a30c521b2f07f2b54909b59892-246b3b28808ee5f4664be674dce573af9497fc7a git://xenbits.xen.org/linux-pvops.git#c977650a67e6ca6c3cff9548b031d072d00db80a-f06cb456a442c7df95a4ba6e2f3a341cf925d7cf git://xenbits.xen.org/osstest/linux-firmware.git#c530a75c1e6a472b0eb9558310b518f0dfcd8860-c530a75c1e6a472b0eb9558310b518f0dfcd8860 git://xenbits.xen.org/qemu-xen-traditional.git#df553c056104e3dd8a2bd2e72539a57c4c085bae-6e20809727261599e8527c456eb078c0e89139a1 git://git.qemu.org/qemu.git#d6550e9ed2e1a60d889dfb721de00d9a4e3bafbe-482b61844ae7c6df39df0b48ac90ffbc87bed7d2 git://xenbits.xen.org/xen.git#f5610009529628314c9d1d52b00715fe855fcf06-759b9618b8a22ddd87d01c0bff5366814b17eea7 Loaded 31153 nodes in revision graph Searching for test resu
[Xen-devel] [ovmf test] 95884: regressions - FAIL
flight 95884 ovmf real [real] http://logs.test-lab.xenproject.org/osstest/logs/95884/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-xl-qemuu-ovmf-amd64 17 guest-start/debianhvm.repeat fail REGR. vs. 94748 test-amd64-amd64-xl-qemuu-ovmf-amd64 17 guest-start/debianhvm.repeat fail REGR. vs. 94748 version targeted for testing: ovmf cc0b456a05f8dd1ebfb9be485465be37e96999e7 baseline version: ovmf dc99315b8732b6e3032d01319d3f534d440b43d0 Last test of basis94748 2016-05-24 22:43:25 Z 25 days Failing since 94750 2016-05-25 03:43:08 Z 24 days 42 attempts Testing same since95884 2016-06-18 13:23:39 Z0 days1 attempts People who touched revisions under test: Ard Biesheuvel Chao Zhang Cinnamon Shia Cohen, Eugene Dandan Bi Darbin Reyes Eric Dong Eugene Cohen Evan Lloyd Fu Siyuan Fu, Siyuan Gary Li Gary Lin Giri P Mudusuru Hao Wu Hegde Nagaraj P hegdenag Heyi Guo Jeff Fan Jiaxin Wu Jiewen Yao Katie Dellaquila Laszlo Ersek Liming Gao lushifex Marvin H?user Marvin Haeuser Maurice Ma Michael Zimmermann Ruiyu Ni Ryan Harkin Sami Mujawar Satya Yarlagadda Sriram Subramanian Star Zeng Tapan Shah Thomas Palmer Yonghong Zhu Zhang, Chao B 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 fail test-amd64-i386-xl-qemuu-ovmf-amd64 fail 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 Not pushing. (No revision log; it would be 2232 lines long.) ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH 2/8] arm/gic-v3: Fold GICR subtable parsing into a new function
Add a new function for parsing GICR subtable and move the code that is specific to GICR table to new function without changing the function gicv3_acpi_init() behavior. Signed-off-by: Shanker Donthineni --- xen/arch/arm/gic-v3.c | 64 +-- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index ab1f380..af12ebc 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1387,6 +1387,36 @@ gic_acpi_parse_madt_distributor(struct acpi_subtable_header *header, return 0; } + +static int __init +gic_acpi_parse_madt_redistributor(struct acpi_subtable_header *header, + const unsigned long end) +{ +struct acpi_madt_generic_redistributor *rdist; +struct rdist_region *region; + +region = gicv3.rdist_regions + gicv3.rdist_count; +rdist = (struct acpi_madt_generic_redistributor *)header; +if ( BAD_MADT_ENTRY(rdist, end) ) +return -EINVAL; + +if ( !rdist->base_address || !rdist->length ) +return -EINVAL; + +region->base = rdist->base_address; +region->size = rdist->length; + +region->map_base = ioremap_nocache(region->base, region->size); +if ( !region->map_base ) +{ +printk("Unable to map GICR registers\n"); +return -ENOMEM; +} +gicv3.rdist_count++; + +return 0; +} + static int __init gic_acpi_get_madt_redistributor_num(struct acpi_subtable_header *header, const unsigned long end) @@ -1402,7 +1432,7 @@ static void __init gicv3_acpi_init(void) struct acpi_table_header *table; struct rdist_region *rdist_regs; acpi_status status; -int count, i; +int count; status = acpi_get_table(ACPI_SIG_MADT, 0, &table); @@ -1433,37 +1463,27 @@ static void __init gicv3_acpi_init(void) if ( count <= 0 ) panic("GICv3: No valid GICR entries exists"); -gicv3.rdist_count = count; - -if ( gicv3.rdist_count > MAX_RDIST_COUNT ) +if ( count > MAX_RDIST_COUNT ) panic("GICv3: Number of redistributor regions is more than" "%d (Increase MAX_RDIST_COUNT!!)\n", MAX_RDIST_COUNT); -rdist_regs = xzalloc_array(struct rdist_region, gicv3.rdist_count); +rdist_regs = xzalloc_array(struct rdist_region, count); if ( !rdist_regs ) panic("GICv3: Failed to allocate memory for rdist regions\n"); -for ( i = 0; i < gicv3.rdist_count; i++ ) -{ -struct acpi_subtable_header *header; -struct acpi_madt_generic_redistributor *gic_rdist; - -header = acpi_table_get_entry_madt(ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR, - i); -if ( !header ) -panic("GICv3: Can't get GICR entry"); - -gic_rdist = - container_of(header, struct acpi_madt_generic_redistributor, header); -rdist_regs[i].base = gic_rdist->base_address; -rdist_regs[i].size = gic_rdist->length; -} +gicv3.rdist_regions = rdist_regs; + +/* Parse always-on power domain Re-distributor entries */ +count = acpi_parse_entries(ACPI_SIG_MADT, + sizeof(struct acpi_table_madt), + gic_acpi_parse_madt_redistributor, table, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR, count); +if ( count <= 0 ) +panic("GICv3: Can't get Redistributor entry"); /* The vGIC code requires the region to be sorted */ sort(rdist_regs, gicv3.rdist_count, sizeof(*rdist_regs), cmp_rdist, NULL); -gicv3.rdist_regions= rdist_regs; - /* Collect CPU base addresses */ count = acpi_parse_entries(ACPI_SIG_MADT, sizeof(struct acpi_table_madt), gic_acpi_parse_madt_cpu, table, -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH 6/8] arm: vgic: Split vgic_domain_init() functionality into two functions
Split code that installs mmio handlers for GICD and Re-distributor regions to a new function. The intension of this separation is to defer steps that registers vgic_v2/v3 mmio handlers. Signed-off-by: Shanker Donthineni --- xen/arch/arm/vgic-v2.c | 10 +++--- xen/arch/arm/vgic-v3.c | 40 +++- xen/arch/arm/vgic.c| 3 +++ xen/include/asm-arm/vgic.h | 2 ++ 4 files changed, 35 insertions(+), 20 deletions(-) diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index f5778e6..d42b408 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -645,6 +645,12 @@ static int vgic_v2_vcpu_init(struct vcpu *v) return 0; } +static void vgic_v2_domain_register_mmio(struct domain *d) +{ +register_mmio_handler(d, &vgic_v2_distr_mmio_handler, d->arch.vgic.dbase, + PAGE_SIZE, NULL); +} + static int vgic_v2_domain_init(struct domain *d) { int ret; @@ -693,9 +699,6 @@ static int vgic_v2_domain_init(struct domain *d) if ( ret ) return ret; -register_mmio_handler(d, &vgic_v2_distr_mmio_handler, d->arch.vgic.dbase, - PAGE_SIZE, NULL); - return 0; } @@ -708,6 +711,7 @@ static const struct vgic_ops vgic_v2_ops = { .vcpu_init = vgic_v2_vcpu_init, .domain_init = vgic_v2_domain_init, .domain_free = vgic_v2_domain_free, +.domain_register_mmio = vgic_v2_domain_register_mmio, .max_vcpus = 8, }; diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index e877e9e..3a5aeb6 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -1391,6 +1391,28 @@ static int vgic_v3_vcpu_init(struct vcpu *v) return 0; } +static void vgic_v3_domain_register_mmio(struct domain *d) +{ +int i; + +/* Register mmio handle for the Distributor */ +register_mmio_handler(d, &vgic_distr_mmio_handler, d->arch.vgic.dbase, + SZ_64K, NULL); + +/* + * Register mmio handler per contiguous region occupied by the + * redistributors. The handler will take care to choose which + * redistributor is targeted. + */ +for ( i = 0; i < d->arch.vgic.nr_regions; i++ ) +{ +struct vgic_rdist_region *region = &d->arch.vgic.rdist_regions[i]; + +register_mmio_handler(d, &vgic_rdistr_mmio_handler, + region->base, region->size, region); +} +} + static int vgic_v3_domain_init(struct domain *d) { struct vgic_rdist_region *rdist_regions; @@ -1455,23 +1477,6 @@ static int vgic_v3_domain_init(struct domain *d) d->arch.vgic.rdist_regions[0].first_cpu = 0; } -/* Register mmio handle for the Distributor */ -register_mmio_handler(d, &vgic_distr_mmio_handler, d->arch.vgic.dbase, - SZ_64K, NULL); - -/* - * Register mmio handler per contiguous region occupied by the - * redistributors. The handler will take care to choose which - * redistributor is targeted. - */ -for ( i = 0; i < d->arch.vgic.nr_regions; i++ ) -{ -struct vgic_rdist_region *region = &d->arch.vgic.rdist_regions[i]; - -register_mmio_handler(d, &vgic_rdistr_mmio_handler, - region->base, region->size, region); -} - d->arch.vgic.ctlr = VGICD_CTLR_DEFAULT; return 0; @@ -1487,6 +1492,7 @@ static const struct vgic_ops v3_ops = { .domain_init = vgic_v3_domain_init, .domain_free = vgic_v3_domain_free, .emulate_sysreg = vgic_v3_emulate_sysreg, +.domain_register_mmio = vgic_v3_domain_register_mmio, /* * We use both AFF1 and AFF0 in (v)MPIDR. Thus, the max number of CPU * that can be supported is up to 4096(==256*16) in theory. diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index 5df5f01..5b39e0d 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -151,9 +151,12 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis) for ( i = 0; i < NR_GIC_SGI; i++ ) set_bit(i, d->arch.vgic.allocated_irqs); +d->arch.vgic.handler->domain_register_mmio(d); + return 0; } + void register_vgic_ops(struct domain *d, const struct vgic_ops *ops) { d->arch.vgic.handler = ops; diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h index fbb763a..8fe65b4 100644 --- a/xen/include/asm-arm/vgic.h +++ b/xen/include/asm-arm/vgic.h @@ -132,6 +132,8 @@ struct vgic_ops { void (*domain_free)(struct domain *d); /* vGIC sysreg emulation */ int (*emulate_sysreg)(struct cpu_user_regs *regs, union hsr hsr); +/* Register mmio handlers */ +void (*domain_register_mmio)(struct domain *d); /* Maximum number of vCPU supported */ const unsigned int max_vcpus; }; -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project __
[Xen-devel] [PATCH 4/8] xen/arm: vgic: Use dynamic memory allocation for vgic_rdist_region
The number of Re-distributor regions allowed for dom0 is hardcoded to a compile time macro MAX_RDIST_COUNT which is 4. On some systems, especially latest server chips might have more than 4 redistributors. Either we have to increase MAX_RDIST_COUNT to a bigger number or allocate memory based on number of redistributors that are found in MADT table. In the worst case scenario, the macro MAX_RDIST_COUNT should be equal to CONFIG_NR_CPUS in order to support per CPU Redistributors. Increasing MAX_RDIST_COUNT has side effect, it blows 'struct domain' size and hits BUILD_BUG_ON() in domain build code path. struct domain *alloc_domain_struct(void) { struct domain *d; BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE); d = alloc_xenheap_pages(0, 0); if ( d == NULL ) return NULL; ... This patch uses the second approach to fix the BUILD_BUG(). Signed-off-by: Shanker Donthineni --- xen/arch/arm/vgic-v2.c | 6 ++ xen/arch/arm/vgic-v3.c | 22 +++--- xen/arch/arm/vgic.c | 1 + xen/include/asm-arm/domain.h | 12 +++- xen/include/asm-arm/vgic.h | 2 ++ 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index 9adb4a9..f5778e6 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -699,9 +699,15 @@ static int vgic_v2_domain_init(struct domain *d) return 0; } +static void vgic_v2_domain_free(struct domain *d) +{ +/* Nothing to be cleanup for this driver */ +} + static const struct vgic_ops vgic_v2_ops = { .vcpu_init = vgic_v2_vcpu_init, .domain_init = vgic_v2_domain_init, +.domain_free = vgic_v2_domain_free, .max_vcpus = 8, }; diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index b37a7c0..e877e9e 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -1393,7 +1393,19 @@ static int vgic_v3_vcpu_init(struct vcpu *v) static int vgic_v3_domain_init(struct domain *d) { -int i; +struct vgic_rdist_region *rdist_regions; +int rdist_count, i; + +/* Allocate memory for Re-distributor regions */ +rdist_count = is_hardware_domain(d) ? vgic_v3_hw.nr_rdist_regions : + GUEST_GICV3_RDIST_REGIONS; + +rdist_regions = xzalloc_array(struct vgic_rdist_region, rdist_count); +if ( !rdist_regions ) +return -ENOMEM; + +d->arch.vgic.nr_regions = rdist_count; +d->arch.vgic.rdist_regions = rdist_regions; /* * Domain 0 gets the hardware address. @@ -1426,7 +1438,6 @@ static int vgic_v3_domain_init(struct domain *d) first_cpu += size / d->arch.vgic.rdist_stride; } -d->arch.vgic.nr_regions = vgic_v3_hw.nr_rdist_regions; } else { @@ -1435,7 +1446,6 @@ static int vgic_v3_domain_init(struct domain *d) /* XXX: Only one Re-distributor region mapped for the guest */ BUILD_BUG_ON(GUEST_GICV3_RDIST_REGIONS != 1); -d->arch.vgic.nr_regions = GUEST_GICV3_RDIST_REGIONS; d->arch.vgic.rdist_stride = GUEST_GICV3_RDIST_STRIDE; /* The first redistributor should contain enough space for all CPUs */ @@ -1467,9 +1477,15 @@ static int vgic_v3_domain_init(struct domain *d) return 0; } +static void vgic_v3_domain_free(struct domain *d) +{ +xfree(d->arch.vgic.rdist_regions); +} + static const struct vgic_ops v3_ops = { .vcpu_init = vgic_v3_vcpu_init, .domain_init = vgic_v3_domain_init, +.domain_free = vgic_v3_domain_free, .emulate_sysreg = vgic_v3_emulate_sysreg, /* * We use both AFF1 and AFF0 in (v)MPIDR. Thus, the max number of CPU diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index 3e1c572..5df5f01 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -177,6 +177,7 @@ void domain_vgic_free(struct domain *d) } } +d->arch.vgic.handler->domain_free(d); xfree(d->arch.vgic.shared_irqs); xfree(d->arch.vgic.pending_irqs); xfree(d->arch.vgic.allocated_irqs); diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h index 370cdeb..9492727 100644 --- a/xen/include/asm-arm/domain.h +++ b/xen/include/asm-arm/domain.h @@ -40,6 +40,12 @@ struct vtimer { uint64_t cval; }; +struct vgic_rdist_region { +paddr_t base; /* Base address */ +paddr_t size; /* Size */ +unsigned int first_cpu;/* First CPU handled */ +}; + struct arch_domain { #ifdef CONFIG_ARM_64 @@ -103,11 +109,7 @@ struct arch_domain #ifdef CONFIG_HAS_GICV3 /* GIC V3 addressing */ /* List of contiguous occupied by the redistributors */ -struct vgic_rdist_region { -paddr_t base; /* Base address */ -paddr_t size; /* Size */ -unsigned int first_cpu; /* First CPU handled */ -} rdist_regions[MAX_RDIST_COUNT]; +struct vgic_rdist_region *rdist_regions; int n
[Xen-devel] [PATCH 7/8] arm/mmio: Use separate memory allocation for mmio handlers
The number of mmio handlers are limited to a compile time macro MAX_IO_HANDLER which is 16. This number is not at all sufficient to support per CPU distributor regions. Either it needs to be increased to a bigger number, at least CONFIG_NR_CPUS+16, or allocate a separate memory for mmio handlers dynamically during domain build. This patch uses the dynamic allocation strategy to reduce memory footprint for 'struct domain' instead of static allocation. Signed-off-by: Shanker Donthineni --- xen/arch/arm/domain.c | 6 -- xen/arch/arm/io.c | 14 -- xen/include/asm-arm/mmio.h | 6 -- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index 1365b4a..4010ff2 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -527,7 +527,7 @@ void vcpu_destroy(struct vcpu *v) int arch_domain_create(struct domain *d, unsigned int domcr_flags, struct xen_arch_domainconfig *config) { -int rc; +int rc, count; d->arch.relmem = RELMEM_not_started; @@ -550,7 +550,8 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags, share_xen_page_with_guest( virt_to_page(d->shared_info), d, XENSHARE_writable); -if ( (rc = domain_io_init(d)) != 0 ) +count = MAX_IO_HANDLER; +if ( (rc = domain_io_init(d, count)) != 0 ) goto fail; if ( (rc = p2m_alloc_table(d)) != 0 ) @@ -644,6 +645,7 @@ void arch_domain_destroy(struct domain *d) free_xenheap_pages(d->arch.efi_acpi_table, get_order_from_bytes(d->arch.efi_acpi_len)); #endif +domain_io_free(d); } void arch_domain_shutdown(struct domain *d) diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c index 0156755..a5b2c2d 100644 --- a/xen/arch/arm/io.c +++ b/xen/arch/arm/io.c @@ -102,7 +102,7 @@ void register_mmio_handler(struct domain *d, struct vmmio *vmmio = &d->arch.vmmio; struct mmio_handler *handler; -BUG_ON(vmmio->num_entries >= MAX_IO_HANDLER); +BUG_ON(vmmio->num_entries >= vmmio->max_num_entries); spin_lock(&vmmio->lock); @@ -125,14 +125,24 @@ void register_mmio_handler(struct domain *d, spin_unlock(&vmmio->lock); } -int domain_io_init(struct domain *d) +int domain_io_init(struct domain *d, int max_count) { spin_lock_init(&d->arch.vmmio.lock); d->arch.vmmio.num_entries = 0; + d->arch.vmmio.max_num_entries = max_count; + d->arch.vmmio.handlers = xzalloc_array(struct mmio_handler, max_count); + if ( !d->arch.vmmio.handlers ) + return -ENOMEM; + return 0; } +void domain_io_free(struct domain *d) +{ +xfree(d->arch.vmmio.handlers); +} + /* * Local variables: * mode: C diff --git a/xen/include/asm-arm/mmio.h b/xen/include/asm-arm/mmio.h index da1cc2e..276b263 100644 --- a/xen/include/asm-arm/mmio.h +++ b/xen/include/asm-arm/mmio.h @@ -51,15 +51,17 @@ struct mmio_handler { struct vmmio { int num_entries; +int max_num_entries; spinlock_t lock; -struct mmio_handler handlers[MAX_IO_HANDLER]; +struct mmio_handler *handlers; }; extern int handle_mmio(mmio_info_t *info); void register_mmio_handler(struct domain *d, const struct mmio_handler_ops *ops, paddr_t addr, paddr_t size, void *priv); -int domain_io_init(struct domain *d); +int domain_io_init(struct domain *d, int max_count); +void domain_io_free(struct domain *d); #endif /* __ASM_ARM_MMIO_H__ */ -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH 1/8] arm/gic-v3: Add a separate function for mapping GICD region
Move the code that validates base address and does ioremap of GIC distributor region to a separate function. Later patches need to access the GICD region inside function gicv3_acpi_init() for finding per CPU Redistributor size. Signed-off-by: Shanker Donthineni --- xen/arch/arm/gic-v3.c | 23 +-- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index 8d3f149..ab1f380 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1169,6 +1169,17 @@ static void __init gicv3_init_v2(void) vgic_v2_setup_hw(dbase, cbase, csize, vbase, 0); } +static void __init gicv3_ioremap_distributor(paddr_t dist_paddr) +{ +if ( (dist_paddr & ~PAGE_MASK) ) +panic("GICv3: Found unaligned distributor address %"PRIpaddr"", + dbase); + +gicv3.map_dbase = ioremap_nocache(dist_paddr, SZ_64K); +if ( !gicv3.map_dbase ) +panic("GICv3: Failed to ioremap for GIC distributor\n"); +} + static void __init gicv3_dt_init(void) { struct rdist_region *rdist_regs; @@ -1179,9 +1190,7 @@ static void __init gicv3_dt_init(void) if ( res ) panic("GICv3: Cannot find a valid distributor address"); -if ( (dbase & ~PAGE_MASK) ) -panic("GICv3: Found unaligned distributor address %"PRIpaddr"", - dbase); +gicv3_ioremap_distributor(dbase); if ( !dt_property_read_u32(node, "#redistributor-regions", &gicv3.rdist_count) ) @@ -1415,9 +1424,7 @@ static void __init gicv3_acpi_init(void) if ( count <= 0 ) panic("GICv3: No valid GICD entries exists"); -if ( (dbase & ~PAGE_MASK) ) -panic("GICv3: Found unaligned distributor address %"PRIpaddr"", - dbase); +gicv3_ioremap_distributor(dbase); /* Get number of redistributor */ count = acpi_parse_entries(ACPI_SIG_MADT, sizeof(struct acpi_table_madt), @@ -1491,10 +1498,6 @@ static int __init gicv3_init(void) else gicv3_acpi_init(); -gicv3.map_dbase = ioremap_nocache(dbase, SZ_64K); -if ( !gicv3.map_dbase ) -panic("GICv3: Failed to ioremap for GIC distributor\n"); - reg = readl_relaxed(GICD + GICD_PIDR2) & GIC_PIDR2_ARCH_MASK; if ( reg != GIC_PIDR2_ARCH_GICv3 && reg != GIC_PIDR2_ARCH_GICv4 ) panic("GICv3: no distributor detected\n"); -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH 5/8] arm/gic-v3: Remove an unused macro MAX_RDIST_COUNT
The macro MAX_RDIST_COUNT is not being used after converting code to handle number of redistributor dynamically. So remove it from header file and the two other panic() messages that are not valid anymore. Signed-off-by: Shanker Donthineni --- xen/arch/arm/gic-v3.c | 8 xen/include/asm-arm/gic.h | 1 - 2 files changed, 9 deletions(-) diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index 42cf848..28c00cf 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1200,10 +1200,6 @@ static void __init gicv3_dt_init(void) &gicv3.rdist_count) ) gicv3.rdist_count = 1; -if ( gicv3.rdist_count > MAX_RDIST_COUNT ) -panic("GICv3: Number of redistributor regions is more than" - "%d (Increase MAX_RDIST_COUNT!!)\n", MAX_RDIST_COUNT); - rdist_regs = xzalloc_array(struct rdist_region, gicv3.rdist_count); if ( !rdist_regs ) panic("GICv3: Failed to allocate memory for rdist regions\n"); @@ -1518,10 +1514,6 @@ static void __init gicv3_acpi_init(void) gicr_table = false; } -if ( count > MAX_RDIST_COUNT ) -panic("GICv3: Number of redistributor regions is more than" - "%d (Increase MAX_RDIST_COUNT!!)\n", MAX_RDIST_COUNT); - rdist_regs = xzalloc_array(struct rdist_region, count); if ( !rdist_regs ) panic("GICv3: Failed to allocate memory for rdist regions\n"); diff --git a/xen/include/asm-arm/gic.h b/xen/include/asm-arm/gic.h index 7f9ad86..3694e07 100644 --- a/xen/include/asm-arm/gic.h +++ b/xen/include/asm-arm/gic.h @@ -20,7 +20,6 @@ #define NR_GIC_LOCAL_IRQS NR_LOCAL_IRQS #define NR_GIC_SGI 16 -#define MAX_RDIST_COUNT4 #define GICD_CTLR (0x000) #define GICD_TYPER (0x004) -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH 0/8] Add support for parsing per CPU Redistributor entry
The current driver doesn't support parsing Redistributor entries that are described in the MADT GICC table. Not all the GIC implementors places the Redistributor regions in the always-on power domain. On systems, the UEFI firmware should describe Redistributor base address in the associated GIC CPU Interface (GICC) instead of GIC Redistributor (GICR) table. The maximum number of mmio handlers and struct vgic_rdist_region that holds Redistributor addresses are allocated through a static array with hardcoded size. I don't think this is the right approach and is not scalable for implementing features like this. I have decided to convert static to dynamic allocation based on comments from the below link. https://patchwork.kernel.org/patch/9163435/ Patches #1, #2 and #3 adds support for parsing not always-on power domain Redistributor regions. Patches #4, #5, #6, #7 and #8 refactors the code and allocates the memory for mmio handlers and vgic_rdist_region based on the number of Redistributors required for dom0/domU instead of hardcoded values. This pacthset is created on tip of Julien's branch http://xenbits.xen.org/gitweb/?p=people/julieng/xen-unstable.git;a=shortlog;h=refs/heads/irq-routing-acpi-rfc Shanker Donthineni (8): arm/gic-v3: Add a separate function for mapping GICD region arm/gic-v3: Fold GICR subtable parsing into a new function arm/gic-v3: Parse per-cpu redistributor entry in GICC subtable xen/arm: vgic: Use dynamic memory allocation for vgic_rdist_region arm/gic-v3: Remove an unused macro MAX_RDIST_COUNT arm: vgic: Split vgic_domain_init() functionality into two functions arm/mmio: Use separate memory allocation for mmio handlers arm/vgic: Change fixed number of mmio handlers to variable number xen/arch/arm/domain.c | 12 ++- xen/arch/arm/gic-v3.c | 162 -- xen/arch/arm/io.c | 14 +++- xen/arch/arm/vgic-v2.c| 16 +++- xen/arch/arm/vgic-v3.c| 65 ++- xen/arch/arm/vgic.c | 7 ++ xen/include/asm-arm/domain.h | 13 +-- xen/include/asm-arm/gic.h | 3 +- xen/include/asm-arm/gic_v3_defs.h | 1 + xen/include/asm-arm/mmio.h| 6 +- xen/include/asm-arm/vgic.h| 5 ++ 11 files changed, 226 insertions(+), 78 deletions(-) -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [PATCH 3/8] arm/gic-v3: Parse per-cpu redistributor entry in GICC subtable
The redistributor address can be specified either as part of GICC or GICR subtable depending on the power domain. The current driver doesn't support parsing redistributor entry that is defined in GICC subtable. The GIC CPU subtable entry holds the associated Redistributor base address if it is not on always-on power domain. This patch adds necessary code to handle both types of Redistributors base addresses. Signed-off-by: Shanker Donthineni --- xen/arch/arm/gic-v3.c | 97 --- xen/include/asm-arm/gic.h | 2 + xen/include/asm-arm/gic_v3_defs.h | 1 + 3 files changed, 83 insertions(+), 17 deletions(-) diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index af12ebc..42cf848 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -659,6 +659,10 @@ static int __init gicv3_populate_rdist(void) smp_processor_id(), i, ptr); return 0; } + +if ( gicv3.rdist_regions[i].single_rdist ) +break; + if ( gicv3.rdist_stride ) ptr += gicv3.rdist_stride; else @@ -1282,6 +1286,11 @@ static int gicv3_iomem_deny_access(const struct domain *d) } #ifdef CONFIG_ACPI +static bool gic_dist_supports_dvis(void) +{ +return !!(readl_relaxed(GICD + GICD_TYPER) & GICD_TYPER_DVIS); +} + static int gicv3_make_hwdom_madt(const struct domain *d, u32 offset) { struct acpi_subtable_header *header; @@ -1393,18 +1402,39 @@ gic_acpi_parse_madt_redistributor(struct acpi_subtable_header *header, const unsigned long end) { struct acpi_madt_generic_redistributor *rdist; +struct acpi_madt_generic_interrupt *processor; struct rdist_region *region; region = gicv3.rdist_regions + gicv3.rdist_count; -rdist = (struct acpi_madt_generic_redistributor *)header; -if ( BAD_MADT_ENTRY(rdist, end) ) -return -EINVAL; +if ( header->type == ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR ) +{ +rdist = (struct acpi_madt_generic_redistributor *)header; +if ( BAD_MADT_ENTRY(rdist, end) ) +return -EINVAL; -if ( !rdist->base_address || !rdist->length ) -return -EINVAL; +if ( !rdist->base_address || !rdist->length ) +return -EINVAL; + +region->base = rdist->base_address; +region->size = rdist->length; +} +else if ( header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT ) +{ +processor = (struct acpi_madt_generic_interrupt *)header; +if ( BAD_MADT_ENTRY(processor, end) ) +return -EINVAL; + +if ( !(processor->flags & ACPI_MADT_ENABLED) ) +return 0; + +if ( !processor->gicr_base_address ) +return -EINVAL; + +region->base = processor->gicr_base_address; +region->size = gic_dist_supports_dvis() ? SZ_256K : SZ_128K; + region->single_rdist = true; + } -region->base = rdist->base_address; -region->size = rdist->length; region->map_base = ioremap_nocache(region->base, region->size); if ( !region->map_base ) @@ -1412,6 +1442,7 @@ gic_acpi_parse_madt_redistributor(struct acpi_subtable_header *header, printk("Unable to map GICR registers\n"); return -ENOMEM; } + gicv3.rdist_count++; return 0; @@ -1421,9 +1452,22 @@ static int __init gic_acpi_get_madt_redistributor_num(struct acpi_subtable_header *header, const unsigned long end) { -/* Nothing to do here since it only wants to get the number of GIC - * redistributors. - */ +struct acpi_madt_generic_redistributor *rdist; +struct acpi_madt_generic_interrupt *cpuif; + +if ( header->type == ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR ) +{ +rdist = (struct acpi_madt_generic_redistributor *)header; +if ( BAD_MADT_ENTRY(rdist, end) || !rdist->base_address ) +return -EINVAL; +} +else if ( header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT ) +{ +cpuif = (struct acpi_madt_generic_interrupt *)header; +if ( BAD_MADT_ENTRY(cpuif, end) || !cpuif->gicr_base_address ) +return -EINVAL; +} + return 0; } @@ -1431,6 +1475,7 @@ static void __init gicv3_acpi_init(void) { struct acpi_table_header *table; struct rdist_region *rdist_regs; +bool gicr_table = true; acpi_status status; int count; @@ -1460,8 +1505,18 @@ static void __init gicv3_acpi_init(void) count = acpi_parse_entries(ACPI_SIG_MADT, sizeof(struct acpi_table_madt), gic_acpi_get_madt_redistributor_num, table, ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR, 0); -if ( count <= 0 ) -panic("GICv3: No valid GICR entries exists"); + +/* Count the total number of CPU interface entries */ +if (count <= 0) { +count = acpi_parse_entries(ACPI_
[Xen-devel] [PATCH 8/8] arm/vgic: Change fixed number of mmio handlers to variable number
Record the number of mmio handlers that are required for vGICv3/2 in variable 'arch_domain.vgic.mmio_count' in vgic_domain_init(). Augment this variable number to a fixed number MAX_IO_HANDLER and pass it to domain_io_init() to allocate enough memory for handlers. New code path: domain_vgic_init() count = MAX_IO_HANDLER + d->arch.vgic.mmio_count; domain_io_init(count) domain_vgic_register_mmio() Signed-off-by: Shanker Donthineni --- xen/arch/arm/domain.c| 10 ++ xen/arch/arm/vgic-v2.c | 2 ++ xen/arch/arm/vgic-v3.c | 3 +++ xen/arch/arm/vgic.c | 7 +-- xen/include/asm-arm/domain.h | 1 + xen/include/asm-arm/vgic.h | 1 + 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index 4010ff2..ef567c8 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -550,10 +550,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags, share_xen_page_with_guest( virt_to_page(d->shared_info), d, XENSHARE_writable); -count = MAX_IO_HANDLER; -if ( (rc = domain_io_init(d, count)) != 0 ) -goto fail; - if ( (rc = p2m_alloc_table(d)) != 0 ) goto fail; @@ -593,6 +589,12 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags, if ( (rc = domain_vgic_init(d, config->nr_spis)) != 0 ) goto fail; +count = MAX_IO_HANDLER + d->arch.vgic.mmio_count; +if ( (rc = domain_io_init(d, count)) != 0 ) +goto fail; + +domain_vgic_register_mmio(d); + if ( (rc = domain_vtimer_init(d, config)) != 0 ) goto fail; diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index d42b408..7ed7d32 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -699,6 +699,8 @@ static int vgic_v2_domain_init(struct domain *d) if ( ret ) return ret; +d->arch.vgic.mmio_count = 1; /* Only GICD region */ + return 0; } diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index 3a5aeb6..6a5f333 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -1479,6 +1479,9 @@ static int vgic_v3_domain_init(struct domain *d) d->arch.vgic.ctlr = VGICD_CTLR_DEFAULT; +/* GICD region + number of Re-distributors */ +d->arch.vgic.mmio_count = d->arch.vgic.nr_regions + 1; + return 0; } diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index 5b39e0d..7d34942 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -88,6 +88,11 @@ static void vgic_rank_init(struct vgic_irq_rank *rank, uint8_t index, rank->vcpu[i] = vcpu; } +void domain_vgic_register_mmio(struct domain *d) +{ +d->arch.vgic.handler->domain_register_mmio(d); +} + int domain_vgic_init(struct domain *d, unsigned int nr_spis) { int i; @@ -151,8 +156,6 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis) for ( i = 0; i < NR_GIC_SGI; i++ ) set_bit(i, d->arch.vgic.allocated_irqs); -d->arch.vgic.handler->domain_register_mmio(d); - return 0; } diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h index 9492727..974cf93 100644 --- a/xen/include/asm-arm/domain.h +++ b/xen/include/asm-arm/domain.h @@ -113,6 +113,7 @@ struct arch_domain int nr_regions; /* Number of rdist regions */ uint32_t rdist_stride; /* Re-Distributor stride */ #endif +uint32_t mmio_count; /* Number of mmio handlers */ } vgic; struct vuart { diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h index 8fe65b4..0032633 100644 --- a/xen/include/asm-arm/vgic.h +++ b/xen/include/asm-arm/vgic.h @@ -309,6 +309,7 @@ extern void register_vgic_ops(struct domain *d, const struct vgic_ops *ops); int vgic_v2_init(struct domain *d); int vgic_v3_init(struct domain *d); +extern void domain_vgic_register_mmio(struct domain *d); extern int vcpu_vgic_free(struct vcpu *v); extern int vgic_to_sgi(struct vcpu *v, register_t sgir, enum gic_sgi_mode irqmode, int virq, -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [xen-unstable test] 95872: regressions - FAIL
flight 95872 xen-unstable real [real] http://logs.test-lab.xenproject.org/osstest/logs/95872/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-armhf-armhf-xl-arndale 7 host-ping-check-xen fail REGR. vs. 95801 Regressions which are regarded as allowable (not blocking): build-amd64-rumpuserxen 6 xen-buildfail like 95842 build-i386-rumpuserxen6 xen-buildfail like 95842 test-amd64-amd64-xl-rtds 9 debian-install fail like 95842 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 95842 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail like 95842 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 95842 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 95842 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-amd64-amd64-xl-pvh-intel 11 guest-start fail never pass test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-xsm 14 guest-saverestorefail 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 13 guest-saverestorefail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt 14 guest-saverestorefail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-amd64-amd64-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail 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-multivcpu 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-vhd 11 migrate-support-checkfail never pass test-amd64-i386-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-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-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-rtds 12 migrate-support-checkfail never pass version targeted for testing: xen 08754333892407f415045c05659783baeb8fc5d4 baseline version: xen 759b9618b8a22ddd87d01c0bff5366814b17eea7 Last test of basis95842 2016-06-17 00:49:45 Z1 days Testing same since95872 2016-06-17 22:28:26 Z0 days1 attempts People who touched revisions under test: Andrew Cooper Dario Faggioli David Scott Dongli Zhang George Dunlap Ian Jackson Jan Beulich Juergen Gross Julien Grall Kevin Tian Peng Fan Quan Xu Roger Pau Monné Shanker Donthineni Shannon Zhao Stefano Stabellini Suravee Suthikulpanit Wei Chen Wei Liu 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
[Xen-devel] [qemu-upstream-4.3-testing test] 95874: regressions - FAIL
flight 95874 qemu-upstream-4.3-testing real [real] http://logs.test-lab.xenproject.org/osstest/logs/95874/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: build-amd64-libvirt 5 libvirt-build fail REGR. vs. 80927 build-i386-libvirt5 libvirt-build fail REGR. vs. 80927 Tests which are failing intermittently (not blocking): test-amd64-amd64-xl-qemuu-win7-amd64 15 guest-localmigrate/x10 fail in 95852 pass in 95874 test-amd64-i386-xl-qemuu-win7-amd64 15 guest-localmigrate/x10 fail pass in 95852 Regressions which are regarded as allowable (not blocking): test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail in 95852 like 80927 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 80927 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt-vhd 1 build-check(1) blocked n/a test-amd64-amd64-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail never pass test-amd64-i386-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail never pass version targeted for testing: qemuu12e8fccf5b5460be7aecddc71d27eceaba6e1f15 baseline version: qemuu10c1b763c26feb645627a1639e722515f3e1e876 Last test of basis80927 2016-02-06 13:30:02 Z 133 days Failing since 93977 2016-05-10 11:09:16 Z 39 days 128 attempts Testing same since95534 2016-06-11 00:59:46 Z7 days8 attempts People who touched revisions under test: Anthony PERARD Gerd Hoffmann Ian Jackson Stefano Stabellini Wei Liu jobs: build-amd64 pass build-i386 pass build-amd64-libvirt fail build-i386-libvirt fail build-amd64-pvopspass build-i386-pvops pass test-amd64-amd64-xl pass test-amd64-i386-xl pass test-amd64-i386-qemuu-rhel6hvm-amd 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 fail test-amd64-i386-xl-qemuu-ovmf-amd64 fail test-amd64-amd64-xl-qemuu-win7-amd64 fail test-amd64-i386-xl-qemuu-win7-amd64 fail test-amd64-amd64-xl-credit2 pass test-amd64-i386-freebsd10-i386 pass test-amd64-i386-qemuu-rhel6hvm-intel pass test-amd64-amd64-libvirt blocked test-amd64-i386-libvirt blocked test-amd64-amd64-xl-multivcpupass test-amd64-amd64-pairpass test-amd64-i386-pair pass test-amd64-amd64-pv pass test-amd64-i386-pv pass test-amd64-amd64-amd64-pvgrubpass test-amd64-amd64-i386-pvgrub pass test-amd64-amd64-pygrub pass test-amd64-amd64-xl-qcow2pass test-amd64-i386-xl-raw pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 pass test-amd64-amd64-libvirt-vhd blocked test-amd64-amd64-xl-qemuu-winxpsp3 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 Not pushing. commit 12e8fccf5b5460be7aecddc71d27eceaba6e1f15 Author: Ian Jackson Date: Thu May 26 16:21:5
[Xen-devel] [libvirt test] 95873: tolerable FAIL - PUSHED
flight 95873 libvirt real [real] http://logs.test-lab.xenproject.org/osstest/logs/95873/ Failures :-/ but no regressions. Tests which did not succeed, but are not blocking: test-armhf-armhf-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-xsm 14 guest-saverestorefail never pass test-armhf-armhf-libvirt 14 guest-saverestorefail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt 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-amd64-i386-libvirt 12 migrate-support-checkfail 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-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-armhf-armhf-libvirt-raw 13 guest-saverestorefail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass version targeted for testing: libvirt 8bab1e7c057b5f62c25cba7439a05ed57f0c735e baseline version: libvirt e33cd67a9b51e8fcb4e084f40f500057b30b2786 Last test of basis95846 2016-06-17 04:21:18 Z1 days Testing same since95873 2016-06-18 04:23:53 Z0 days1 attempts People who touched revisions under test: Andrea Bolognani Jim Fehlig Jiri Denemark Joao Martins Ján Tomko Martin Kletzander Michal Privoznik Peter Krempa 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 fail test-amd64-i386-libvirt-xsm pass test-amd64-amd64-libvirt pass test-armhf-armhf-libvirt fail test-amd64-i386-libvirt pass test-amd64-amd64-libvirt-pairpass test-amd64-i386-libvirt-pair pass test-armhf-armhf-libvirt-qcow2 fail test-armhf-armhf-libvirt-raw fail 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=8bab1e7c057b5f62c25cba7439a05ed57f0c735e + . ./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 .
[Xen-devel] [linux-3.10 test] 95869: tolerable FAIL - PUSHED
flight 95869 linux-3.10 real [real] http://logs.test-lab.xenproject.org/osstest/logs/95869/ Failures :-/ but no regressions. Regressions which are regarded as allowable (not blocking): build-amd64-rumpuserxen 6 xen-buildfail like 86412 build-i386-rumpuserxen6 xen-buildfail like 86412 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 86412 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 86412 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail like 86412 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 86412 Tests which did not succeed, but are not blocking: test-amd64-i386-rumpuserxen-i386 1 build-check(1) blocked n/a test-amd64-amd64-rumpuserxen-amd64 1 build-check(1) blocked n/a test-amd64-amd64-xl-pvh-intel 11 guest-start fail 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-i386-libvirt-xsm 12 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-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 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass version targeted for testing: linuxca1199fccf14540e86f6da955333e31d6fec5f3e baseline version: linux326a1b2d50cbe1f890e56ab60b9215cd30053f5a Last test of basis86412 2016-03-16 16:24:33 Z 94 days Testing same since95665 2016-06-13 14:51:45 Z5 days5 attempts People who touched revisions under test: Aaro Koskinen Adrian Hunter Al Viro Alan Stern Alex Deucher Alexandre Belloni Alexandre Bounine Alexey Khoroshilov Allain Legacy Andi Kleen Andrew Morton Andrey Gelman Andy Lutomirski Andy Lutomirski # On a Dell XPS 13 9350 Anton Blanchard Antonio Quartulli Aristeu Rozanski Arnaldo Carvalho de Melo Arnd Bergmann Artem Bityutskiy Aurelien Jacquiot Behan Webster Ben Hutchings Bill Sommerfeld Bjorn Helgaas Bjørn Mork Bob Moore Borislav Petkov Brian King Brian Norris Chanwoo Choi Chas Williams <3ch...@gmail.com> Chris Friesen Dan Carpenter Dan Streetman Daniel Fraga Daniel Lezcano David S. Miller Diego Viola Dinh Nguyen Dmitry Ivanov Dmitry Ivanov Dmitry Torokhov Douglas Gilbert Eric Wheeler Eric Wheeler Eryu Guan Felipe Balbi Florian Westphal Gabriel Krisman Bertazi Geert Uytterhoeven Greg Kroah-Hartman Guenter Roeck Guillaume Nault H. Nikolaus Schaller H. Peter Anvin Haibo Chen Haishuang Yan Hans de Goede Hans Verkuil Hans-Christoph Schemmel Helge Deller Herbert Xu Ian Campbell Ignat Korchagin Igor Grinberg Ingo Molnar Insu Yun Jan-Simon Möller Jasem Mutlaq Jes Sorensen Jiri Kosina Jiri Slaby Joe Perches Johan Hovold Johannes Berg Joseph Qi Josh Boyer Julia Lawall Julian Anastasov K. Y. Srinivasan Kamal Mostafa Kangjie Lu Kangjie Lu Kevin Hilman Kevin Hilman Krzysztof Kozlowski Laszlo Ersek Lee Jones Linus Lüssing Linus Torvalds Linus Walleij Lu Baolu Lutz Euler Lv Zheng Manish Chopra Marcel Holtmann Marco Angaroni Marek Lindner Marek Szyprowski Mario Kleiner Mark Brown Markus Pargmann Martin K. Petersen Martyn Welch Mathias Krause Mathias Nyman Matt Fleming Matt Gumbel Maurizio Lombardi Mauro Carvalho Chehab Mauro Carvalho Chehab Max Filippov Michael Ellerman Michael Hennerich Michael S. Tsirkin Michal Marek Mike Manning Nicolai Hähnle Nicolas Dichtel Nikolay Aleksandrov Nishanth Menon OGAWA Hirofumi Oliver Neukum Pali Rohár Paolo Bonzini Paul Gortmaker Pavel Emelyanov Peter Hurley Peter Zijlstra (Intel) Philip Müller ph...@manjaro.org Prarit Bhargava Rabin Vincent Radim KrÃÂmÃ¡à  Rafael J. Wysocki Raghava Aditya Renukunta Rik van Riel Robert Dobrowolski Roger Quadros Roman Pen Sascha Hauer Schemmel Hans-Christoph Sebastian Frias Sergei Shtylyov Shaohua Li Simon Horman Sony Chacko Stefan Metzmacher Stephen Boyd Steve French Steven Rostedt (Red Hat) Steven Rostedt Sushaanth Srirangapathi Sven Eckelmann Takashi Iwai Tejun Heo Thadeu Lima de Souza Cascardo
[Xen-devel] [qemu-mainline test] 95868: regressions - FAIL
flight 95868 qemu-mainline real [real] http://logs.test-lab.xenproject.org/osstest/logs/95868/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 9 debian-hvm-install fail REGR. vs. 94856 test-armhf-armhf-xl-arndale 15 guest-start/debian.repeat fail REGR. vs. 94856 test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm 9 debian-hvm-install fail REGR. vs. 94856 test-amd64-amd64-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail REGR. vs. 94856 Regressions which are regarded as allowable (not blocking): test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 94856 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 94856 test-amd64-amd64-xl-rtds 9 debian-install fail like 94856 Tests which did not succeed, but are not blocking: test-amd64-amd64-xl-pvh-amd 11 guest-start fail never pass test-amd64-amd64-xl-pvh-intel 11 guest-start fail 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-amd64-libvirt 12 migrate-support-checkfail never pass test-amd64-i386-libvirt 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-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail never pass test-armhf-armhf-xl-multivcpu 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-multivcpu 12 migrate-support-checkfail never pass test-amd64-amd64-libvirt-xsm 12 migrate-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-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail 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-libvirt-vhd 11 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-libvirt 14 guest-saverestorefail never pass test-armhf-armhf-libvirt 12 migrate-support-checkfail never pass test-armhf-armhf-xl-xsm 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-libvirt-raw 13 guest-saverestorefail never pass test-armhf-armhf-libvirt-raw 11 migrate-support-checkfail never pass test-armhf-armhf-xl-rtds 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-rtds 12 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 test-amd64-i386-libvirt-xsm 12 migrate-support-checkfail never pass test-armhf-armhf-xl-credit2 13 saverestore-support-checkfail never pass test-armhf-armhf-xl-credit2 12 migrate-support-checkfail never pass version targeted for testing: qemuu482b61844ae7c6df39df0b48ac90ffbc87bed7d2 baseline version: qemuud6550e9ed2e1a60d889dfb721de00d9a4e3bafbe Last test of basis94856 2016-05-27 20:14:49 Z 21 days Failing since 94983 2016-05-31 09:40:12 Z 18 days 22 attempts Testing same since95868 2016-06-17 17:52:56 Z0 days1 attempts People who touched revisions under test: Alberto Garcia Alex Bennée Alex Bligh Alex Williamson Alexander Graf Alexey Kardashevskiy Alistair Francis Amit Shah Andrea Arcangeli Andrew Jeffery Andrew Jones Anthony PERARD Anton Blanchard Ard Biesheuvel Benjamin Herrenschmidt Bharata B Rao Cao jin Changlong Xie Chao Peng Chen Fan Christian Borntraeger Christophe Lyon Cole Robinson Colin Lord Corey Minyard Cornelia Huck Cédric Le Goater Daniel P. Berrange David Gibson David Hildenbrand Denis V. Lunev Dmitry Fleytman Dmitry Fleytman Dmitry Osipenko Dr. David Alan Gilbert Drew Jones Edgar E. Iglesias Eduardo Habkost Emilio G. Cota Eric Blake Fam Zheng Gavin Shan Gerd Hoffmann Greg Kurz Gu Zheng Guillaume Delbergue Halil Pasic Hannes Reinecke Hyun Kwon Igor Mammedov Jakub Horak James Clarke Jan Beulich Jan Vesely Jason Wang Jean-
[Xen-devel] [ovmf test] 95863: regressions - FAIL
flight 95863 ovmf real [real] http://logs.test-lab.xenproject.org/osstest/logs/95863/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-amd64-i386-xl-qemuu-ovmf-amd64 17 guest-start/debianhvm.repeat fail REGR. vs. 94748 test-amd64-amd64-xl-qemuu-ovmf-amd64 17 guest-start/debianhvm.repeat fail REGR. vs. 94748 version targeted for testing: ovmf e918029fbce507f7de5b99112582fd41993e58c5 baseline version: ovmf dc99315b8732b6e3032d01319d3f534d440b43d0 Last test of basis94748 2016-05-24 22:43:25 Z 24 days Failing since 94750 2016-05-25 03:43:08 Z 24 days 41 attempts Testing same since95863 2016-06-17 13:44:25 Z0 days1 attempts People who touched revisions under test: Ard Biesheuvel Chao Zhang Cinnamon Shia Cohen, Eugene Dandan Bi Darbin Reyes Eric Dong Eugene Cohen Evan Lloyd Fu Siyuan Fu, Siyuan Gary Li Gary Lin Giri P Mudusuru Hao Wu Hegde Nagaraj P hegdenag Heyi Guo Jeff Fan Jiaxin Wu Jiewen Yao Katie Dellaquila Laszlo Ersek Liming Gao lushifex Marvin H?user Marvin Haeuser Maurice Ma Michael Zimmermann Ruiyu Ni Ryan Harkin Sami Mujawar Satya Yarlagadda Sriram Subramanian Star Zeng Tapan Shah Thomas Palmer Yonghong Zhu Zhang, Chao B 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 fail test-amd64-i386-xl-qemuu-ovmf-amd64 fail 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 Not pushing. (No revision log; it would be 2195 lines long.) ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Re: [Xen-devel] [Patch v11 3/3] vt-d: fix vt-d Device-TLB flush timeout issue (+ crash logic )
On June 17, 2016 9:35 PM, Julien Grall wrote: > On 17/06/16 09:51, Xu, Quan wrote: > > + arm/amd maintainers.. > > > > On June 01, 2016 5:05 PM, Xu, Quan wrote: > >> If Device-TLB flush timed out, we hide the target ATS device > >> immediately and crash the domain owning this ATS device. If impacted > >> domain is hardware domain, just throw out a warning. > >> > >> By hiding the device, we make sure it can't be assigned to any domain > >> any longer (see device_assigned). > > > > DomU (other than Dom0) gets crashed when a device IOTLB flush times out. > I suppose that's what you will want on ARM/AMD then too. > > Correct it is what we want for ARM :). > That's good :):).. Julien, thanks. > > We need to move up the crash logic , as similar as iommu_map_page() / > iommu_unmap_page(). > > > > - add the crash logic to iommu_iotlb_flush() / iommu_iotlb_flush_all(). > > > > - when IOMMU/MMU share page tables, we need to fix it one by one. > > -- on amd, we need to add the crash logic to > amd_iommu_flush_pages(). > > -- on intel, we need to add the crash logic to iommu_pte_flush(). > > -- on arm, we benefit that we add the crash logic to > iommu_iotlb_flush(). > > Right. > :):) > > > > > > Taken together, we need to add crash logic to > > iommu_iotlb_flush() / iommu_iotlb_flush_all() / > iommu_pte_flush() / amd_iommu_flush_pages(). > > For iommu_iotlb_* yes as it is common code. I don't know for the others. > IMO, that's is enough. I hope the other maintainers can give some comments. Thanks!! Quan ___ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Xen-devel] [linux-3.14 test] 95860: tolerable FAIL - PUSHED
flight 95860 linux-3.14 real [real] http://logs.test-lab.xenproject.org/osstest/logs/95860/ Failures :-/ but no regressions. Regressions which are regarded as allowable (not blocking): build-i386-rumpuserxen6 xen-buildfail like 95164 build-amd64-rumpuserxen 6 xen-buildfail like 95164 test-amd64-amd64-xl-qemut-win7-amd64 16 guest-stop fail like 95164 test-amd64-i386-xl-qemut-win7-amd64 16 guest-stop fail like 95164 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stop fail like 95164 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 95164 Tests which did not succeed, but are not blocking: test-amd64-i386-rumpuserxen-i386 1 build-check(1) blocked n/a test-amd64-amd64-rumpuserxen-amd64 1 build-check(1) blocked n/a test-amd64-amd64-xl-pvh-intel 11 guest-start fail 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 12 migrate-support-checkfail never pass test-amd64-amd64-qemuu-nested-amd 16 debian-hvm-install/l1/l2 fail 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-libvirt-vhd 11 migrate-support-checkfail never pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 10 migrate-support-check fail never pass version targeted for testing: linux022aafd04696a3c6b7ad47ab83a9650646287bf8 baseline version: linuxf06cb456a442c7df95a4ba6e2f3a341cf925d7cf Last test of basis95164 2016-06-01 19:46:34 Z 16 days Testing same since95407 2016-06-08 00:46:14 Z 10 days9 attempts People who touched revisions under test: Andrew Morton Ben Hutchings Bjorn Helgaas Daniel Lezcano Daniel Vetter Dave Chinner Dave Chinner Dave Gerlach David Vrabel Dmitry Torokhov Greg Kroah-Hartman Hari Bathini Itai Handler J. Bruce Fields James Hogan Jeff Layton Joseph Salisbury Kalle Valo Kalle Valo Larry Finger Linus Torvalds Lyude Mahesh Salgaonkar Martin K. Petersen Matthias Schiffer Michael Ellerman Nicolai Stange Patrik Jakobsson Paul Burton Prarit Bhargava Rafael J. Wysocki Raghava Aditya Renukunta Ralf Baechle Ricky Liang Ross Lagerwall Shyam Kaushik Theodore Ts'o Tomáš Trnka Ville Syrjälä Wang YanQing 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 build-amd64-rumpuserxen fail build-i386-rumpuserxen fail test-amd64-amd64-xl pass test-amd64-i386-xl pass test-amd64-amd64-xl-qemut-debianhvm-amd64-xsmpass test-amd64-i386-xl-qemut-debianhvm-amd64-xsm pass test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm pass test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsmpass test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsmpass test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm pass test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsmpass test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm pass test-amd64-amd64-libvirt-xsm pass test-amd64-i386-libvirt-xsm pass test-amd64-amd64-xl-xsm pass test-amd64-i386-xl-xsm pass test-amd64-amd64-qemuu-nested-amdfail test-amd64-amd64-xl-pvh-amd fail 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-am
[Xen-devel] [qemu-upstream-4.3-testing test] 95852: regressions - FAIL
flight 95852 qemu-upstream-4.3-testing real [real] http://logs.test-lab.xenproject.org/osstest/logs/95852/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: build-amd64-libvirt 5 libvirt-build fail REGR. vs. 80927 build-i386-libvirt5 libvirt-build fail REGR. vs. 80927 Tests which are failing intermittently (not blocking): test-amd64-i386-xl3 host-install(3) broken in 95831 pass in 95852 test-amd64-amd64-pygrub 3 host-install(3) broken in 95831 pass in 95852 test-amd64-amd64-amd64-pvgrub 3 host-install(3) broken in 95831 pass in 95852 test-amd64-amd64-xl-qemuu-win7-amd64 15 guest-localmigrate/x10 fail pass in 95831 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-stopfail in 95831 like 80927 test-amd64-i386-xl-qemuu-win7-amd64 16 guest-stop fail like 80927 Tests which did not succeed, but are not blocking: test-amd64-i386-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt 1 build-check(1) blocked n/a test-amd64-amd64-libvirt-vhd 1 build-check(1) blocked n/a test-amd64-amd64-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail never pass test-amd64-i386-xl-qemuu-ovmf-amd64 9 debian-hvm-install fail never pass version targeted for testing: qemuu12e8fccf5b5460be7aecddc71d27eceaba6e1f15 baseline version: qemuu10c1b763c26feb645627a1639e722515f3e1e876 Last test of basis80927 2016-02-06 13:30:02 Z 132 days Failing since 93977 2016-05-10 11:09:16 Z 38 days 127 attempts Testing same since95534 2016-06-11 00:59:46 Z7 days7 attempts People who touched revisions under test: Anthony PERARD Gerd Hoffmann Ian Jackson Stefano Stabellini Wei Liu jobs: build-amd64 pass build-i386 pass build-amd64-libvirt fail build-i386-libvirt fail build-amd64-pvopspass build-i386-pvops pass test-amd64-amd64-xl pass test-amd64-i386-xl pass test-amd64-i386-qemuu-rhel6hvm-amd 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 fail test-amd64-i386-xl-qemuu-ovmf-amd64 fail test-amd64-amd64-xl-qemuu-win7-amd64 fail test-amd64-i386-xl-qemuu-win7-amd64 fail test-amd64-amd64-xl-credit2 pass test-amd64-i386-freebsd10-i386 pass test-amd64-i386-qemuu-rhel6hvm-intel pass test-amd64-amd64-libvirt blocked test-amd64-i386-libvirt blocked test-amd64-amd64-xl-multivcpupass test-amd64-amd64-pairpass test-amd64-i386-pair pass test-amd64-amd64-pv pass test-amd64-i386-pv pass test-amd64-amd64-amd64-pvgrubpass test-amd64-amd64-i386-pvgrub pass test-amd64-amd64-pygrub pass test-amd64-amd64-xl-qcow2pass test-amd64-i386-xl-raw pass test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 pass test-amd64-amd64-libvirt-vhd blocked test-amd64-amd64-xl-qemuu-winxpsp3 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 Not pushing.