> 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.
> 

Thanks for the rebase of this series Ilya, we identified this feature as a 
priority for the 2.9 release so I'll begin review/validation of this next week.

Thanks
Ian

> Test results for time-based batching for v3:
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-September/338247.html
> 
> Test results for v4:
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-October/339624.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 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 (7):
>   dpif-netdev: Refactor PMD thread structure for further extension.
>   dpif-netdev: Keep latest measured time for PMD thread.
>   dpif-netdev: Output packet batching.
>   netdev: Remove unused may_steal.
>   netdev: Remove useless cutlen.
>   dpif-netdev: Time based output batching.
>   dpif-netdev: Count sent packets and batches.
> 
>  lib/dpif-netdev.c     | 412 +++++++++++++++++++++++++++++++++++++--------
> -----
>  lib/netdev-bsd.c      |   6 +-
>  lib/netdev-dpdk.c     |  30 ++--
>  lib/netdev-dummy.c    |   6 +-
>  lib/netdev-linux.c    |   8 +-
>  lib/netdev-provider.h |   7 +-
>  lib/netdev.c          |  12 +-
>  lib/netdev.h          |   2 +-
>  vswitchd/vswitch.xml  |  16 ++
>  9 files changed, 349 insertions(+), 150 deletions(-)
> 
> --
> 2.7.4

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to