• The target memory mapping API may fail if the bounce buffer resources
    are exhausted.  Add a notification mechanism to allow clients to retry
    the mapping operation when resources become available again.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6395 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Devices accessing large amounts of memory (as with DMA) will wish to obtain
    a pointer to guest memory rather than access it indirectly via
    cpu_physical_memory_rw().  Add a new API to convert target addresses to
    host pointers.
    
    In case the target address does not correspond to RAM, a bounce buffer is
    allocated.  To prevent the guest from causing the host to allocate unbounded
    amounts of bounce buffer, this memory is limited (currently to one page).
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6394 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »




  • 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: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5961 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse File »

  • Paul's comment on my first approach to fix the h2g usage in
    page_find_alloc finally open my eyes about what the code is actually
    supposed to do:
    
    With the help of h2g_valid we can no cleanly check if a freshly allocate
    page (for host usage) is guest-reachable and, in case it is, mark it
    reserved in the guest's address range.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
    Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
    Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5957 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »




  • Hypervisors like KVM perform badly while doing mmio on
    a loop, because it'll generate an exit on each access.
    This is the case with VGA, which results in very bad
    performance.
    
    In this patch, we map the linear frame buffer as RAM,
    make sure it has dirty region tracking enabled, and then
    just let the region to be written.
    
    Cleanups suggestions by:
      Stefano Stabellini <stefano.stabellini@eu.citrix.com>
    
    Signed-off-by: Glauber Costa <glommer@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5793 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »




  • This patch adds very basic KVM support.  KVM is a kernel module for Linux that
    allows userspace programs to make use of hardware virtualization support.  It
    current supports x86 hardware virtualization using Intel VT-x or AMD-V.  It
    also supports IA64 VT-i, PPC 440, and S390.
    
    This patch only implements the bare minimum support to get a guest booting.  It
    has very little impact the rest of QEMU and attempts to integrate nicely with
    the rest of QEMU.
    
    Even though this implementation is basic, it is significantly faster than TCG.
    Booting and shutting down a Linux guest:
    
    w/TCG:  1:32.36 elapsed  84% CPU
    
    w/KVM:  0:31.14 elapsed  59% CPU
    
    Right now, KVM is disabled by default and must be explicitly enabled with
     -enable-kvm.  We can enable it by default later when we have had better
    testing.
    
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5627 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse File »