1. 24 9月, 2014 6 次提交
  2. 17 9月, 2014 2 次提交
    • T
      kvm: Make init_rmode_identity_map() return 0 on success. · f51770ed
      Tang Chen 提交于
      In init_rmode_identity_map(), there two variables indicating the return
      value, r and ret, and it return 0 on error, 1 on success. The function
      is only called by vmx_create_vcpu(), and ret is redundant.
      
      This patch removes the redundant variable, and makes init_rmode_identity_map()
      return 0 on success, -errno on failure.
      Signed-off-by: NTang Chen <tangchen@cn.fujitsu.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      f51770ed
    • T
      kvm: Remove ept_identity_pagetable from struct kvm_arch. · a255d479
      Tang Chen 提交于
      kvm_arch->ept_identity_pagetable holds the ept identity pagetable page. But
      it is never used to refer to the page at all.
      
      In vcpu initialization, it indicates two things:
      1. indicates if ept page is allocated
      2. indicates if a memory slot for identity page is initialized
      
      Actually, kvm_arch->ept_identity_pagetable_done is enough to tell if the ept
      identity pagetable is initialized. So we can remove ept_identity_pagetable.
      
      NOTE: In the original code, ept identity pagetable page is pinned in memroy.
            As a result, it cannot be migrated/hot-removed. After this patch, since
            kvm_arch->ept_identity_pagetable is removed, ept identity pagetable page
            is no longer pinned in memory. And it can be migrated/hot-removed.
      Signed-off-by: NTang Chen <tangchen@cn.fujitsu.com>
      Reviewed-by: NGleb Natapov <gleb@kernel.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      a255d479
  3. 11 9月, 2014 1 次提交
  4. 29 8月, 2014 4 次提交
  5. 22 8月, 2014 4 次提交
  6. 20 8月, 2014 1 次提交
    • W
      KVM: vmx: fix ept reserved bits for 1-GByte page · a32e8459
      Wanpeng Li 提交于
      EPT misconfig handler in kvm will check which reason lead to EPT
      misconfiguration after vmexit. One of the reasons is that an EPT
      paging-structure entry is configured with settings reserved for
      future functionality. However, the handler can't identify if
      paging-structure entry of reserved bits for 1-GByte page are
      configured, since PDPTE which point to 1-GByte page will reserve
      bits 29:12 instead of bits 7:3 which are reserved for PDPTE that
      references an EPT Page Directory. This patch fix it by reserve
      bits 29:12 for 1-GByte page.
      Signed-off-by: NWanpeng Li <wanpeng.li@linux.intel.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      a32e8459
  7. 19 8月, 2014 2 次提交
  8. 05 8月, 2014 1 次提交
  9. 30 7月, 2014 1 次提交
  10. 24 7月, 2014 2 次提交
  11. 21 7月, 2014 3 次提交
  12. 17 7月, 2014 1 次提交
  13. 11 7月, 2014 2 次提交
    • P
      KVM: x86: return all bits from get_interrupt_shadow · 37ccdcbe
      Paolo Bonzini 提交于
      For the next patch we will need to know the full state of the
      interrupt shadow; we will then set KVM_REQ_EVENT when one bit
      is cleared.
      
      However, right now get_interrupt_shadow only returns the one
      corresponding to the emulated instruction, or an unconditional
      0 if the emulated instruction does not have an interrupt shadow.
      This is confusing and does not allow us to check for cleared
      bits as mentioned above.
      
      Clean the callback up, and modify toggle_interruptibility to
      match the comment above the call.  As a small result, the
      call to set_interrupt_shadow will be skipped in the common
      case where int_shadow == 0 && mask == 0.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      37ccdcbe
    • P
      KVM: vmx: speed up emulation of invalid guest state · 98eb2f8b
      Paolo Bonzini 提交于
      About 25% of the time spent in emulation of invalid guest state
      is wasted in checking whether emulation is required for the next
      instruction.  However, this almost never changes except when a
      segment register (or TR or LDTR) changes, or when there is a mode
      transition (i.e. CR0 changes).
      
      In fact, vmx_set_segment and vmx_set_cr0 already modify
      vmx->emulation_required (except that the former for some reason
      uses |= instead of just an assignment).  So there is no need to
      call guest_state_valid in the emulation loop.
      
      Emulation performance test results indicate 1650-2600 cycles
      for common instructions, versus 2300-3200 before this patch on
      a Sandy Bridge Xeon.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      98eb2f8b
  14. 19 6月, 2014 9 次提交
  15. 22 5月, 2014 1 次提交