1. 04 10月, 2011 1 次提交
  2. 27 6月, 2011 1 次提交
  3. 22 6月, 2011 1 次提交
  4. 19 6月, 2011 1 次提交
    • J
      kvm: x86: Save/restore FPU OP, IP and DP · 42cc8fa6
      Jan Kiszka 提交于
      These FPU states are properly maintained by KVM but not yet by TCG. So
      far we unconditionally set them to 0 in the guest which may cause
      state corruptions, though not with modern guests.
      
      To avoid breaking backward migration, use a conditional subsection that
      is only written if any of the three fields is non-zero. The guest's
      FNINIT clears them frequently, and cleared IA32_MISC_ENABLE MSR[2]
      reduces the probability of non-zero values further so that this
      subsection is not expected to restrict migration in any common scenario.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      42cc8fa6
  5. 03 6月, 2011 1 次提交
  6. 23 3月, 2011 1 次提交
  7. 17 3月, 2011 1 次提交
  8. 16 11月, 2010 1 次提交
  9. 29 6月, 2010 1 次提交
  10. 04 3月, 2010 1 次提交
    • J
      KVM: Rework VCPU state writeback API · ea375f9a
      Jan Kiszka 提交于
      This grand cleanup drops all reset and vmsave/load related
      synchronization points in favor of four(!) generic hooks:
      
      - cpu_synchronize_all_states in qemu_savevm_state_complete
        (initial sync from kernel before vmsave)
      - cpu_synchronize_all_post_init in qemu_loadvm_state
        (writeback after vmload)
      - cpu_synchronize_all_post_init in main after machine init
      - cpu_synchronize_all_post_reset in qemu_system_reset
        (writeback after system reset)
      
      These writeback points + the existing one of VCPU exec after
      cpu_synchronize_state map on three levels of writeback:
      
      - KVM_PUT_RUNTIME_STATE (during runtime, other VCPUs continue to run)
      - KVM_PUT_RESET_STATE   (on synchronous system reset, all VCPUs stopped)
      - KVM_PUT_FULL_STATE    (on init or vmload, all VCPUs stopped as well)
      
      This level is passed to the arch-specific VCPU state writing function
      that will decide which concrete substates need to be written. That way,
      no writer of load, save or reset functions that interact with in-kernel
      KVM states will ever have to worry about synchronization again. That
      also means that a lot of reasons for races, segfaults and deadlocks are
      eliminated.
      
      cpu_synchronize_state remains untouched, just as Anthony suggested. We
      continue to need it before reading or writing of VCPU states that are
      also tracked by in-kernel KVM subsystems.
      
      Consequently, this patch removes many cpu_synchronize_state calls that
      are now redundant, just like remaining explicit register syncs.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      ea375f9a
  11. 19 12月, 2009 2 次提交
  12. 12 12月, 2009 2 次提交
  13. 04 12月, 2009 1 次提交
  14. 17 11月, 2009 1 次提交
  15. 28 10月, 2009 1 次提交
  16. 18 10月, 2009 1 次提交
  17. 06 10月, 2009 1 次提交
  18. 05 10月, 2009 17 次提交
  19. 04 10月, 2009 1 次提交
    • A
      target-i386: add RDTSCP support · 1b050077
      Andre Przywara 提交于
      RDTSCP reads the time stamp counter and atomically also the content
      of a 32-bit MSR, which can be freely set by the OS. This allows CPU
      local data to be queried by userspace.
      Linux uses this to allow a fast implementation of the getcpu()
      syscall, which uses the vsyscall page to avoid a context switch.
      AMD CPUs since K8RevF and Intel CPUs since Nehalem support this
      instruction.
      RDTSCP is guarded by the RDTSCP CPUID bit (Fn8000_0001:EDX[27]).
      Signed-off-by: NAndre Przywara <andre.przywara@amd.com>
      Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
      1b050077
  20. 28 8月, 2009 1 次提交
  21. 10 7月, 2009 1 次提交
  22. 03 7月, 2009 1 次提交