1. 29 11月, 2017 1 次提交
  2. 03 11月, 2017 1 次提交
  3. 08 8月, 2017 2 次提交
  4. 04 6月, 2017 1 次提交
    • A
      KVM: arm/arm64: properly use vcpu requests · 6a6d73be
      Andrew Jones 提交于
      arm/arm64 already has one VCPU request used when setting pause,
      but it doesn't properly check requests in VCPU RUN. Check it
      and also make sure we set vcpu->mode at the appropriate time
      (before the check) and with the appropriate barriers. See
      Documentation/virtual/kvm/vcpu-requests.rst. Also make sure we
      don't leave any vcpu requests we don't intend to handle later
      set in the request bitmap. If we don't clear them, then
      kvm_request_pending() may return true when it shouldn't.
      
      Using VCPU requests properly fixes a small race where pause
      could get set just as a VCPU was entering guest mode.
      Signed-off-by: NAndrew Jones <drjones@redhat.com>
      Reviewed-by: NChristoffer Dall <cdall@linaro.org>
      Signed-off-by: NChristoffer Dall <cdall@linaro.org>
      6a6d73be
  5. 07 3月, 2017 1 次提交
    • M
      arm64: KVM: Survive unknown traps from guests · ba4dd156
      Mark Rutland 提交于
      Currently we BUG() if we see an ESR_EL2.EC value we don't recognise. As
      configurable disables/enables are added to the architecture (controlled
      by RES1/RES0 bits respectively), with associated synchronous exceptions,
      it may be possible for a guest to trigger exceptions with classes that
      we don't recognise.
      
      While we can't service these exceptions in a manner useful to the guest,
      we can avoid bringing down the host. Per ARM DDI 0487A.k_iss10775, page
      D7-1937, EC values within the range 0x00 - 0x2c are reserved for future
      use with synchronous exceptions, and EC values within the range 0x2d -
      0x3f may be used for either synchronous or asynchronous exceptions.
      
      The patch makes KVM handle any unknown EC by injecting an UNDEFINED
      exception into the guest, with a corresponding (ratelimited) warning in
      the host dmesg. We could later improve on this with with a new (opt-in)
      exit to the host userspace.
      
      Cc: Dave Martin <dave.martin@arm.com>
      Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
      Reviewed-by: NChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      ba4dd156
  6. 17 11月, 2016 1 次提交
    • S
      arm64: Support systems without FP/ASIMD · 82e0191a
      Suzuki K Poulose 提交于
      The arm64 kernel assumes that FP/ASIMD units are always present
      and accesses the FP/ASIMD specific registers unconditionally. This
      could cause problems when they are absent. This patch adds the
      support for kernel handling systems without FP/ASIMD by skipping the
      register access within the kernel. For kvm, we trap the accesses
      to FP/ASIMD and inject an undefined instruction exception to the VM.
      
      The callers of the exported kernel_neon_begin_partial() should
      make sure that the FP/ASIMD is supported.
      
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Christoffer Dall <christoffer.dall@linaro.org>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NSuzuki K Poulose <suzuki.poulose@arm.com>
      Reviewed-by: NMarc Zyngier <marc.zyngier@arm.com>
      [catalin.marinas@arm.com: add comment on the ARM64_HAS_NO_FPSIMD conflict and the new location]
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      82e0191a
  7. 08 9月, 2016 2 次提交
  8. 22 6月, 2016 1 次提交
  9. 28 4月, 2016 1 次提交
  10. 14 12月, 2015 2 次提交
  11. 05 12月, 2015 1 次提交
  12. 21 7月, 2015 3 次提交
  13. 15 1月, 2015 3 次提交
  14. 29 8月, 2014 1 次提交
    • C
      arm/arm64: KVM: Complete WFI/WFE instructions · 05e0127f
      Christoffer Dall 提交于
      The architecture specifies that when the processor wakes up from a WFE
      or WFI instruction, the instruction is considered complete, however we
      currrently return to EL1 (or EL0) at the WFI/WFE instruction itself.
      
      While most guests may not be affected by this because their local
      exception handler performs an exception returning setting the event bit
      or with an interrupt pending, some guests like UEFI will get wedged due
      this little mishap.
      
      Simply skip the instruction when we have completed the emulation.
      
      Cc: <stable@vger.kernel.org>
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NChristoffer Dall <christoffer.dall@linaro.org>
      05e0127f
  15. 11 7月, 2014 1 次提交
  16. 30 4月, 2014 1 次提交
  17. 28 12月, 2013 1 次提交
  18. 19 12月, 2013 1 次提交
  19. 30 10月, 2013 1 次提交
    • M
      arm64: KVM: Yield CPU when vcpu executes a WFE · d241aac7
      Marc Zyngier 提交于
      On an (even slightly) oversubscribed system, spinlocks are quickly
      becoming a bottleneck, as some vcpus are spinning, waiting for a
      lock to be released, while the vcpu holding the lock may not be
      running at all.
      
      The solution is to trap blocking WFEs and tell KVM that we're
      now spinning. This ensures that other vpus will get a scheduling
      boost, allowing the lock to be released more quickly. Also, using
      CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT slightly improves the performance
      when the VM is severely overcommited.
      Acked-by: NChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      d241aac7
  20. 12 6月, 2013 3 次提交