1. 23 7月, 2013 4 次提交
  2. 22 7月, 2013 1 次提交
  3. 19 7月, 2013 8 次提交
  4. 16 7月, 2013 2 次提交
    • M
      virtio-net: add feature bit for any header s/g · 488f069b
      Michael S. Tsirkin 提交于
      Old qemu versions required that 1st s/g entry is the header.
      
      Since QEMU 1.5, patchset titled "virtio-net: iovec handling cleanup"
      removed this limitation but a feature bit is needed so guests know it's
      safe to lay out header differently.
      
      This patch applies on top and adds such a feature bit to QEMU.
      It is set by default for virtio-net.
      virtio net header inline with the data is beneficial
      for latency and small packet bandwidth - guest driver
      code utilizing this feature has been acked but missed 3.11
      by a narrow margin, it's pending for 3.12.
      
      This feature bit is cleared by default when compatibility with old
      machine types is requested.
      
      Other performance-sensitive devices (blk and scsi)
      don't yet support arbitrary s/g layouts, so
      we only set this bit for virtio-net for now.
      There are plans to allow arbitrary layouts there, but
      no code has been posted yet.
      
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      488f069b
    • 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
  5. 15 7月, 2013 3 次提交
  6. 13 7月, 2013 2 次提交
  7. 12 7月, 2013 5 次提交
    • 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: 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: 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
    • A
      PPC: dbdma: Introduce kick function · d1e562de
      Alexander Graf 提交于
      The DBDMA engine really is running all the time, waiting for input. However
      we don't want to waste cycles constantly polling.
      
      So introduce a kick function that data providers can call to notify the
      DBDMA controller of new input.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      d1e562de
    • A
      PPC: dbdma: Move defines into header file · f2f963fd
      Alexander Graf 提交于
      We usually keep struct and constant definitions in header files. Move
      them there to stay consistent and to make access to fields easier.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      f2f963fd
  8. 11 7月, 2013 1 次提交
    • S
      add timestamp to error_report() · 5e2ac519
      Seiji Aguchi 提交于
      [Issue]
      When we offer a customer support service and a problem happens
      in a customer's system, we try to understand the problem by
      comparing what the customer reports with message logs of the
      customer's system.
      
      In this case, we often need to know when the problem happens.
      
      But, currently, there is no timestamp in qemu's error messages.
      Therefore, we may not be able to understand the problem based on
      error messages.
      
      [Solution]
      Add a timestamp to qemu's error message logged by
      error_report() with g_time_val_to_iso8601().
      Signed-off-by: NSeiji Aguchi <seiji.aguchi@hds.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      5e2ac519
  9. 10 7月, 2013 11 次提交
  10. 08 7月, 2013 3 次提交