1. 21 10月, 2010 1 次提交
  2. 11 8月, 2010 1 次提交
  3. 29 6月, 2010 2 次提交
  4. 14 6月, 2010 1 次提交
  5. 12 5月, 2010 2 次提交
  6. 26 4月, 2010 1 次提交
  7. 20 4月, 2010 1 次提交
  8. 10 4月, 2010 1 次提交
  9. 02 4月, 2010 1 次提交
  10. 30 3月, 2010 1 次提交
  11. 13 3月, 2010 1 次提交
  12. 04 3月, 2010 2 次提交
    • 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
    • J
      KVM: Rework of guest debug state writing · b0b1d690
      Jan Kiszka 提交于
      So far we synchronized any dirty VCPU state back into the kernel before
      updating the guest debug state. This was a tribute to a deficite in x86
      kernels before 2.6.33. But as this is an arch-dependent issue, it is
      better handle in the x86 part of KVM and remove the writeback point for
      generic code. This also avoids overwriting the flushed state later on if
      user space decides to change some more registers before resuming the
      guest.
      
      We furthermore need to reinject guest exceptions via the appropriate
      mechanism. That is KVM_SET_GUEST_DEBUG for older kernels and
      KVM_SET_VCPU_EVENTS for recent ones. Using both mechanisms at the same
      time will cause state corruptions.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      b0b1d690
  13. 24 2月, 2010 1 次提交
  14. 22 2月, 2010 1 次提交
  15. 10 2月, 2010 1 次提交
  16. 04 2月, 2010 1 次提交
    • S
      kvm: Flush coalesced MMIO buffer periodly · 62a2744c
      Sheng Yang 提交于
      The default action of coalesced MMIO is, cache the writing in buffer, until:
      1. The buffer is full.
      2. Or the exit to QEmu due to other reasons.
      
      But this would result in a very late writing in some condition.
      1. The each time write to MMIO content is small.
      2. The writing interval is big.
      3. No need for input or accessing other devices frequently.
      
      This issue was observed in a experimental embbed system. The test image
      simply print "test" every 1 seconds. The output in QEmu meets expectation,
      but the output in KVM is delayed for seconds.
      
      Per Avi's suggestion, I hooked flushing coalesced MMIO buffer in VGA update
      handler. By this way, We don't need vcpu explicit exit to QEmu to
      handle this issue.
      Signed-off-by: NSheng Yang <sheng@linux.intel.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      62a2744c
  17. 04 12月, 2009 1 次提交
  18. 17 11月, 2009 1 次提交
  19. 13 11月, 2009 1 次提交
  20. 02 10月, 2009 2 次提交
  21. 12 9月, 2009 1 次提交
    • B
      Fix sys-queue.h conflict for good · 72cf2d4f
      Blue Swirl 提交于
      Problem: Our file sys-queue.h is a copy of the BSD file, but there are
      some additions and it's not entirely compatible. Because of that, there have
      been conflicts with system headers on BSD systems. Some hacks have been
      introduced in the commits 15cc9235,
      f40d7537,
      96555a96 and
      3990d09a but the fixes were fragile.
      
      Solution: Avoid the conflict entirely by renaming the functions and the
      file. Revert the previous hacks.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      72cf2d4f
  22. 28 8月, 2009 1 次提交
  23. 22 7月, 2009 1 次提交
  24. 30 6月, 2009 1 次提交
    • J
      kvm: Rework VCPU synchronization · 8d2ba1fb
      Jan Kiszka 提交于
      During startup and after reset we have to synchronize user space to the
      in-kernel KVM state. Namely, we need to transfer the VCPU registers when
      they change due to VCPU as well as APIC reset.
      
      This patch refactors the required hooks so that kvm_init_vcpu registers
      its own per-VCPU reset handler and adds a cpu_synchronize_state to the
      APIC reset. That way we no longer depend on the new reset order (and can
      drop this disliked interface again) and we can even drop a KVM hook in
      main().
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      8d2ba1fb
  25. 22 5月, 2009 3 次提交
  26. 09 5月, 2009 2 次提交
  27. 01 5月, 2009 1 次提交
  28. 17 4月, 2009 1 次提交
  29. 13 3月, 2009 1 次提交
    • A
      Guest debugging support for KVM (Jan Kiszka) · e22a25c9
      aliguori 提交于
      This is a backport of the guest debugging support for the KVM
      accelerator that is now part of the KVM tree. It implements the reworked
      KVM kernel API for guest debugging (KVM_CAP_SET_GUEST_DEBUG) which is
      not yet part of any mainline kernel but will probably be 2.6.30 stuff.
      So far supported is x86, but PPC is expected to catch up soon.
      
      Core features are:
       - unlimited soft-breakpoints via code patching
       - hardware-assisted x86 breakpoints and watchpoints
      
      Changes in this version:
       - use generic hook cpu_synchronize_state to transfer registers between
         user space and kvm
       - push kvm_sw_breakpoints into KVMState
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6825 c046a42c-6fe2-441c-8c8c-71466251a162
      e22a25c9
  30. 16 12月, 2008 1 次提交
  31. 10 12月, 2008 1 次提交
    • A
      KVM: Coalesced MMIO support · f65ed4c1
      aliguori 提交于
      MMIO exits are more expensive in KVM or Xen than in QEMU because they 
      involve, at least, privilege transitions.  However, MMIO write 
      operations can be effectively batched if those writes do not have side 
      effects.
      
      Good examples of this include VGA pixel operations when in a planar 
      mode.  As it turns out, we can get a nice boost in other areas too.  
      Laurent mentioned a 9.7% performance boost in iperf with the coalesced 
      MMIO changes for the e1000 when he originally posted this work for KVM.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5961 c046a42c-6fe2-441c-8c8c-71466251a162
      f65ed4c1
  32. 05 12月, 2008 1 次提交
  33. 25 11月, 2008 1 次提交