[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. Patches: 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 -- 1.9.4.msysgit.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |