• This patch fixes several typos in comments in exec.c:
    
                longet -> longer
           recommanded -> recommended
            ajustments -> adjustments
       inconsistancies -> inconsistencies
               phsical -> physical
           positionned -> positioned
           succesfully -> successfully
          regon_offset -> region_offset
    
    and also:
    
          start_region -> start_addr
    
    Signed-off-by: Stuart Brady <stuart.brady@gmail.com>
    Stuart Brady authored
     
    Browse Code »

  • Avi Kivity wrote:
    > Suggest wrapping in a function and hiding it deep inside kvm-all.c.
    >
    
    Done in v2:
    
    ---------->
    
    If the KVM MMU is asynchronous (kernel does not support MMU_NOTIFIER),
    we have to avoid COW for the guest memory. Otherwise we risk serious
    breakage when guest pages change there physical locations due to COW
    after fork. Seen when forking smbd during runtime via -smb.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Jan Kiszka authored
     
    Browse Code »











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


  • env->interrupt_request is accessed as the bit level from both main code
    and signal handler, making a race condition possible even on CISC CPU.
    This causes freeze of QEMU under high load when running the dyntick
    clock.
    
    The patch below move the bit corresponding to CPU_INTERRUPT_EXIT in a
    separate variable, declared as volatile sig_atomic_t, so it should be
    work even on RISC CPU.
    
    We may want to move the cpu_interrupt(env, CPU_INTERRUPT_EXIT) case in
    its own function and get rid of CPU_INTERRUPT_EXIT. That can be done
    later, I wanted to keep the patch short for easier review.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6728 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »


  • KVM uses cpu_physical_memory_rw() to access the I/O devices. When a
    read or write with a length of 8-byte is requested, it is split into 2
    4-byte accesses.
    
    This has been broken in revision 5849. After this revision, only the
    first 4 bytes are actually read/write to the device, as the target
    address is changed, so on the next iteration of the loop the next 4
    bytes are actually read/written elsewhere (in the RAM for the graphic
    card).
    
    This patch fixes screen corruption (and most probably data corruption)
    with FreeBSD/amd64. Bug #2556746 in KVM bugzilla.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6628 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »




  • 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 »