Hello Jan.

I have a question: Have you tested the performance difference between
netdev_rxq_length() and rxq_recv() parameter approaches to get the rx queue 
size?

Best regards, Ilya Maximets.

On 13.02.2018 19:03, Jan Scheurich wrote:
> Gentle reminder to review this series which unfortunately missed the 2.9 
> deadline.
> 
> I checked and the patches still apply on today's master.
> So far I have received one comment from Billy
> https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343808.html
> 
> Thanks, Jan
> 
>> -----Original Message-----
>> From: Jan Scheurich
>> Sent: Friday, 26 January, 2018 13:20
>> To: [email protected]
>> Cc: [email protected]; [email protected]; [email protected]; 
>> [email protected]; Jan Scheurich
>> <[email protected]>
>> Subject: [PATCH v8 0/3] dpif-netdev: Detailed PMD performance metrics and 
>> supervision
>>
>> The run-time performance of PMDs is often difficult to understand and
>> trouble-shoot. The existing PMD statistics counters only provide a coarse
>> grained average picture. At packet rates of several Mpps sporadic drops of
>> packet bursts happen at sub-millisecond time scales and are impossible to
>> capture and analyze with existing tools.
>>
>> This patch collects a large number of important PMD performance metrics
>> per PMD iteration, maintaining histograms and circular histories for
>> iteration metrics and millisecond averages. To capture sporadic drop
>> events, the patch set can be configured to monitor iterations for suspicious
>> metrics and to log the neighborhood of such iterations for off-line analysis.
>>
>> The extra cost for the performance metric collection and the supervision has
>> been measured to be in the order of 1% compared to the base commit in a PVP
>> setup with L3 pipeline over VXLAN tunnels. For that reason the metrics
>> collection is disabled by default and can be enabled at run-time through
>> configuration.
>>
>> v7 -> v8:
>> * Rebased on to master (commit 4e99b70df)
>> * Implemented comments from Ilya Maximets and Billy O'Mahony.
>> * Replaced netdev_rxq_length() introduced in v7 by optional out
>>   parameter for the remaining rx queue len in netdev_rxq_recv().
>> * Fixed thread synchronization issues in clearing PMD stats:
>>   - Use mutex to control whether to clear from main thread directly
>>     or in PMD at start of next iteration.
>>   - Use mutex to prevent concurrent clearing and printing of metrics.
>> * Added tx packet and batch stats to pmd-perf-show output.
>> * Delay warning for suspicious iteration to the iteration in which
>>   we also log the neighborhood to not pollute the logged iteration
>>   stats with logging costs.
>> * Corrected the exact number of iterations logged before and after a
>>   supicious iteration.
>> * Introduced options -e and -ne in pmd-perf-log-set to control whether
>>   to *extend* the range of logged iterations when additional supicious
>>   iterations are detected before the scheduled end of logging interval
>>   is reached.
>> * Exclude logging cycles from the iteration stats to avoid confusing
>>   ghost peaks.
>> * Performance impact compared to master less than 1% even with
>>   supervision enabled.
>>
>> v5 -> v7:
>> * Rebased on to dpdk_merge (commit e666668)
>>   - New base contains earlier refactoring parts of series.
>> * Implemented comments from Ilya Maximets and Billy O'Mahony.
>> * Replaced piggybacking qlen on dp_packet_batch with a new netdev API
>>   netdev_rxq_length().
>> * Thread-safe clearing of pmd counters in pmd_perf_start_iteration().
>> * Fixed bug in reporting datapath stats.
>> * Work-around a bug in DPDK rte_vhost_rx_queue_count() which sometimes
>>   returns bogus in the upper 16 bits of the uint32_t return value.
>>
>> v4 -> v5:
>> * Rebased to master (commit e9de6c0)
>> * Implemented comments from Aaron Conole and Darrel Ball
>>
>> v3 -> v4:
>> * Rebased to master (commit 4d0a31b)
>>   - Reverting changes to struct dp_netdev_pmd_thread.
>> * Make metrics collection configurable.
>> * Several bugfixes.
>>
>> v2 -> v3:
>> * Rebased to OVS master (commit 3728b3b).
>> * Non-trivial adaptation to struct dp_netdev_pmd_thread.
>>   - refactored in commit a807c157 (Bhanu).
>> * No other changes compared to v2.
>>
>> v1 -> v2:
>> * Rebased to OVS master (commit 7468ec788).
>> * No other changes compared to v1.
>>
>>
>> Jan Scheurich (3):
>>   netdev: Add optional qfill output parameter to rxq_recv()
>>   dpif-netdev: Detailed performance stats for PMDs
>>   dpif-netdev: Detection and logging of suspicious PMD iterations
>>
>>  NEWS                        |   5 +
>>  lib/automake.mk             |   1 +
>>  lib/dpif-netdev-perf.c      | 551 
>> +++++++++++++++++++++++++++++++++++++++++++-
>>  lib/dpif-netdev-perf.h      | 300 +++++++++++++++++++++++-
>>  lib/dpif-netdev-unixctl.man | 216 +++++++++++++++++
>>  lib/dpif-netdev.c           | 187 ++++++++++++++-
>>  lib/netdev-bsd.c            |   8 +-
>>  lib/netdev-dpdk.c           |  25 +-
>>  lib/netdev-dummy.c          |   8 +-
>>  lib/netdev-linux.c          |   7 +-
>>  lib/netdev-provider.h       |   7 +-
>>  lib/netdev.c                |   5 +-
>>  lib/netdev.h                |   3 +-
>>  manpages.mk                 |   2 +
>>  vswitchd/ovs-vswitchd.8.in  |  27 +--
>>  vswitchd/vswitch.xml        |  12 +
>>  16 files changed, 1302 insertions(+), 62 deletions(-)
>>  create mode 100644 lib/dpif-netdev-unixctl.man
>>
>> --
>> 1.9.1
> 
> 
> 
> 
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to