• There may be cases where the guest does not want the avail queue
    interrupt, even when it's empty.  For the virtio-net case, the
    guest may use a different buffering scheme or decide polling for
    used buffers is more efficient.  This can be accomplished by simply
    checking for whether the guest has acknowledged the existing notify
    on empty flag.
    
    Signed-off-by: Alex Williamson <alex.williamson@hp.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6865 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Dir »
  • The RXDMT0 interrupt is supposed to fire when the number of free
    RX descriptors drops to some fraction of the total descriptors.
    However in practice, it seems like we're adding this interrupt
    cause on every RX.  Fix the logic to treat (tail - head) as the
    number of free entries rather than the number of used entries.
    
    Signed-off-by: Alex Williamson <alex.williamson@hp.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6864 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • According to the Intel specs, lsl performs a check against NULL for the
    provided selector, just like lar does. helper_lar() includes the
    corresponding code, helper_lsl() was lacking it so far.
    
    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@6863 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Dir »
  • This patch makes the vnc server code skip screen refreshes in case
    there is data in the output buffer.  This reduces the refresh rate to
    throttle the bandwidth needed in case the network link is saturated.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6862 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • 
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6861 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • This patch killes the old_data hack in the qemu server and replaces
    it with a clean separation of the guest-visible display surface and
    the vnc server display surface.  Both guest and server surface have
    their own dirty bitmap for tracking screen updates.
    
    Workflow is this:
    
    (1) The guest writes to the guest surface.  With shared buffers being
        active the guest writes are directly visible to the vnc server code.
        Note that this may happen in parallel to the vnc server code running
        (today only in xenfb, once we have vcpu threads in qemu also for
        other display adapters).
    
    (2) vnc_update() callback tags the specified area in the guest dirty
        map.
    
    (3) vnc_update_client() will first walk through the guest dirty map.  It
        will compare guest and server surface for all regions tagged dirty
        and in case the screen content really did change the server surface
        and dirty map are updated.
        Note: old code used old_data in a simliar way, so this does *not*
        introduce an extra memcpy.
    
    (4) Then vnc_update_cient() will send the updates to the vnc client
        using the server surface and dirty map.
        Note: old code used the guest-visible surface instead, causing
        screen corruption in case of guest screen updates running in
        parallel.
    
    The separate dirty bitmap also has the nice effect that forced screen
    updates can be done cleanly by simply tagging the area in both guest and
    server dirty map.  The old, hackish way was memset(old_data, 42, size)
    to trick the code checking for screen changes.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6860 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »





  • From: Xiantao Zhang <xiantao.zhang@intel.com>
    Date: Tue, 3 Mar 2009 13:33:13 +0800
    Subject: [PATCH] Split ioapic logic from the current apic.
    
    Add a new ioapic.c to hold ioapic's logic, and also
    make it work for ia64.
    
    Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
    ---
     Makefile.target |    2 +-
     hw/apic.c       |  237 +++----------------------------------------------
     hw/ioapic.c     |  263 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
     hw/pc.h         |    5 +-
     4 files changed, 281 insertions(+), 226 deletions(-)
     create mode 100644 hw/ioapic.c
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6827 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Ported from the KVM tree: Synchronize the qemu cpu state with kvm's
    before invoking various monitor info commands (like 'info registers').
    
    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@6826 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori 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 Code »
  • Now that scsi generic no longer uses bdrv_pread() and bdrv_pwrite(), we can
    drop the corresponding internal APIs, which overlap bdrv_read()/bdrv_write()
    and, being byte oriented, are unnatural for a block device.
    
    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@6824 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Dir »
  • Add an internal API for the generic block layer to send scsi generic commands
    to block format driver.  This means block format drivers no longer need
    to consider overloaded nb_sectors parameters.
    
    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@6823 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse File »
  • When a scsi device is backed by a scsi generic device instead of an
    ordinary host block device, the block API is abused in a couple of annoying
    ways:
    
     - nb_sectors is negative, and specifies a byte count instead of a sector count
     - offset is ignored, since scsi-generic is essentially a packet protocol
    
    This overloading makes hacking the block layer difficult.  Remove it by
    introducing a new explicit API for scsi-generic devices.  The new API
    is still backed by the old implementation, but at least the users are
    insulated.
    
    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@6822 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »