1. 01 3月, 2018 5 次提交
  2. 22 2月, 2018 1 次提交
    • P
      target/arm: Fix register definitions for VMIDR and VMPIDR · 36476562
      Peter Maydell 提交于
      The register definitions for VMIDR and VMPIDR have separate
      reginfo structs for the AArch32 and AArch64 registers. However
      the 32-bit versions are wrong:
       * they use offsetof instead of offsetoflow32 to mark where
         the 32-bit value lives in the uint64_t CPU state field
       * they don't mark themselves as ARM_CP_ALIAS
      
      In particular this means that if you try to use an Arm guest CPU
      which enables EL2 on a big-endian host it will assert at reset:
       target/arm/cpu.c:114: cp_reg_check_reset: Assertion `oldvalue == newvalue' failed.
      
      because the reset of the 32-bit register writes to the top
      half of the uint64_t.
      
      Correct the errors in the structures.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      ---
      This is necessary for 'make check' to pass on big endian
      systems with the 'raspi3' board enabled, which is the
      first board which has an EL2-enabled-by-default CPU.
      36476562
  3. 21 2月, 2018 1 次提交
  4. 19 2月, 2018 1 次提交
    • M
      mem: add share parameter to memory-backend-ram · 06329cce
      Marcel Apfelbaum 提交于
      Currently only file backed memory backend can
      be created with a "share" flag in order to allow
      sharing guest RAM with other processes in the host.
      
      Add the "share" flag also to RAM Memory Backend
      in order to allow remapping parts of the guest RAM
      to different host virtual addresses. This is needed
      by the RDMA devices in order to remap non-contiguous
      QEMU virtual addresses to a contiguous virtual address range.
      
      Moved the "share" flag to the Host Memory base class,
      modified phys_mem_alloc to include the new parameter
      and a new interface memory_region_init_ram_shared_nomigrate.
      
      There are no functional changes if the new flag is not used.
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      Signed-off-by: NMarcel Apfelbaum <marcel@redhat.com>
      06329cce
  5. 16 2月, 2018 14 次提交
  6. 14 2月, 2018 1 次提交
  7. 13 2月, 2018 1 次提交
    • Y
      hax: Support guest RAM sizes of 4GB or more · 7a5235c9
      Yu Ning 提交于
      Since HAX_VM_IOCTL_ALLOC_RAM takes a 32-bit size, it cannot handle
      RAM blocks of 4GB or larger, which is why HAXM can only run guests
      with less than 4GB of RAM. Solve this problem by utilizing the new
      HAXM API, HAX_VM_IOCTL_ADD_RAMBLOCK, which takes a 64-bit size, to
      register RAM blocks with the HAXM kernel module. The new API is
      first added in HAXM 7.0.0, and its availablility and be confirmed
      by the presence of the HAX_CAP_64BIT_RAMBLOCK capability flag.
      
      When the guest RAM size reaches 7GB, QEMU will ask HAXM to set up a
      memory mapping that covers a 4GB region, which will fail, because
      HAX_VM_IOCTL_SET_RAM also takes a 32-bit size. Work around this
      limitation by splitting the large mapping into small ones and
      calling HAX_VM_IOCTL_SET_RAM multiple times.
      
      Bug: https://bugs.launchpad.net/qemu/+bug/1735576Signed-off-by: NYu Ning <yu.ning@intel.com>
      Message-Id: <1515752555-12784-1-git-send-email-yu.ning@linux.intel.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7a5235c9
  8. 10 2月, 2018 1 次提交
  9. 09 2月, 2018 15 次提交