1. 23 7月, 2013 2 次提交
  2. 22 7月, 2013 2 次提交
  3. 19 7月, 2013 9 次提交
  4. 18 7月, 2013 3 次提交
  5. 16 7月, 2013 4 次提交
    • V
      vfio: QEMU-AER: Qemu changes to support AER for VFIO-PCI devices · 7b4b0e9e
      Vijay Mohan Pandarathil 提交于
      Add support for error containment when a VFIO device assigned to a KVM
      guest encounters an error. This is for PCIe devices/drivers that support AER
      functionality. When the host OS is notified of an error in a device either
      through the firmware first approach or through an interrupt handled by the AER
      root port driver, the error handler registered by the vfio-pci driver gets
      invoked. The qemu process is signaled through an eventfd registered per
      VFIO device by the qemu process. In the eventfd handler, qemu decides on
      what action to take. In this implementation, guest is brought down to
      contain the error.
      
      The kernel patches for the above functionality has been already accepted.
      
      This is a refresh of the QEMU patch which was reviewed earlier.
      http://marc.info/?l=linux-kernel&m=136281557608087&w=2
      This patch has the same contents and has been built after refreshing
      to latest upstream and after the linux headers have been updated in qemu.
      
      	- Create eventfd per vfio device assigned to a guest and register an
                event handler
      
      	- This fd is passed to the vfio_pci driver through the SET_IRQ ioctl
      
      	- When the device encounters an error, the eventfd is signalled
                and the qemu eventfd handler gets invoked.
      
      	- In the handler decide what action to take. Current action taken
                is to stop the guest.
      Signed-off-by: NVijay Mohan Pandarathil <vijaymohan.pandarathil@hp.com>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      7b4b0e9e
    • A
      vfio-pci: VGA quirk update · 39360f0b
      Alex Williamson 提交于
      Turns out all the suspicions for AMD devices were correct, everywhere
      we read a BAR address that the address matches the config space offset,
      there's full access to PCI config space.  Attempt to generalize some
      helpers to allow quirks to easily be added for mirrors and windows.
      Also fill in complete config space for AMD.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      39360f0b
    • M
      pc: don't access fw cfg if NULL · d26d9e14
      Michael S. Tsirkin 提交于
      commit f8c457b8
           "pc: pass PCI hole ranges to Guests"
      broke Xen as it has no fw_cfg.
      Check for this configuration and boil out.
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Tested-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      d26d9e14
    • A
      net: add support of mac-programming over macvtap in QEMU side · b1be4280
      Amos Kong 提交于
      Currently macvtap based macvlan device is working in promiscuous
      mode, we want to implement mac-programming over macvtap through
      Libvirt for better performance.
      
      Design:
       QEMU notifies Libvirt when rx-filter config is changed in guest,
       then Libvirt query the rx-filter information by a monitor command,
       and sync the change to macvtap device. Related rx-filter config
       of the nic contains main mac, rx-mode items and vlan table.
      
      This patch adds a QMP event to notify management of rx-filter change,
      and adds a monitor command for management to query rx-filter
      information.
      
      Test:
       If we repeatedly add/remove vlan, and change macaddr of vlan
       interfaces in guest by a loop script.
      
      Result:
       The events will flood the QMP client(management), management takes
       too much resource to process the events.
      
       Event_throttle API (set rate to 1 ms) can avoid the events to flood
       QMP client, but it could cause an unexpected delay (~1ms), guests
       guests normally expect rx-filter updates immediately.
      
       So we use a flag for each nic to avoid events flooding, the event
       is emitted once until the query command is executed. The flag
       implementation could not introduce unexpected delay.
      
      There maybe exist an uncontrollable delay if we let Libvirt do the
      real change, guests normally expect rx-filter updates immediately.
      But it's another separate issue, we can investigate it when the
      work in Libvirt side is done.
      
      Michael S. Tsirkin: tweaked to enable events on start
      Michael S. Tsirkin: fixed not to crash when no id
      Michael S. Tsirkin: fold in patch:
         "additional fixes for mac-programming feature"
      Amos Kong: always notify QMP client if mactable is changed
      Amos Kong: return NULL list if no net client supports rx-filter query
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NAmos Kong <akong@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      b1be4280
  6. 15 7月, 2013 11 次提交
  7. 14 7月, 2013 2 次提交
  8. 12 7月, 2013 7 次提交
    • A
      PPC: dbdma: Support more multi-issue DMA requests · f35ea98c
      Alexander Graf 提交于
      A DMA request can happen for data that hasn't been completely been
      provided by the IDE core yet. For example
      
        - DBDMA request for 0x1000 bytes
        - IDE request for 1 sector
        - DBDMA wants to read 0x1000 bytes (8 sectors) from bdrv
        - breakage
      
      Instead, we should truncate our bdrv request to the maximum number
      of sectors we're allowed to read at that given time. Once that transfer
      is through, we will fall into our recently introduced waiting logic.
      
        - DBDMA requests for 0x1000 bytes
        - IDE request for 1 sector
        - DBDMA wants to read MIN(0x1000, 1 * 512) bytes
        - DBDMA finishes reading, indicates to IDE core that transfer is complete
        - IDE request for 7 sectors
        - DBDMA finishes the DMA
      Reported-by: NMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      f35ea98c
    • A
      PPC: Add timer handler for newworld mac-io · a0f9fdfd
      Alexander Graf 提交于
      Mac OS X accesses fancy timer registers inside of the mac-io on bootup.
      
      These really should be ticking at the mac-io bus frequency, but I don't
      see anyone upset when we just make them as fast as we want to.
      
      With this patch on top of my previous patch queue and latest OpenBIOS
      I am able to boot Mac OS X 10.4 with -M mac99.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      a0f9fdfd
    • A
      PPC: dbdma: Support unaligned DMA access · 80fc95d8
      Alexander Graf 提交于
      The DBDMA engine really just reads bytes from a producing device (IDE
      in our case) and shoves these bytes into memory. It doesn't care whether
      any alignment takes place or not.
      
      Our code today however assumes that block accesses always happen on
      sector (512 byte) boundaries. This is a fair assumption for most cases.
      
      However, Mac OS X really likes to do unaligned, incomplete accesses
      that it finishes with the next DMA request.
      
      So we need to read / write the unaligned bits independent of the actual
      asynchronous request, because that one can only handle 512-byte-aligned
      data. We also need to cache these unaligned sectors until the next DMA
      request, at which point the data might be successfully flushed from the
      pipe.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      80fc95d8
    • A
      PPC: dbdma: Wait for DMA until we have data · cae32357
      Alexander Graf 提交于
      We should only start processing DMA requests when we have data to process.
      Hold off working through the DMA shuffling until the IDE core told us that
      it's ready.
      
      This is required because the guest can program the DMA engine or the IDE
      transfer first. Both are legal.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      cae32357
    • A
      PPC: dbdma: Move processing to io · 03ee3b1e
      Alexander Graf 提交于
      Soon we will introduce intermediate processing pauses which will
      allow the bottom half to restart a DMA request that couldn't be
      fulfilled yet.
      
      For that to work, move the processing variable into the io struct
      which is what DMA providers work with.
      
      While touching it, also change it into a bool
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      03ee3b1e
    • A
      PPC: dbdma: macio: Add DMA callback · 4aa3510f
      Alexander Graf 提交于
      We need to know when the IDE core starts a DMA transfer. Add a notifier
      function so we have the chance to start transmitting data.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      4aa3510f
    • A
      PPC: dbdma: Move static bh variable to device struct · d2f0ce21
      Alexander Graf 提交于
      The DBDMA controller has a bottom half to asynchronously process DMA
      request queues.
      
      This bh was stored as a gross static variable. Move it into the device
      struct instead.
      
      While at it, move all users of it to the new generic kick function.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      d2f0ce21