From c5e88fad52b62bc421165423702055c881b0cf03 Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Thu, 13 Feb 2020 15:58:42 +0100 Subject: [PATCH] Report: Tables with detailed results for MRR Change-Id: I5506bbdc6bc5e5de4f219fa349659ddf9d0e55a8 Signed-off-by: Tibor Frank --- .../dpdk_performance_tests/csit_release_notes.rst | 8 ++-- .../vpp_performance_tests/csit_release_notes.rst | 24 +++++----- resources/tools/presentation/input_data_parser.py | 49 +++++++++++++++++---- resources/tools/presentation/specification.yaml | 51 +++++++++++++++++++--- 4 files changed, 100 insertions(+), 32 deletions(-) diff --git a/docs/report/dpdk_performance_tests/csit_release_notes.rst b/docs/report/dpdk_performance_tests/csit_release_notes.rst index 2dd10e08ee..6d7c536435 100644 --- a/docs/report/dpdk_performance_tests/csit_release_notes.rst +++ b/docs/report/dpdk_performance_tests/csit_release_notes.rst @@ -16,6 +16,10 @@ Changes in |csit-release| will be added in subsequent maintenance report version(s) once the issue is resolved. See :ref:`dpdk_known_issues`. +#. DPDK RELEASE VERSION CHANGE + + - |csit-release| tested |dpdk-release|, as used by |vpp-release|. + .. // Alternative Note for 1st Bullet when bad microcode Skx, Clx results are published - **Intel Xeon 2n-skx, 3n-skx and 2n-clx testbeds**: Testpmd and @@ -28,10 +32,6 @@ Changes in |csit-release| corrected in subsequent maintenance report version(s) once the issue is resolved. See :ref:`vpp_known_issues`. -#. DPDK RELEASE VERSION CHANGE - - - |csit-release| tested |dpdk-release|, as used by |vpp-release|. - .. _dpdk_known_issues: Known Issues diff --git a/docs/report/vpp_performance_tests/csit_release_notes.rst b/docs/report/vpp_performance_tests/csit_release_notes.rst index f79e331653..2057bb4e31 100644 --- a/docs/report/vpp_performance_tests/csit_release_notes.rst +++ b/docs/report/vpp_performance_tests/csit_release_notes.rst @@ -43,18 +43,6 @@ Changes in |csit-release| - **Load Balancer tests**: Added VPP performance tests for Maglev, L3DSR (Direct Server Return), Layer 4 Load Balancing NAT Mode. -.. - // Alternative Note for 1st Bullet when bad microcode Skx, Clx results are published - - **Intel Xeon 2n-skx, 3n-skx and 2n-clx testbeds**: VPP performance - test data is included in this report version, but it shows lower - performance and behaviour inconsistency of these systems - following the upgrade of processor microcode packages (skx ucode - 0x2000064, clx ucode 0x500002c) as part of updating Ubuntu 18.04 - LTS kernel version. Tested VPP and DPDK applications (L3fwd) are - affected. Skx and Clx test data will be corrected in subsequent - maintenance report version(s) once the issue is resolved. See - :ref:`vpp_known_issues`. - #. TEST FRAMEWORK - **CSIT Python3 support**: Full migration of CSIT from Python2.7 to @@ -88,6 +76,18 @@ Changes in |csit-release| background packet loads based on TRex latency hdrhistogram measurements. +.. + // Alternative Note for 1st Bullet when bad microcode Skx, Clx results are published + - **Intel Xeon 2n-skx, 3n-skx and 2n-clx testbeds**: VPP performance + test data is included in this report version, but it shows lower + performance and behaviour inconsistency of these systems + following the upgrade of processor microcode packages (skx ucode + 0x2000064, clx ucode 0x500002c) as part of updating Ubuntu 18.04 + LTS kernel version. Tested VPP and DPDK applications (L3fwd) are + affected. Skx and Clx test data will be corrected in subsequent + maintenance report version(s) once the issue is resolved. See + :ref:`vpp_known_issues`. + .. raw:: latex \clearpage diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py index 5d9234e941..a619bd20a8 100644 --- a/resources/tools/presentation/input_data_parser.py +++ b/resources/tools/presentation/input_data_parser.py @@ -220,6 +220,8 @@ class ExecutionChecker(ResultVisitor): r'Latency at 50% PDR:.*\[\'(.*)\', \'(.*)\'\].*\n' r'Latency at 10% PDR:.*\[\'(.*)\', \'(.*)\'\].*\n' ) + REGEX_MRR_MSG_INFO = re.compile(r'.*\[(.*)\]') + # TODO: Remove when not needed REGEX_NDRPDR_LAT_BASE = re.compile( r'LATENCY.*\[\'(.*)\', \'(.*)\'\]\s\n.*\n.*\n' @@ -355,15 +357,34 @@ class ExecutionChecker(ResultVisitor): """ return self._data + def _get_data_from_mrr_test_msg(self, msg): + """Get info from message of MRR performance tests. + + :param msg: Message to be processed. + :type msg: str + :returns: Processed message or original message if a problem occurs. + :rtype: str + """ + + groups = re.search(self.REGEX_MRR_MSG_INFO, msg) + if not groups or groups.lastindex != 1: + return msg + + try: + data = groups.group(1).split(u", ") + except (AttributeError, IndexError, ValueError, KeyError): + return msg + + out_str = u"[" + try: + for item in data: + out_str += f"{float(item):.2f}, " + return out_str[:-2] + u"]" + except (AttributeError, IndexError, ValueError, KeyError): + return msg + def _get_data_from_perf_test_msg(self, msg): - """Get - - NDR_LOWER - - LATENCY - - NDR_UPPER - - PDR_LOWER - - LATENCY - - PDR_UPPER - from message of NDRPDR performance tests. + """Get info from message of NDRPDR performance tests. :param msg: Message to be processed. :type msg: str @@ -947,7 +968,7 @@ class ExecutionChecker(ResultVisitor): replace(u'\r', u'').\ replace(u'[', u' |br| [').\ replace(u' |br| [', u'[', 1) - test_result[u"msg"] = self._get_data_from_perf_test_msg(test.message).\ + test_result[u"msg"] = test.message.\ replace(u'\n', u' |br| ').\ replace(u'\r', u'').\ replace(u'"', u"'") @@ -989,6 +1010,11 @@ class ExecutionChecker(ResultVisitor): if test.status == u"PASS": if u"NDRPDR" in tags: + test_result[u"msg"] = self._get_data_from_perf_test_msg( + test.message). \ + replace(u'\n', u' |br| '). \ + replace(u'\r', u''). \ + replace(u'"', u"'") test_result[u"type"] = u"NDRPDR" test_result[u"throughput"], test_result[u"status"] = \ self._get_ndrpdr_throughput(test.message) @@ -1003,6 +1029,11 @@ class ExecutionChecker(ResultVisitor): groups = re.search(self.REGEX_TCP, test.message) test_result[u"result"] = int(groups.group(2)) elif u"MRR" in tags or u"FRMOBL" in tags or u"BMRR" in tags: + test_result[u"msg"] = self._get_data_from_mrr_test_msg( + test.message). \ + replace(u'\n', u' |br| '). \ + replace(u'\r', u''). \ + replace(u'"', u"'") if u"MRR" in tags: test_result[u"type"] = u"MRR" else: diff --git a/resources/tools/presentation/specification.yaml b/resources/tools/presentation/specification.yaml index f4110133a0..aa81d71fbb 100644 --- a/resources/tools/presentation/specification.yaml +++ b/resources/tools/presentation/specification.yaml @@ -32,6 +32,7 @@ DIR[DTR,PERF,DPDK,2N,CLX]: "{DIR[DTR]}/dpdk_performance_results_2n_clx" DIR[DTR,PERF,DPDK,2N,DNV]: "{DIR[DTR]}/dpdk_performance_results_2n_dnv" DIR[DTR,PERF,DPDK,3N,DNV]: "{DIR[DTR]}/dpdk_performance_results_3n_dnv" + DIR[DTR,PERF,DPDK,3N,TSH]: "{DIR[DTR]}/dpdk_performance_results_3n_tsh" DIR[DTR,PERF,VPP,3N,HSW]: "{DIR[DTR]}/vpp_performance_results_3n_hsw" DIR[DTR,PERF,VPP,3N,SKX]: "{DIR[DTR]}/vpp_performance_results_3n_skx" DIR[DTR,PERF,VPP,2N,SKX]: "{DIR[DTR]}/vpp_performance_results_2n_skx" @@ -4456,7 +4457,7 @@ columns: - title: " |prein| Test Name |preout| " data: "data name" - - title: "Status" + - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| " data: "data msg" rows: "generated" data: "vpp-mrr-results-3n-hsw" @@ -4475,7 +4476,7 @@ # columns: # - title: " |prein| Test Name |preout| " # data: "data name" -# - title: "Status" +# - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| " # data: "data msg" # rows: "generated" # data: "vpp-mrr-results-3n-skx" @@ -4494,7 +4495,7 @@ # columns: # - title: " |prein| Test Name |preout| " # data: "data name" -# - title: "Status" +# - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| " # data: "data msg" # rows: "generated" # data: "vpp-mrr-results-2n-skx" @@ -4513,7 +4514,7 @@ # columns: # - title: " |prein| Test Name |preout| " # data: "data name" -# - title: "Status" +# - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| " # data: "data msg" # rows: "generated" # data: "vpp-mrr-results-2n-clx" @@ -4532,7 +4533,7 @@ # columns: # - title: " |prein| Test Name |preout| " # data: "data name" -# - title: "Status" +# - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| " # data: "data msg" # rows: "generated" # data: "vpp-mrr-results-3n-tsh" @@ -4551,7 +4552,7 @@ columns: - title: " |prein| Test Name |preout| " data: "data name" - - title: "Status" + - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| " data: "data msg" rows: "generated" data: "vpp-mrr-results-3n-dnv" @@ -4570,7 +4571,7 @@ columns: - title: " |prein| Test Name |preout| " data: "data name" - - title: "Status" + - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| " data: "data msg" rows: "generated" data: "vpp-mrr-results-2n-dnv" @@ -5246,6 +5247,25 @@ - "parent" - "msg" +# Detailed Test Results - DPDK Performance Results 3n-tsh +- type: "table" + title: "Detailed Test Results - DPDK Performance Results 3n-tsh" + algorithm: "table_details" + output-file-ext: ".csv" + output-file: "{DIR[DTR,PERF,DPDK,3N,TSH]}/dpdk_performance_results_3n_tsh" + columns: + - title: " |prein| Test Name |preout| " + data: "data name" + - title: " |prein| 1. Mpps Gbps (NDR Throughput) |br| 2. Mpps Gbps (PDR Throughput) |br| 3. P50 P90 P99 , P50 P90 P99 (10% PDR Uni-Dir Latency in uSec) |br| 4. P50 P90 P99 , P50 P90 P99 (50% PDR Uni-Dir Latency in uSec) |br| 5. P50 P90 P99 , P50 P90 P99 (90% PDR Uni-Dir Latency in uSec) |preout| " + data: "data msg" + rows: "generated" + data: "dpdk-perf-results-3n-tsh" + filter: "all" + parameters: + - "name" + - "parent" + - "msg" + ################################################################################ ### F I L E S ### ################################################################################ @@ -5939,6 +5959,23 @@ - "parent" data-start-level: 3 +# DPDK Performance Results 3n-tsh +- type: "file" + title: "DPDK Performance Results 3n-tsh" + algorithm: "file_test_results" + output-file-ext: ".rst" + output-file: "{DIR[DTR,PERF,DPDK,3N,TSH]}/dpdk_performance_results_3n_tsh" + file-header: "\n.. |br| raw:: html\n\n
\n\n\n.. |prein| raw:: html\n\n
\n\n\n.. |preout| raw:: html\n\n    
\n\n" + dir-tables: "{DIR[DTR,PERF,DPDK,3N,TSH]}" + data: "dpdk-perf-results-3n-tsh" + filter: "all" + parameters: + - "name" + - "doc" + - "level" + - "parent" + data-start-level: 3 + ################################################################################ ### P L O T S ### ################################################################################ -- 2.16.6