Hi Ilya,
Sorry for the late response, as I was rather busy and did not find time
to look
at your revisions 1 till 3. Hopefully, I can make it up looking at v4...
I did some tests in-line with the earlier tests I did with Bhanu's patch
series.
Here is a comparison for a simple PVP test using a single physical port
with 64
bytes packets (wire speed 10G), single PMD thread:
#Flows master patched
====== ========= =========
10 3,123,350 4,174,807 pps
32 2,090,440 3,625,314 pps
50 1,954,184 3,499,402 pps
100 1,705,794 3,264,955 pps
500 1,601,252 2,956,190 pps
1000 1,568,175 2,712,385 pps
In addition, I did some latency statistics based on a PVP setup with two
physical ports, and one virtual port, and two OpenFlow rules:
ovs-ofctl add-flow br0 "in_port=dpdk0,action=vhost0"
ovs-ofctl add-flow br0 "in_port=vhost0,action=dpdk1"
Also, note that there is some deviation on latency numbers, so I did 4
runs and
reported the min-max values.
First the master results:
Summary (flows = 30, 10G line rate = 95%, runtime = 60 seconds):
Pkt size min(ns) avg(ns) max(ns)
-------- ------------- --------------- -----------------
512 7,437 - 7,469 11,416 - 13,770 99,395 - 112,296
1024 7,197 - 7,221 11,277 - 12,379 42,876 - 47,230
1280 7,373 - 7,549 10,647 - 12,528 37,240 - 42,235
1518 8,046 - 8,135 11,808 - 12,931 36,534 - 46,388
And the patched results:
Pkt size min(ns) avg(ns) max(ns)
-------- ------------- --------------- -----------------
512 7,605 - 7,662 11,711 - 14,053 56,603 - 121,059
1024 7,285 - 7,317 11,291 - 12,695 44,753 - 69,624
1280 7,605 - 7,702 10,842 - 12,685 37,047 - 45,747
1518 8,111 - 8,159 11,434 - 13,045 38,587 - 41,754
As you can see above for the default configuration there is a minimal
latency
increase. I assume you did some latency tests yourself, and I hope these
numbers match your findings...
I do have some small comments on your patchsets but will address them
replying
to the individual emails.
Cheers,
Eelco
On 05/10/17 17:05, Ilya Maximets wrote:
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(-)
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev