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

[Xen-devel] [xen-4.12-testing test] 143371: regressions - FAIL



flight 143371 xen-4.12-testing real [real]
http://logs.test-lab.xenproject.org/osstest/logs/143371/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-xl           12 guest-start              fail REGR. vs. 143190
 test-amd64-i386-libvirt-xsm 18 guest-start/debian.repeat fail REGR. vs. 143190
 test-arm64-arm64-xl-credit1  12 guest-start              fail REGR. vs. 143190
 test-amd64-amd64-libvirt    18 guest-start/debian.repeat fail REGR. vs. 143190
 test-armhf-armhf-xl-arndale  12 guest-start              fail REGR. vs. 143190
 test-amd64-i386-libvirt     18 guest-start/debian.repeat fail REGR. vs. 143190
 test-arm64-arm64-xl-thunderx 16 guest-start/debian.repeat fail REGR. vs. 143190
 test-amd64-i386-xl-raw      19 guest-start/debian.repeat fail REGR. vs. 143190
 test-amd64-amd64-libvirt-vhd 17 guest-start/debian.repeat fail REGR. vs. 143190
 test-armhf-armhf-libvirt-raw 15 guest-start/debian.repeat fail REGR. vs. 143190
 test-armhf-armhf-xl-vhd     15 guest-start/debian.repeat fail REGR. vs. 143190

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qcow2    17 guest-localmigrate/x10       fail  like 143190
 test-amd64-i386-xl-pvshim    12 guest-start                  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-i386-libvirt-xsm  13 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  14 saverestore-support-check    fail   never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 11 migrate-support-check 
fail never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 11 migrate-support-check 
fail never pass
 test-amd64-amd64-qemuu-nested-amd 17 debian-hvm-install/l1/l2  fail never pass
 test-arm64-arm64-xl          13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          14 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-xsm      13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      14 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 14 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 13 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 14 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  14 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit1  13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  14 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 12 migrate-support-check        fail   never pass
 test-amd64-i386-xl-qemuu-win7-amd64 17 guest-stop              fail never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 17 guest-stop             fail never pass
 test-armhf-armhf-libvirt-raw 12 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt-raw 13 saverestore-support-check    fail   never pass
 test-amd64-amd64-xl-qemuu-ws16-amd64 17 guest-stop             fail never pass
 test-amd64-amd64-xl-qemut-win7-amd64 17 guest-stop             fail never pass
 test-amd64-i386-xl-qemuu-ws16-amd64 17 guest-stop              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-amd64-i386-xl-qemut-win7-amd64 17 guest-stop              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-xl-rtds     13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-rtds     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-xl-vhd      12 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      13 saverestore-support-check    fail   never pass
 test-armhf-armhf-libvirt     13 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     14 saverestore-support-check    fail   never pass
 test-amd64-amd64-xl-qemut-ws16-amd64 17 guest-stop             fail never pass
 test-amd64-i386-xl-qemut-ws16-amd64 17 guest-stop              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
 test-amd64-i386-xl-qemut-win10-i386 10 windows-install         fail never pass

version targeted for testing:
 xen                  26b8dd791d5c358cfbf2fbfecfbbc4aca1bc04ee
baseline version:
 xen                  c28853456b51516514d36659494fbe7c1d983e2c

Last test of basis   143190  2019-10-26 06:35:01 Z    5 days
Failing since        143302  2019-10-28 21:36:08 Z    2 days    2 attempts
Testing same since   143371  2019-10-29 22:57:19 Z    1 days    1 attempts

------------------------------------------------------------
People who touched revisions under test:
  Julien Grall <julien.grall@xxxxxxx>
  Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
  Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
  Stefano Stabellini <sstabellini@xxxxxxxxxx>
  Stefano Stabellini <stefanos@xxxxxxxxxx>

jobs:
 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             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                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           fail    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-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-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  fail    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-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                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-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                                  fail    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  fail    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-i386-freebsd10-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-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-libvirt                                     fail    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      fail    
 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-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-xl-qcow2                                    fail    
 test-armhf-armhf-libvirt-raw                                 fail    
 test-amd64-i386-xl-raw                                       fail    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 fail    
 test-amd64-amd64-libvirt-vhd                                 fail    
 test-armhf-armhf-xl-vhd                                      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.

------------------------------------------------------------
commit 26b8dd791d5c358cfbf2fbfecfbbc4aca1bc04ee
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Mon Mar 18 18:01:31 2019 +0000

    xen/arm: mm: Flush the TLBs even if a mapping failed in create_xen_entries
    
    At the moment, create_xen_entries will only flush the TLBs if the full
    range has successfully been updated. This may lead to leave unwanted
    entries in the TLBs if we fail to update some entries.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Reviewed-by: Andrii Anisov <andrii_anisov@xxxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit a189ef027dbb7a3c0dfe566137f05c06d6685fb9)

