1. 09 7月, 2013 1 次提交
  2. 20 3月, 2013 1 次提交
  3. 13 10月, 2012 1 次提交
  4. 28 9月, 2012 1 次提交
  5. 12 1月, 2012 1 次提交
    • R
      virtio: harsher barriers for rpmsg. · 7b21e34f
      Rusty Russell 提交于
      We were cheating with our barriers; using the smp ones rather than the
      real device ones.  That was fine, until rpmsg came along, which is
      used to talk to a real device (a non-SMP CPU).
      
      Unfortunately, just putting back the real barriers (reverting
      d57ed95d) causes a performance regression on virtio-pci.  In
      particular, Amos reports netbench's TCP_RR over virtio_net CPU
      utilization increased up to 35% while throughput went down by up to
      14%.
      
      By comparison, this branch is in the noise.
      
      Reference: https://lkml.org/lkml/2011/12/11/22Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      7b21e34f
  6. 02 11月, 2011 1 次提交
  7. 30 5月, 2011 3 次提交
  8. 30 7月, 2009 1 次提交
  9. 12 6月, 2009 2 次提交
  10. 30 12月, 2008 2 次提交
  11. 25 7月, 2008 1 次提交
  12. 04 2月, 2008 3 次提交
  13. 12 11月, 2007 2 次提交
    • R
      virtio: Force use of power-of-two for descriptor ring sizes · 42b36cc0
      Rusty Russell 提交于
      The virtio descriptor rings of size N-1 were nicely set up to be
      aligned to an N-byte boundary.  But as Anthony Liguori points out, the
      free-running indices used by virtio require that the sizes be a power
      of 2, otherwise we get problems on wrap (demonstrated with lguest).
      
      So we replace the clever "2^n-1" scheme with a simple "align to page
      boundary" scheme: this means that all virtio rings take at least two
      pages, but it's safer than guessing cache alignment.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      42b36cc0
    • A
      virtio: fix vring_init for 64 bits · 44332f71
      Anthony Liguori 提交于
      This patch fixes a typo in vring_init().  This happens to work today in lguest
      because the sizeof(struct vring_desc) is 16 and struct vring contains 3
      pointers and an unsigned int so on 32-bit
      sizeof(struct vring_desc) == sizeof(struct vring).  However, this is no longer
      true on 64-bit where the bug is exposed.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      44332f71
  14. 23 10月, 2007 1 次提交
    • R
      Virtio helper routines for a descriptor ringbuffer implementation · 0a8a69dd
      Rusty Russell 提交于
      These helper routines supply most of the virtqueue_ops for hypervisors
      which want to use a ring for virtio.  Unlike the previous lguest
      implementation:
      
      1) The rings are variable sized (2^n-1 elements).
      2) They have an unfortunate limit of 65535 bytes per sg element.
      3) The page numbers are always 64 bit (PAE anyone?)
      4) They no longer place used[] on a separate page, just a separate
         cacheline.
      5) We do a modulo on a variable.  We could be tricky if we cared.
      6) Interrupts and notifies are suppressed using flags within the rings.
      
      Users need only get the ring pages and provide a notify hook (KVM
      wants the guest to allocate the rings, lguest does it sanely).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Dor Laor <dor.laor@qumranet.com>
      0a8a69dd