The series builds on the original series by Matt Wilson and Christoph Egger from Amazon.
Performance results for aggregate intrahost network throughput (between 20 VM pairs, with 16 dom0 VCPUs) show substantial improvements. Throughput/Gbit/s Base 9.7 Split locks 25.8 Split locks 42.9 + per-VCPU maptrack lists v10: * Reduce scope of act in grant_map_exists(). * Make unlock sequence in error paths consistent in __acquire_grant_for_copy(). * gnt_unlock_out -> to gt_unlock_out in __acquire_grant_for_copy(). * In gnttab_map_grant_ref(), keep double lock around maptrack update if gnttab_need_iommu_mapping(). Use a wmb(), otherwise. * Divide max_maptrack_frames evenly amongst the VCPUs. * Increase default max_maptrack_frames to compensate. v9: * Refactor the locking patches into three commits: 1. Add per-active entry locking. 2. Add maptrack_lock. 3. Make the grant table lock a read-write lock. * Keep the double lock around IOMMU updates, but adjust their scope to only the IOMMU updates. v8: * Misc locking fixes. * Use read/write_atomic() in per-VCPU maptrack free list. * Improve locking docs. v7: * Re-add grant table rwlock (locking was broken without it and the gains are minimal anyway). * Remove unneeded locks from grant_table_destroy(). * Fix get_maptrack_handle() locking. v6: * Remove most uses of the grant table lock. * Make the grant table lock a spin lock again (there were only writers left after the above) * Add per-VCPU maptrack free lists. v5: * Addressed locking issue pointed out by Jan Beulich * Fixed git rebase merge issue introduced in v4 (acquiring locking twice) * Change for ()-loop in grant_map_exists * Coding style fixes v4: * Coding style nits from Jan Beulich * Fixup read locks pointed out by Jan Beulich * renamed double_gt_(un)lock to double_maptrack_(un)lock per request from Jan Beulich * Addressed ASSERT()'s from Jan Beulich * Addressed locking issues in unmap_common pointed out by Jan Beulich v3: * Addressed gnttab_swap_grant_ref() comment from Andrew Cooper v2: * Add arm part per request from Julien Grall David _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel