[ovs-dev] [PATCH v10 0/5] Output packet batching (Time-based).
Jan Scheurich
jan.scheurich at ericsson.com
Fri Jan 12 15:47:12 UTC 2018
Hi Ilya,
I have applied your series cleanly on "[PATCH v9 0/2] Refactor PMD stats and cycle counting" and am testing this successfully on my node. So far the behavior is fully as expected and subjectively identical to the earlier versions I tested.
When running iperf UDP tests between VMs on different compute nodes I observe that the reported output packet batch size scales from 1 to 32 both with the offered load (packet rate) as well as the configured tx-flush-interval. The ping round-trip times are in line with the expectations from the configured tx-flush-interval.
I will have a look at the individual patches and ack them.
Regards, Jan
> -----Original Message-----
> From: Ilya Maximets [mailto:i.maximets at samsung.com]
> Sent: Friday, 12 January, 2018 12:17
> To: ovs-dev at openvswitch.org
> Cc: Heetae Ahn <heetae82.ahn at samsung.com>; Bhanuprakash Bodireddy <bhanuprakash.bodireddy at intel.com>; Antonio Fischetti
> <antonio.fischetti at intel.com>; Eelco Chaudron <echaudro at redhat.com>; Ciara Loftus <ciara.loftus at intel.com>; Kevin Traynor
> <ktraynor at redhat.com>; Jan Scheurich <jan.scheurich at ericsson.com>; Billy O'Mahony <billy.o.mahony at intel.com>; Ian Stokes
> <ian.stokes at intel.com>; Ilya Maximets <i.maximets at samsung.com>
> Subject: [PATCH v10 0/5] Output packet batching (Time-based).
>
> 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.
>
> [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
>
> The most of the series already in merge tree and not included in v9 and later
> versions.
>
> Testing of 'PVP with OVS bonding on phy ports' scenario shows significant
> performance improvement up to +25% (v9 has no performance difference with v6 here):
>
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341700.html
>
> Other testing results for v6:
>
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341605.html
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341628.html
>
>
> Version 10:
> * Rebased on top of '[PATCH v8 0/2] Refactor PMD stats and cycle counting':
> https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343008.html
> * Per-rxq cycles accounting changed to use new nested counters.
>
> Version 9:
> * Made on top of current DPDK_MERGE tree (cc4891f).
> * Patches 1-4,6 from v8 dropped as already included in DPDK_MERGE.
> * "Time based ..." patch updated with per-rxq cycles counting from
> the following incremental:
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/342255.html
> and splitted into 3 logically separate parts for easier review purposes:
> 1. Microsecond granularity for dpif-netdev.
> 2. Cycles accounting changes.
> 3. Time based batching itself.
> There was no code changes in comparing with v8 + Incremental, only re-split.
> * Output batching mentioned in NEWS.
> * Documentation patch included in this series.
>
> Version 8:
> * Minor rebase on top of current master.
>
> Version 7:
> * Rebased on current istokes/dpdk_merge (3eb8d4f)
> * Dropped dp_netdev_pmd_thread structure refactoring patch.
> Not needed since revert applied.
>
> Version 6:
> * Rebased on current master:
> - Added new patch to refactor dp_netdev_pmd_thread structure
> according to following suggestion:
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-November/341230.html
>
> NOTE: I still prefer reverting of the padding related patch.
> Rebase done to not block acepting of this series.
> Revert patch and discussion here:
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-November/341153.html
>
> * Added comment about pmd_thread_ctx_time_update() usage.
>
> Version 5:
> * pmd_thread_ctx_time_update() calls moved to different places to
> call them only from dp_netdev_process_rxq_port() and main
> polling functions:
> pmd_thread_main, dpif_netdev_run and dpif_netdev_execute.
> All other functions should use cached time from pmd->ctx.now.
> It's guaranteed to be updated at least once per polling cycle.
> * 'may_steal' patch returned to version from v3 because
> 'may_steal' in qos is a completely different variable. This
> patch only removes 'may_steal' from netdev API.
> * 2 more usec functions added to timeval to have complete public API.
> * Checking of 'output_cnt' turned to assertion.
>
> 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 (5):
> dpif-netdev: Use microsecond granularity.
> dpif-netdev: Count cycles on per-rxq basis.
> dpif-netdev: Time based output batching.
> docs: Describe output packet batching in DPDK guide.
> NEWS: Mark output packet batching support.
>
> Documentation/intro/install/dpdk.rst | 58 +++++++++++++
> NEWS | 2 +
> lib/dpif-netdev.c | 164 +++++++++++++++++++++++++++--------
> vswitchd/vswitch.xml | 16 ++++
> 4 files changed, 204 insertions(+), 36 deletions(-)
>
> --
> 2.7.4
More information about the dev
mailing list