[ovs-dev] [PATCH v4 0/7] Output packet batching.

Ilya Maximets i.maximets at samsung.com
Thu Oct 5 15:05:55 UTC 2017


This patch-set inspired by [1] from Bhanuprakash Bodireddy.
Implementation of [1] looks very complex and introduces many pitfalls [2]
for later code modifications like possible packet stucks.

This version targeted to make simple and flexible output packet batching on
higher level without introducing and even simplifying netdev layer.

Basic testing of 'PVP with OVS bonding on phy ports' scenario shows
significant performance improvement.

Test results for time-based batching for v3:
https://mail.openvswitch.org/pipermail/ovs-dev/2017-September/338247.html

[1] [PATCH v4 0/5] netdev-dpdk: Use intermediate queue during packet transmission.
    https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337019.html

[2] For example:
    https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337133.html

Version 4:
	* Rebased on current master.
	* Rebased on top of "Keep latest measured time for PMD thread."
	  (Jan Scheurich)
	* Microsecond resolution related patches integrated.
	* Time-based batching without RFC tag.
	* 'output_time' renamed to 'flush_time'. (Jan Scheurich)
	* 'flush_time' update moved to 'dp_netdev_pmd_flush_output_on_port'.
	  (Jan Scheurich)
	* 'output-max-latency' renamed to 'tx-flush-interval'.
	* Added patch for output batching statistics.

Version 3:

	* Rebased on current master.
	* Time based RFC: fixed assert on n_output_batches <= 0.

Version 2:

	* Rebased on current master.
	* Added time based batching RFC patch.
	* Fixed mixing packets with different sources in same batch.


Ilya Maximets (7):
  dpif-netdev: Keep latest measured time for PMD thread.
  dpif-netdev: Output packet batching.
  netdev: Remove unused may_steal.
  netdev: Remove useless cutlen.
  timeval: Introduce time_usec().
  dpif-netdev: Time based output batching.
  dpif-netdev: Count sent packets and batches.

 lib/dpif-netdev.c     | 334 +++++++++++++++++++++++++++++++++++++-------------
 lib/netdev-bsd.c      |   6 +-
 lib/netdev-dpdk.c     |  70 ++++-------
 lib/netdev-dummy.c    |   6 +-
 lib/netdev-linux.c    |   8 +-
 lib/netdev-provider.h |   7 +-
 lib/netdev.c          |  12 +-
 lib/netdev.h          |   2 +-
 lib/timeval.c         |  22 ++++
 lib/timeval.h         |   2 +
 vswitchd/vswitch.xml  |  16 +++
 11 files changed, 336 insertions(+), 149 deletions(-)

-- 
2.7.4



More information about the dev mailing list