commit 5572ba9676793ddc3f74f673ea502018d92fc3e0
Author: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Date:   Mon Jun 3 15:02:43 2019 -0700

    xen/arm: fix nr_pdxs calculation
    
    pfn_to_pdx expects an address, not a size, as a parameter. Specifically,
    it expects the end address, then the masks calculations compensate for
    any holes between start and end. Thus, we should pass the end address to
    pfn_to_pdx.
    
    The initial pdx is stored in frametable_base_pdx, so we can subtract the
    result of pfn_to_pdx(start_address) from nr_pdxs; we know that we don't
    need to cover any memory in the range 0-start in the frametable.
    
    Remove the variable `nr_pages' because it is unused.
    
    Signed-off-by: Stefano Stabellini <stefanos@xxxxxxxxxx>
    Reviewed-by: Julien Grall <julien.grall@xxxxxxx>
    CC: JBeulich@xxxxxxxx
    (cherry picked from commit f51027be0688540aaab61513b06a8693a37e4c00)

commit bb4c1a8253463e9e63e91bdb2c64a642e14ec893
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Thu Jul 18 12:57:14 2019 +0100

    xen/arm64: Correctly compute the virtual address in maddr_to_virt()
    
    The helper maddr_to_virt() is used to translate a machine address to a
    virtual address. To save some valuable address space, some part of the
    machine address may be compressed.
    
    In theory the PDX code is free to compress any bits so there are no
    guarantee the machine index computed will be always greater than
    xenheap_mfn_start. This would result to return a virtual address that is
    not part of the direct map and trigger a crash at least on debug-build later
    on because of the check in virt_to_page().
    
    A recently reverted patch (see 1191156361 "xen/arm: fix mask calculation
    in pdx_init_mask") allows the PDX to compress more bits and triggered a
    crash on AMD Seattle Platform.
    
    Avoid the crash by keeping track of the base PDX for the xenheap and use
    it for computing the virtual address.
    
    Note that virt_to_maddr() does not need to have similar modification as
    it is using the hardware to translate the virtual address to a machine
    address.
    
    Take the opportunity to fix the ASSERT() as the direct map base address
    correspond to the start of the RAM (this is not always 0).
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit 612d476e74a314be514ee6a9744eea8db09d32e5)

commit 81feea0d2520ad6db00dc3deade823045a1225e0
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Thu May 16 23:31:46 2019 +0100

    xen/arm: vsmc: The function identifier is always 32-bit
    
    On Arm64, the SMCCC function identifier is always stored in the first 32-bit
    of x0 register. The rest of the bits are not defined and should be
    ignored.
    
    This means the variable funcid should be an uint32_t rather than
    register_t.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit 7f4217cc60574866cb90d67d9750228c6b86c91e)

commit 9f746892c4a841a489e12d52adb35e667849bb65
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Fri Aug 9 13:59:15 2019 +0100

    xen/arm: p2m: Free the p2m entry after flushing the IOMMU TLBs
    
    When freeing a p2m entry, all the sub-tree behind it will also be freed.
    This may include intermediate page-tables or any l3 entry requiring to
    drop a reference (e.g for foreign pages). As soon as pages are freed,
    they may be re-used by Xen or another domain. Therefore it is necessary
    to flush *all* the TLBs beforehand.
    
    While CPU TLBs will be flushed before freeing the pages, this is not
    the case for IOMMU TLBs. This can be solved by moving the IOMMU TLBs
    flush earlier in the code.
    
    This wasn't considered as a security issue as device passthrough on Arm
    is not security supported.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Tested-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    Release-acked-by: Juergen Gross <jgross@xxxxxxxx>
    (cherry picked from commit 671878779741b38c5f2363adceef8de2ce0b3945)

commit 5f1c9e437b588563b687b1bf8c9ca3b16af5ec94
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Wed Oct 16 11:53:03 2019 +0100

    xen/arm: Don't use _end in is_xen_fixed_mfn()
    
    virt_to_maddr() is using the hardware page-table walk instructions to
    translate a virtual address to physical address. The function should
    only be called on virtual address mapped.
    
    _end points past the end of Xen binary and may not be mapped when the
    binary size is page-aligned. This means virt_to_maddr() will not be able
    to do the translation and therefore crash Xen.
    
    Note there is also an off-by-one issue in this code, but the panic will
    trump that.
    
    Both issues can be fixed by using _end - 1 in the check.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Release-acked-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit 8dba9a81e7c62b8a7dbe023fffecd2e16cc20486)

commit 4b5cc959dcc477e7165cb623ddc668d0b4a535cf
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Wed Oct 16 12:12:51 2019 +0100

    xen/arm: setup: Calculate correctly the size of Xen
    
    The current size of Xen is computed using _end - _start + 1. However,
    _end is pointing one past the end of Xen, so the size of Xen is
    off-by-one.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Release-acked-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit 08e2059facd78d5ffaf206ba06ac2017c4adeed4)

commit ab1e6a7f13cf9a71aaa68dd342020c95a1b8dc67
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Tue Sep 24 11:39:10 2019 +0100

    xen/arm: Implement workaround for Cortex A-57 and Cortex A72 AT speculate
    
    Both Cortex-A57 (erratum 1319537) and Cortex-A72 (erratum 1319367) can
    end with corrupted TLBs if they speculate an AT instruction while S1/S2
    system registers in inconsistent state.
    
    The workaround is the same as for Cortex A-76 implemented by commit
    a18be06aca "xen/arm: Implement workaround for Cortex-A76 erratum 1165522",
    so it is only necessary to plumb in the cpuerrata framework.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit 07e44b3d1be32fa2165c2367ae3ef9c6c8b39e1e)

commit 801acf814bab999efd74a678dedced0f2121196b
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Wed Mar 27 18:45:23 2019 +0000

    xen/arm: memaccess: Initialize correctly *access in __p2m_get_mem_access
    
    The commit 8d84e701fd "xen/arm: initialize access" initializes
    *access using the wrong enumeration type. This result to a warning
    using clang:
    
    mem_access.c:50:20: error: implicit conversion from enumeration type
    'p2m_access_t' to different enumeration type 'xenmem_access_t'
    [-Werror,-Wenum-conversion]
        *access = p2m->default_access;
                ~ ~~~~~^~~~~~~~~~~~~~
    
    The correct solution is to use the array memaccess that will do the
    conversion between the 2 enums.
    
    Fixes: 8d84e701fd ("xen/arm: initialize access")
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Acked-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
    (cherry picked from commit 5ba1c5d0641cf63086b3058e547fcd28c3c4a011)

commit 97b46980822f3c8f2b06990a0b6b1944300a5c8e
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Wed May 15 21:17:30 2019 +0100

    xen/arm: traps: Avoid using BUG_ON() to check guest state in advance_pc()
    
    The condition of the BUG_ON() in advance_pc() is pretty wrong because
    the bits [26:25] and [15:10] have a different meaning between AArch32
    and AArch64 state.
    
    On AArch32, they are used to store PSTATE.IT. On AArch64, they are RES0
    or used for new feature (e.g ARMv8.0-SSBS, ARMv8.5-BTI).
    
    This means a 64-bit guest will hit the BUG_ON() if it is trying to use
    any of these features.
    
    More generally, RES0 means that the bits is reserved for future use. So
    crashing the host is definitely not the right solution.
    
    In this particular case, we only need to know the guest was using 32-bit
    Mode and the Thumb instructions. So replace the BUG_ON() by a proper
    check.
    
    Reported-by: Lukas Jünger <lukas.juenger@xxxxxxxxxxxxxxxxxx>
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit 72615f2e6b98e861c08abb1d2b194126013d54fe)

commit e28f7d60d5b5b25437a97ecc655e73eb2f1d05eb
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Tue Jul 23 22:35:48 2019 +0100

    xen/arm: SCTLR_EL1 is a 64-bit register on Arm64
    
    On Arm64, system registers are always 64-bit including SCTLR_EL1.
    However, Xen is assuming this is 32-bit because earlier revision of
    Armv8 had the top 32-bit RES0 (see ARM DDI0595.b).
    
    >From Armv8.5, some bits in [63:32] will be defined and allowed to be
    modified by the guest. So we would effectively reset those bits to 0
    after each context switch. This means the guest may not function
    correctly afterwards.
    
    Rather than resetting to 0 the bits [63:32], preserve them across
    context switch.
    
    Note that the corresponding register on Arm32 (i.e SCTLR) is always
    32-bit. So we need to use register_t anywhere we deal the SCTLR{,_EL1}.
    
    Outside interface is switched to use 64-bit to allow ABI compatibility
    between 32-bit and 64-bit.
    
    [Stefano: fix typo in commit message]
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Signed-off-by: Stefano Stabellini <stefanos@xxxxxxxxxx>
    Reviewed-by: Volodymyr Babchuk <volodymyr.babchuk@xxxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit e98edccb944a80db782e551f3090628e66c7fb52)

commit 4fe70a180c53df0ad0092ef8d65e8ce9439b254e
Author: Julien Grall <julien.grall@xxxxxxx>
Date:   Wed May 15 17:16:13 2019 +0100

    xen/arm: traps: Avoid using BUG_ON() in _show_registers()
    
    At the moment, _show_registers() is using a BUG_ON() to assert only
    userspace will run 32-bit code in a 64-bit domain.
    
    Such extra precaution is not necessary and could be avoided by only
    checking the CPU mode to decide whether show_registers_64() or
    show_reigsters_32() should be called.
    
    This has also the nice advantage to avoid nested if in the code.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>
    Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    (cherry picked from commit e04818b46d6b08ae22d4ef05fa4dc685bba42f57)
(qemu changes not included)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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