1. 20 7月, 2008 8 次提交
  2. 26 6月, 2008 2 次提交
  3. 25 6月, 2008 1 次提交
  4. 24 6月, 2008 6 次提交
    • A
      KVM: VMX: Fix host msr corruption with preemption enabled · a9b21b62
      Avi Kivity 提交于
      Switching msrs can occur either synchronously as a result of calls to
      the msr management functions (usually in response to the guest touching
      virtualized msrs), or asynchronously when preempting a kvm thread that has
      guest state loaded.  If we're unlucky enough to have the two at the same
      time, host msrs are corrupted and the machine goes kaput on the next syscall.
      
      Most easily triggered by Windows Server 2008, as it does a lot of msr
      switching during bootup.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      a9b21b62
    • A
      KVM: MMU: Fix oops on guest userspace access to guest pagetable · 6bf6a953
      Avi Kivity 提交于
      KVM has a heuristic to unshadow guest pagetables when userspace accesses
      them, on the assumption that most guests do not allow userspace to access
      pagetables directly. Unfortunately, in addition to unshadowing the pagetables,
      it also oopses.
      
      This never triggers on ordinary guests since sane OSes will clear the
      pagetables before assigning them to userspace, which will trigger the flood
      heuristic, unshadowing the pagetables before the first userspace access. One
      particular guest, though (Xenner) will run the kernel in userspace, triggering
      the oops.  Since the heuristic is incorrect in this case, we can simply
      remove it.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      6bf6a953
    • M
      KVM: MMU: large page update_pte issue with non-PAE 32-bit guests (resend) · 30945387
      Marcelo Tosatti 提交于
      kvm_mmu_pte_write() does not handle 32-bit non-PAE large page backed
      guests properly. It will instantiate two 2MB sptes pointing to the same
      physical 2MB page when a guest large pte update is trapped.
      
      Instead of duplicating code to handle this, disallow directory level
      updates to happen through kvm_mmu_pte_write(), so the two 2MB sptes
      emulating one guest 4MB pte can be correctly created by the page fault
      handling path.
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      30945387
    • M
      KVM: MMU: Fix rmap_write_protect() hugepage iteration bug · 6597ca09
      Marcelo Tosatti 提交于
      rmap_next() does not work correctly after rmap_remove(), as it expects
      the rmap chains not to change during iteration.  Fix (for now) by restarting
      iteration from the beginning.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      6597ca09
    • M
      KVM: close timer injection race window in __vcpu_run · 06e05645
      Marcelo Tosatti 提交于
      If a timer fires after kvm_inject_pending_timer_irqs() but before
      local_irq_disable() the code will enter guest mode and only inject such
      timer interrupt the next time an unrelated event causes an exit.
      
      It would be simpler if the timer->pending irq conversion could be done
      with IRQ's disabled, so that the above problem cannot happen.
      
      For now introduce a new vcpu requests bit to cancel guest entry.
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      06e05645
    • M
      KVM: Fix race between timer migration and vcpu migration · d4acf7e7
      Marcelo Tosatti 提交于
      A guest vcpu instance can be scheduled to a different physical CPU
      between the test for KVM_REQ_MIGRATE_TIMER and local_irq_disable().
      
      If that happens, the timer will only be migrated to the current pCPU on
      the next exit, meaning that guest LAPIC timer event can be delayed until
      a host interrupt is triggered.
      
      Fix it by cancelling guest entry if any vcpu request is pending.  This
      has the side effect of nicely consolidating vcpu->requests checks.
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      d4acf7e7
  5. 07 6月, 2008 6 次提交
  6. 23 5月, 2008 1 次提交
  7. 18 5月, 2008 3 次提交
  8. 04 5月, 2008 13 次提交