1. 09 12月, 2014 2 次提交
  2. 15 10月, 2014 3 次提交
  3. 28 4月, 2014 1 次提交
  4. 29 10月, 2013 2 次提交
  5. 10 7月, 2013 1 次提交
  6. 20 5月, 2013 1 次提交
  7. 22 3月, 2013 1 次提交
  8. 20 3月, 2013 3 次提交
    • R
      virtio_ring: virtqueue_add_outbuf / virtqueue_add_inbuf. · 282edb36
      Rusty Russell 提交于
      These are specialized versions of virtqueue_add_buf(), which cover
      over 80% of cases and are far clearer.
      
      In particular, the scatterlists passed to these functions don't have
      to be clean (ie. we ignore end markers).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      282edb36
    • R
      virtio_ring: virtqueue_add_sgs, to add multiple sgs. · 13816c76
      Rusty Russell 提交于
      virtio_scsi can really use this, to avoid the current hack of copying
      the whole sg array.  Some other things get slightly neater, too.
      
      This causes a slowdown in virtqueue_add_buf(), which is implemented as
      a wrapper.  This is addressed in the next patches.
      
      for i in `seq 50`; do /usr/bin/time -f 'Wall time:%e' ./vringh_test --indirect --eventidx --parallel --fast-vringh; done 2>&1 | stats --trim-outliers:
      
      Before:
      	Using CPUS 0 and 3
      	Guest: notified 0, pinged 39009-39063(39062)
      	Host: notified 39009-39063(39062), pinged 0
      	Wall time:1.700000-1.950000(1.723542)
      
      After:
      	Using CPUS 0 and 3
      	Guest: notified 0, pinged 39062-39063(39063)
      	Host: notified 39062-39063(39063), pinged 0
      	Wall time:1.760000-2.220000(1.789167)
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Reviewed-by: NWanlong Gao <gaowanlong@cn.fujitsu.com>
      Reviewed-by: NAsias He <asias@redhat.com>
      13816c76
    • S
      virtio: Introduce vringh wrappers in virtio_config · 3beee86a
      Sjur Brændeland 提交于
      Add wrappers for the host vrings to support loose
      coupling between the virtio device and driver.
      
      A new struct vringh_config_ops with the functions
      find_vrhs() and del_vrhs() is added to the virtio_device
      struct. This enables virtio drivers to manage virtio
      host rings without detailed knowledge of how the
      vrings are created and deleted.
      
      The function vringh_notify() is added so vringh clients
      can notify the other side that buffers are added to the
      used-ring.
      
      Cc: Ohad Ben-Cohen <ohad@wizery.com>
      Signed-off-by: NSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (constified vringh_config)
      3beee86a
  9. 13 2月, 2013 1 次提交
  10. 11 2月, 2013 1 次提交
  11. 18 12月, 2012 3 次提交
  12. 28 9月, 2012 1 次提交
  13. 20 7月, 2012 1 次提交
  14. 31 3月, 2012 1 次提交
  15. 12 1月, 2012 4 次提交
  16. 02 11月, 2011 1 次提交
  17. 24 10月, 2011 1 次提交
  18. 30 5月, 2011 1 次提交
    • M
      virtio: add api for delayed callbacks · 7ab358c2
      Michael S. Tsirkin 提交于
      Add an API that tells the other side that callbacks
      should be delayed until a lot of work has been done.
      Implement using the new event_idx feature.
      
      Note: it might seem advantageous to let the drivers
      ask for a callback after a specific capacity has
      been reached. However, as a single head can
      free many entries in the descriptor table,
      we don't really have a clue about capacity
      until get_buf is called. The API is the simplest
      to implement at the moment, we'll see what kind of
      hints drivers can pass when there's more than one
      user of the feature.
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      7ab358c2
  19. 19 5月, 2010 3 次提交
  20. 13 3月, 2010 1 次提交
  21. 24 2月, 2010 1 次提交
  22. 03 2月, 2010 1 次提交
  23. 23 9月, 2009 1 次提交
  24. 12 6月, 2009 2 次提交
  25. 02 5月, 2008 1 次提交
    • R
      virtio: explicit advertisement of driver features · c45a6816
      Rusty Russell 提交于
      A recent proposed feature addition to the virtio block driver revealed
      some flaws in the API: in particular, we assume that feature
      negotiation is complete once a driver's probe function returns.
      
      There is nothing in the API to require this, however, and even I
      didn't notice when it was violated.
      
      So instead, we require the driver to specify what features it supports
      in a table, we can then move the feature negotiation into the virtio
      core.  The intersection of device and driver features are presented in
      a new 'features' bitmap in the struct virtio_device.
      
      Note that this highlights the difference between Linux unsigned-long
      bitmaps where each unsigned long is in native endian, and a
      straight-forward little-endian array of bytes.
      
      Drivers can still remove feature bits in their probe routine if they
      really have to.
      
      API changes:
      - dev->config->feature() no longer gets and acks a feature.
      - drivers should advertise their features in the 'feature_table' field
      - use virtio_has_feature() for extra sanity when checking feature bits
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      c45a6816
  26. 08 4月, 2008 1 次提交
    • R
      virtio: remove overzealous BUG_ON. · 2557a933
      Rusty Russell 提交于
      The 'disable_cb' callback is designed as an optimization to tell the host
      we don't need callbacks now.  As it is not reliable, the debug check is
      overzealous: it can happen on two CPUs at the same time.  Document this.
      
      Even if it were reliable, the virtio_net driver doesn't disable
      callbacks on transmit so the START_USE/END_USE debugging reentrance
      protection can be easily tripped even on UP.
      
      Thanks to Balaji Rao for the bug report and testing.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      CC: Balaji Rao <balajirrao@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2557a933