[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [xen-unstable test] 112865: regressions - trouble: blocked/broken/fail/pass



flight 112865 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/112865/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-ovmf-amd64  7 xen-boot         fail REGR. vs. 112809
 test-amd64-amd64-xl-qemuu-win7-amd64 16 guest-localmigrate/x10 fail REGR. vs. 
112809
 test-amd64-amd64-xl-qemut-win7-amd64 10 windows-install  fail REGR. vs. 112809
 test-amd64-i386-xl-qemut-win7-amd64 10 windows-install   fail REGR. vs. 112809
 test-amd64-i386-xl-qemut-ws16-amd64 10 windows-install   fail REGR. vs. 112809

Tests which did not succeed, but are not blocking:
 test-arm64-arm64-libvirt-xsm  1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl           1 build-check(1)               blocked  n/a
 build-arm64-libvirt           1 build-check(1)               blocked  n/a
 test-arm64-arm64-examine      1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-credit2   1 build-check(1)               blocked  n/a
 test-arm64-arm64-xl-xsm       1 build-check(1)               blocked  n/a
 build-arm64                   2 hosts-allocate              broken like 112809
 build-arm64-pvops             2 hosts-allocate              broken like 112809
 build-arm64-xsm               2 hosts-allocate              broken like 112809
 build-arm64                   3 capture-logs                broken like 112809
 build-arm64-pvops             3 capture-logs                broken like 112809
 build-arm64-xsm               3 capture-logs                broken like 112809
 test-armhf-armhf-libvirt-xsm 14 saverestore-support-check    fail  like 112809
 test-armhf-armhf-libvirt     14 saverestore-support-check    fail  like 112809
 test-amd64-i386-xl-qemuu-win7-amd64 17 guest-stop             fail like 112809
 test-armhf-armhf-xl-rtds     16 guest-start/debian.repeat    fail  like 112809
 test-armhf-armhf-libvirt-raw 13 saverestore-support-check    fail  like 112809
 test-amd64-amd64-xl-rtds     10 debian-install               fail  like 112809
 test-amd64-amd64-xl-qemut-ws16-amd64 10 windows-install        fail never pass
 test-amd64-amd64-xl-qemuu-ws16-amd64 10 windows-install        fail never pass
 test-amd64-i386-libvirt      13 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  13 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-xsm 13 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt     13 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 11 migrate-support-check 
fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 11 migrate-support-check 
fail never pass
 test-armhf-armhf-xl-arndale  13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  14 saverestore-support-check    fail   never pass
 test-amd64-amd64-qemuu-nested-amd 17 debian-hvm-install/l1/l2  fail never pass
 test-amd64-i386-xl-qemuu-ws16-amd64 13 guest-saverestore       fail never pass
 test-armhf-armhf-xl-xsm      13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-xsm      14 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 13 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-multivcpu 14 saverestore-support-check    fail  never pass
 test-armhf-armhf-libvirt-xsm 13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          14 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 13 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 14 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-credit2  13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  14 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     14 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt-raw 12 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      12 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      13 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 12 migrate-support-check        fail   never pass
 test-amd64-i386-xl-qemut-win10-i386 10 windows-install         fail never pass
 test-amd64-amd64-xl-qemuu-win10-i386 10 windows-install        fail never pass
 test-amd64-i386-xl-qemuu-win10-i386 10 windows-install         fail never pass
 test-amd64-amd64-xl-qemut-win10-i386 10 windows-install        fail never pass

version targeted for testing:
 xen                  8f7d1b08a1ed0583ece262b3abf6a0f093b764bb
baseline version:
 xen                  9053a74c08fd6abf43bb45ff932b4386de7e8510

Last test of basis   112809  2017-08-22 04:57:01 Z    3 days
Failing since        112841  2017-08-23 06:00:13 Z    2 days    3 attempts
Testing same since   112865  2017-08-25 03:21:00 Z    0 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  Bernd Kuhls <bernd.kuhls@xxxxxxxxxxx>
  Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
  Christopher Clark <christopher.clark6@xxxxxxxxxxxxxx>
  Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
  Igor Druzhinin <igor.druzhinin@xxxxxxxxxx>
  Jan Beulich <jbeulich@xxxxxxxx>
  Julien Grall <julien.grall@xxxxxxx>
  Roger Pau Monné <roger.pau@xxxxxxxxxx>
  Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
  Tim Deegan <tim@xxxxxxx>
  Wei Liu <wei.liu2@xxxxxxxxxx>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              broken  
 build-armhf-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  broken  
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          blocked 
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            broken  
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 build-amd64-rumprun                                          pass    
 build-i386-rumprun                                           pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-arm64-arm64-xl                                          blocked 
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm                pass    
 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-xsm            pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm                pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm                 pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 blocked 
 test-armhf-armhf-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      blocked 
 test-armhf-armhf-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvh-amd                                  pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 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                          pass    
 test-amd64-amd64-rumprun-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-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  blocked 
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     blocked 
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-i386-rumprun-i386                                 pass    
 test-amd64-amd64-xl-qemut-win10-i386                         fail    
 test-amd64-i386-xl-qemut-win10-i386                          fail    
 test-amd64-amd64-xl-qemuu-win10-i386                         fail    
 test-amd64-i386-xl-qemuu-win10-i386                          fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvh-intel                                pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-amd64-pvgrub                                pass    
 test-amd64-amd64-i386-pvgrub                                 pass    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-xl-raw                                       pass    
 test-amd64-amd64-xl-rtds                                     fail    
 test-armhf-armhf-xl-rtds                                     fail    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-xl-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

broken-step build-arm64 hosts-allocate
broken-step build-arm64-pvops hosts-allocate
broken-step build-arm64-xsm hosts-allocate
broken-step build-arm64 capture-logs
broken-step build-arm64-pvops capture-logs
broken-step build-arm64-xsm capture-logs

Not pushing.

------------------------------------------------------------
commit 8f7d1b08a1ed0583ece262b3abf6a0f093b764bb
Author: Wei Liu <wei.liu2@xxxxxxxxxx>
Date:   Wed Aug 23 16:58:23 2017 +0100

    xen: remove CONFIG_PAGING_ASSISTANCE
    
    Arm should always set it, while on x86 xen can't build with it set to
    0, which means people haven't used it for years.
    
    Remove it and simplify xen/paging.h.
    
    Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Acked-by: Tim Deegan <tim@xxxxxxx>
    Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Julien Grall <julien.grall@xxxxxxx>

commit 98df75f2782e47c47002d57ca5c5832de4e903fc
Author: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Date:   Wed Aug 23 17:47:38 2017 +0200

    hvmloader: add fields for SMBIOS 2.4 compliance
    
    The version of SMBIOS set in the entry point is 2.4, however several
    structures are missing fields required by 2.4. Fix this by adding the
    missing fields, this is based on the documents found at the DMTF site
    [0].
    
    Most fields are set to 0 (undefined/not specified), except for the
    cache related handlers that need to be initialized to 0xffff in order
    to signal that the information is not provided.
    
    [0] 
https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.1.1.pdf
    
    Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
    Reported by: Chris Gilbert <chris.gilbert@xxxxxxxxxx>
    Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>

commit 2993eca8288f36fac12482ff370cd470ae9e7cbb
Author: Christopher Clark <christopher.clark6@xxxxxxxxxxxxxx>
Date:   Wed Aug 23 17:47:04 2017 +0200

    xsm: policy hooks to require an IOMMU and interrupt remapping
    
    Isolation of devices passed through to domains usually requires an
    active IOMMU. The existing method of requiring an IOMMU is via a Xen
    boot parameter ("iommu=force") which will abort boot if an IOMMU is not
    available.
    
    More graceful degradation of behaviour when an IOMMU is absent can be
    achieved by enabling XSM to perform enforcement of IOMMU requirement.
    
    This patch enables an enforceable XSM policy to specify that an IOMMU is
    required for particular domains to access devices and how capable that
    IOMMU must be. This allows a Xen system to boot whilst still
    ensuring that an IOMMU is active before permitting device use.
    
    Using a XSM policy ensures that the isolation properties remain enforced
    even when the large, complex toolstack software changes.
    
    For some hardware platforms interrupt remapping is a strict requirement
    for secure isolation. Not all IOMMUs provide interrupt remapping.
    The XSM policy can now optionally require interrupt remapping.
    
    The device use hooks now check whether an IOMMU is:
     * Active and securely isolating:
        -- current criteria for this is that interrupt remapping is ok
     * Active but interrupt remapping is not available
     * Not active
    
    This patch also updates the reference XSM policy to use the new
    primitives, with policy entries that do not require an active IOMMU.
    
    Signed-off-by: Christopher Clark <christopher.clark6@xxxxxxxxxxxxxx>
    Acked-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
    Reviewed-by: Ross Philipson <ross.philipson@xxxxxxxxx>

commit 59546c1897a90fe9af5ebbbb05ead8d98b4d17b9
Author: Jan Beulich <jbeulich@xxxxxxxx>
Date:   Wed Aug 23 17:45:45 2017 +0200

    arm/mm: release grant lock on xenmem_add_to_physmap_one() error paths
    
    Commit 55021ff9ab ("xen/arm: add_to_physmap_one: Avoid to map mfn 0 if
    an error occurs") introduced error paths not releasing the grant table
    lock. Replace them by a suitable check after the lock was dropped.
    
    This is XSA-235.
    
    Reported-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Julien Grall <julien.grall@xxxxxxx>

commit 4a0485c3d343e1c582fa824e4896b9b613a14efe
Author: Wei Liu <wei.liu2@xxxxxxxxxx>
Date:   Mon Aug 21 15:09:13 2017 +0100

    x86: switch to plain bool in passthrough code
    
    Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

commit 18f518eace0619d902ea1132226c7ebc64312f78
Author: Wei Liu <wei.liu2@xxxxxxxxxx>
Date:   Mon Aug 21 15:09:12 2017 +0100

    xen: merge common hvm/irq.h into x86 hvm/irq.h
    
    That header file is only used by x86. Merge is into the x86 header.
    
    Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

commit 108896d73e5a95a99bbebb1d68e0a656cf93b703
Author: Wei Liu <wei.liu2@xxxxxxxxxx>
Date:   Mon Aug 21 15:09:11 2017 +0100

    xen: move hvm save code under common to x86
    
    The code is only used by x86 at this point. Merge common/hvm/save.c
    into x86 hvm/save.c. Move the headers and fix up inclusions. Remove
    the now empty common/hvm directory.
    
    Also fix some issues while moving:
    1. removing trailing spaces;
    2. fix multi-line comment;
    3. make "i" in hvm_save unsigned int;
    4. add some blank lines to separate sections of code;
    5. change bool_t to bool.
    
    Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

commit 149c6bbbf775b5e6dd6beae329fcdaab33a0f8cd
Author: Igor Druzhinin <igor.druzhinin@xxxxxxxxxx>
Date:   Thu Aug 17 15:57:13 2017 +0100

    hvmloader, libxl: use the correct ACPI settings depending on device model
    
    We need to choose ACPI tables and ACPI IO port location
    properly depending on the device model version we are running.
    Previously, this decision was made by BIOS type specific
    code in hvmloader, e.g. always load QEMU traditional specific
    tables if it's ROMBIOS and always load QEMU Xen specific
    tables if it's SeaBIOS.
    
    This change saves this behavior (for compatibility) but adds
    an additional way (xenstore key) to specify the correct
    device model if we happen to run a non-default one. Toolstack
    bit makes use of it.
    
    The enforcement of BIOS type depending on QEMU version will
    be lifted later when the rest of ROMBIOS compatibility fixes
    are in place.
    
    Signed-off-by: Igor Druzhinin <igor.druzhinin@xxxxxxxxxx>
    Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
    Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

commit 88bfbf90e35f1213f9967a97dee0b2039f9998a4
Author: Bernd Kuhls <bernd.kuhls@xxxxxxxxxxx>
Date:   Sat Aug 19 16:21:42 2017 +0200

    tools/libxc/xc_dom_arm: add missing variable initialization
    
    The variable domctl.u.address_size.size may remain uninitialized if
    guest_type is not one of xen-3.0-aarch64 or xen-3.0-armv7l. And the
    code precisely checks if this variable is still 0 to decide if the
    guest type is supported or not.
    
    This fixes the following build failure with gcc 7.x:
    
    xc_dom_arm.c:229:31: error: 'domctl.u.address_size.size' may be used 
uninitialized in this function [-Werror=maybe-uninitialized]
         if ( domctl.u.address_size.size == 0 )
    
    Patch originally taken from
    https://www.mail-archive.com/xen-devel@xxxxxxxxxxxxx/msg109313.html.
    
    Signed-off-by: Bernd Kuhls <bernd.kuhls@xxxxxxxxxxx>
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
    Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

commit 0c5f2f9cefacd0881b86abbe36e231815cef7735
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date:   Wed Aug 16 20:31:00 2017 +0200

    mm: Make sure pages are scrubbed
    
    Add a debug Kconfig option that will make page allocator verify
    that pages that were supposed to be scrubbed are, in fact, clean.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

commit d6bbb14cdc566745653df8b77dc103191efd1650
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date:   Wed Aug 16 20:30:00 2017 +0200

    mm: Print number of unscrubbed pages in 'H' debug handler
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
    Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>

commit b43abf5ca3412554b97936e57714581c86ff440f
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date:   Wed Aug 16 20:31:00 2017 +0200

    mm: Keep heap accessible to others while scrubbing
    
    Instead of scrubbing pages while holding heap lock we can mark
    buddy's head as being scrubbed and drop the lock temporarily.
    If someone (most likely alloc_heap_pages()) tries to access
    this chunk it will signal the scrubber to abort scrub by setting
    head's BUDDY_SCRUB_ABORT bit. The scrubber checks this bit after
    processing each page and stops its work as soon as it sees it.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
    Acked-by: Julien Grall <julien.grall@xxxxxxx>

commit 462090402a1485504c18d79f7a22b8ead03f1fdd
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date:   Wed Aug 16 20:31:00 2017 +0200

    spinlock: Introduce spin_lock_cb()
    
    While waiting for a lock we may want to periodically run some
    code. This code may, for example, allow the caller to release
    resources held by it that are no longer needed in the critical
    section protected by the lock.
    
    Specifically, this feature will be needed by scrubbing code where
    the scrubber, while waiting for heap lock to merge back clean
    pages, may be requested by page allocator (which is currently
    holding the lock) to abort merging and release the buddy page head
    that the allocator wants.
    
    We could use spin_trylock() but since it doesn't take lock ticket
    it may take long time until the lock is taken. Instead we add
    spin_lock_cb() that allows us to grab the ticket and execute a
    callback while waiting. This callback is executed on every iteration
    of the spinlock waiting loop.
    
    Since we may be sleeping in the lock until it is released we need a
    mechanism that will make sure that the callback has a chance to run.
    We add spin_lock_kick() that will wake up the waiter.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
    Acked-by: Julien Grall <julien.grall@xxxxxxx>

commit 55066985050f5366ed800dcd5ee9308d6ff943b1
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date:   Wed Aug 16 20:30:00 2017 +0200

    mm: Scrub memory from idle loop
    
    Instead of scrubbing pages during guest destruction (from
    free_heap_pages()) do this opportunistically, from the idle loop.
    
    We might come to scrub_free_pages()from idle loop while another CPU
    uses mapcache override, resulting in a fault while trying to do
    __map_domain_page() in scrub_one_page(). To avoid this, make mapcache
    vcpu override a per-cpu variable.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
    Acked-by: Julien Grall <julien.grall@xxxxxxx>
(qemu changes not included)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.