1. 14 3月, 2017 9 次提交
    • J
      mem-prealloc: reduce large guest start-up and migration time. · 1e356fc1
      Jitendra Kolhe 提交于
      Using "-mem-prealloc" option for a large guest leads to higher guest
      start-up and migration time. This is because with "-mem-prealloc" option
      qemu tries to map every guest page (create address translations), and
      make sure the pages are available during runtime. virsh/libvirt by
      default, seems to use "-mem-prealloc" option in case the guest is
      configured to use huge pages. The patch tries to map all guest pages
      simultaneously by spawning multiple threads. Currently limiting the
      change to QEMU library functions on POSIX compliant host only, as we are
      not sure if the problem exists on win32. Below are some stats with
      "-mem-prealloc" option for guest configured to use huge pages.
      
      ------------------------------------------------------------------------
      Idle Guest      | Start-up time | Migration time
      ------------------------------------------------------------------------
      Guest stats with 2M HugePage usage - single threaded (existing code)
      ------------------------------------------------------------------------
      64 Core - 4TB   | 54m11.796s    | 75m43.843s
      64 Core - 1TB   | 8m56.576s     | 14m29.049s
      64 Core - 256GB | 2m11.245s     | 3m26.598s
      ------------------------------------------------------------------------
      Guest stats with 2M HugePage usage - map guest pages using 8 threads
      ------------------------------------------------------------------------
      64 Core - 4TB   | 5m1.027s      | 34m10.565s
      64 Core - 1TB   | 1m10.366s     | 8m28.188s
      64 Core - 256GB | 0m19.040s     | 2m10.148s
      -----------------------------------------------------------------------
      Guest stats with 2M HugePage usage - map guest pages using 16 threads
      -----------------------------------------------------------------------
      64 Core - 4TB   | 1m58.970s     | 31m43.400s
      64 Core - 1TB   | 0m39.885s     | 7m55.289s
      64 Core - 256GB | 0m11.960s     | 2m0.135s
      -----------------------------------------------------------------------
      
      Changed in v2:
       - modify number of memset threads spawned to min(smp_cpus, 16).
       - removed 64GB memory restriction for spawning memset threads.
      
      Changed in v3:
       - limit number of threads spawned based on
         min(sysconf(_SC_NPROCESSORS_ONLN), 16, smp_cpus)
       - implement memset thread specific siglongjmp in SIGBUS signal_handler.
      
      Changed in v4
       - remove sigsetjmp/siglongjmp and SIGBUS unblock/block for main thread
         as main thread no longer touches any pages.
       - simplify code my returning memset_thread_failed status from
         touch_all_pages.
      Signed-off-by: NJitendra Kolhe <jitendra.kolhe@hpe.com>
      Message-Id: <1487907103-32350-1-git-send-email-jitendra.kolhe@hpe.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      1e356fc1
    • T
      docs: Add a note about mixing bootindex with "-boot order" · c0d9f7d0
      Thomas Huth 提交于
      Occasionally the users try to mix the bootindex properties with the
      "-boot order" parameter - and this likely does not give the expected
      results. So let's add a proper statement that these two concepts
      should not be used together.
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Message-Id: <1488303601-23741-1-git-send-email-thuth@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      c0d9f7d0
    • D
      memory_region: Fix name comments · e8f5fe2d
      Dr. David Alan Gilbert 提交于
      The 'name' parameter to memory_region_init_* had been marked as debug
      only, however vmstate_region_ram uses it as a parameter to
      qemu_ram_set_idstr to set RAMBlock names and these form part of the
      migration stream.
      Signed-off-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Message-Id: <20170309152708.30635-1-dgilbert@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      e8f5fe2d
    • P
      Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.9-20170314' into staging · 94b5d57d
      Peter Maydell 提交于
      ppc patch queue for 2017-03-14
      
      This set has a handful og bugfixes to go into qemu-2.9.  This includes
      an update to the dtc/libfdt submodule which will fix the build errors
      seen on some distributions.
      
      # gpg: Signature made Tue 14 Mar 2017 04:00:41 GMT
      # gpg:                using RSA key 0x6C38CACA20D9B392
      # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
      # gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>"
      # gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
      # gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>"
      # Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392
      
      * remotes/dgibson/tags/ppc-for-2.9-20170314:
        dtc: Update submodule to avoid build errors
        pseries: Don't expose PCIe extended config space on older machine types
        target/ppc: fix cpu_ov setting for 32-bit
        target/ppc: Fix wrong number of UAMR register
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      94b5d57d
    • C
      build: include sys/sysmacros.h for major() and minor() · 4d04351f
      Christopher Covington 提交于
      The definition of the major() and minor() macros are moving within glibc to
      <sys/sysmacros.h>. Include this header when it is available to avoid the
      following sorts of build-stopping messages:
      
      qga/commands-posix.c: In function ‘dev_major_minor’:
      qga/commands-posix.c:656:13: error: In the GNU C Library, "major" is defined
       by <sys/sysmacros.h>. For historical compatibility, it is
       currently defined by <sys/types.h> as well, but we plan to
       remove this soon. To use "major", include <sys/sysmacros.h>
       directly. If you did not intend to use a system-defined macro
       "major", you should undefine it after including <sys/types.h>. [-Werror]
               *devmajor = major(st.st_rdev);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
      
      qga/commands-posix.c:657:13: error: In the GNU C Library, "minor" is defined
       by <sys/sysmacros.h>. For historical compatibility, it is
       currently defined by <sys/types.h> as well, but we plan to
       remove this soon. To use "minor", include <sys/sysmacros.h>
       directly. If you did not intend to use a system-defined macro
       "minor", you should undefine it after including <sys/types.h>. [-Werror]
               *devminor = minor(st.st_rdev);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
      
      The additional include allows the build to complete on Fedora 26 (Rawhide)
      with glibc version 2.24.90.
      Signed-off-by: NChristopher Covington <cov@codeaurora.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      4d04351f
    • D
      dtc: Update submodule to avoid build errors · 28df75d8
      David Gibson 提交于
      The currently included version of the dtc/libfdt submodule has some build
      errors on certain distributions (including RHEL7).  This is due to some
      poorly named macros in libfdt.h; they're designed for use with the sparse
      static checker, but use reserved names which conflict with some symbols in
      the standard headers.
      
      That's been corrected in upstream dtc, this updates the qemu submodule to
      bring the fix to qemu.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      28df75d8
    • D
      pseries: Don't expose PCIe extended config space on older machine types · 82516263
      David Gibson 提交于
      bb998645 "spapr_pci: Advertise access to PCIe extended config space"
      allowed guests to access the extended config space of PCI Express devices
      via the PAPR interfaces, even though the paravirtualized bus mostly acts
      like plain PCI.
      
      However, that patch enabled access unconditionally, including for existing
      machine types, which is an unwise change in behaviour.  This patch limits
      the change to pseries-2.9 (and later) machine types.
      Suggested-by: NAndrea Bolognani <abologna@redhat.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      82516263
    • N
      target/ppc: fix cpu_ov setting for 32-bit · 38a61d34
      Nikunj A Dadhania 提交于
      A bug was introduced in following commit:
      
          dc0ad844 target/ppc: update overflow flags for add/sub
      
      As for 32-bit ppc target extracting bit 63 for overflow is not correct.
      Made it dependent on TARGET_LOG_BITS. This had broken booting MacOS
      9.2.1 image
      Reported-by: NMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      Signed-off-by: NNikunj A Dadhania <nikunj@linux.vnet.ibm.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Tested-by: NMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      38a61d34
    • T
      target/ppc: Fix wrong number of UAMR register · f244115c
      Thomas Huth 提交于
      The SPR UAMR has the number 13, and not 12. (Fortunately it seems like
      Linux is not using this register yet - only the privileged version with
      number 29 ... that's why nobody noticed this problem yet)
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      f244115c
  2. 13 3月, 2017 15 次提交
  3. 11 3月, 2017 3 次提交
  4. 10 3月, 2017 2 次提交
    • A
      docker/dockerfiles/debian-s390-cross: include clang · 8ba1e5f7
      Alex Bennée 提交于
      It's a silly little limitation on Shippable that is looks for clang
      in the container even though we won't use it. The arm/aarch64 cross
      builds inherit this from debian.docker but as we needed to use
      debian-testing for this we add it here. We also collapse the update
      step into one RUN line to remove and intermediate layer of the docker
      build.
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Message-Id: <20170306112848.659-1-alex.bennee@linaro.org>
      Signed-off-by: NFam Zheng <famz@redhat.com>
      8ba1e5f7
    • P
      Merge remote-tracking branch 'remotes/stsquad/tags/pull-mttcg-fixups-090317-1' into staging · 95b0eca4
      Peter Maydell 提交于
      Fix-ups for MTTCG regressions for 2.9
      
      This is the same as v3 posted a few days ago except with a few extra
      Reviewed-by tags added.
      
      # gpg: Signature made Thu 09 Mar 2017 10:45:18 GMT
      # gpg:                using RSA key 0xFBD0DB095A9E2A44
      # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>"
      # Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44
      
      * remotes/stsquad/tags/pull-mttcg-fixups-090317-1:
        hw/intc/arm_gic: modernise the DPRINTF
        target/arm/helper: make it clear the EC field is also in hex
        target-i386: defer VMEXIT to do_interrupt
        target/mips: hold BQL for timer interrupts
        translate-all: exit cpu_restore_state early if translating
        target/xtensa: hold BQL for interrupt processing
        s390x/misc_helper.c: wrap IO instructions in BQL
        sparc/sparc64: grab BQL before calling cpu_check_irqs
        cpus.c: add additional error_report when !TARGET_SUPPORT_MTTCG
        target/i386/cpu.h: declare TCG_GUEST_DEFAULT_MO
        vl/cpus: be smarter with icount and MTTCG
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      95b0eca4
  5. 09 3月, 2017 11 次提交