[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH 0/7] Add multi-ring support

Adds support for multiple rings, with traffic split based on
a supplied hash value.
Backend exposes "multi-queue-max-queues" to indicate the maximum number
of queues supported (default 1, i.e. single-queue).
Frontend will write "multi-queue-num-queues" to request multi-queues,
this value must be less than or equal to the smaller of what the backend 
supports and the number of vCPUs exposed to the guest. The guest may limit 
this value with the registry setting "MultiQueueMaxQueues" under the XenVif
service parameters key.

1: Dont pass through query interface IRPs, as each interface exposed
   needs to be explicitly declared and accounted for in the revision.
2&3: Switch to an array-of-pointers instead of a LIST_ENTRY for rings.
   Rings are limited to 1 per vCPU for performance so the maximum 
   array size is known (MAXIMUM_PROCESSORS)
4: Remove the notifier object, its an abstraction too far. Make receiver
   own the shared event channel (if used) or the receiver/transmitter own 
   their own event channels
5: Update the interface header for VIF v2. Also updates the transmitter
   code to use the (now-downlevel) VIF v1 structures.
6: Add the new functionality from VIF v2. Adds translation layer for VIF v1
   so that all internal operations are using VIF v2 structures.
7: Add multi-queue functionality and distribute packets to queues based on 
   supplied hash values.

Owen Smith (7):
  Make interface exposure explicit
  Move to transmitter ring pointer array
  Move to receiver ring pointer array
  Remove notifier object
  Update to VIF Interface v2
  Implement VIF Interface v2
  Implement multiple queues

 include/vif_interface.h      |   94 +++-
 src/xenvif/driver.c          |   42 ++
 src/xenvif/driver.h          |    5 +
 src/xenvif/frontend.c        |  185 +++++--
 src/xenvif/frontend.h        |   18 +-
 src/xenvif/notifier.c        |  684 -----------------------
 src/xenvif/notifier.h        |   99 ----
 src/xenvif/pdo.c             |   24 +-
 src/xenvif/receiver.c        |  595 +++++++++++++++-----
 src/xenvif/receiver.h        |   18 +-
 src/xenvif/transmitter.c     | 1238 +++++++++++++++++++++++++++++++-----------
 src/xenvif/transmitter.h     |   26 +-
 src/xenvif/vif.c             |  146 ++++-
 src/xenvif/vif.h             |   17 +-
 vs2012/xenvif/xenvif.vcxproj |    1 -
 vs2013/xenvif/xenvif.vcxproj |    1 -
 16 files changed, 1857 insertions(+), 1336 deletions(-)
 delete mode 100644 src/xenvif/notifier.c
 delete mode 100644 src/xenvif/notifier.h


win-pv-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.