From patchwork Fri Aug 7 05:00:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yufen.Mo" X-Patchwork-Id: 75267 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 15A30A04AD; Fri, 7 Aug 2020 07:02:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 07E342C39; Fri, 7 Aug 2020 07:02:09 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 6FA722B87 for ; Fri, 7 Aug 2020 07:02:06 +0200 (CEST) IronPort-SDR: wpvhRYbwj3h/OELtVB5Do5c0cwiz7ZoEdFSyB5r2Z7DVOIzTwGi3/lENi6GjB6wVoJhuv3ShFY 70+cP+fX4fAw== X-IronPort-AV: E=McAfee;i="6000,8403,9705"; a="217333946" X-IronPort-AV: E=Sophos;i="5.75,444,1589266800"; d="scan'208";a="217333946" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Aug 2020 22:02:05 -0700 IronPort-SDR: 5jwlMjcdak0ScfMDs0MWZ7kTZSew6zHam+zAXIA2VqbXdb87RjY179Fv3L739wcBgV89ui1dsV SzUbIzcamCeQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,444,1589266800"; d="scan'208";a="367822628" Received: from dpdk-moyufen06.sh.intel.com ([10.67.116.208]) by orsmga001.jf.intel.com with ESMTP; 06 Aug 2020 22:02:04 -0700 From: yufengmx To: dts@dpdk.org Cc: yufengmx Date: Fri, 7 Aug 2020 13:00:05 +0800 Message-Id: <20200807050005.31998-2-yufengx.mo@intel.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20200807050005.31998-1-yufengx.mo@intel.com> References: <20200807050005.31998-1-yufengx.mo@intel.com> MIME-Version: 1.0 Subject: [dts] [PATCH V5 1/1] l3fwd: update rfc2544/throughput json and display X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" update rfc2544/throughput json and display. Signed-off-by: yufengmx --- tests/l3fwd_base.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/tests/l3fwd_base.py b/tests/l3fwd_base.py index a6e26b0..8ea79c0 100644 --- a/tests/l3fwd_base.py +++ b/tests/l3fwd_base.py @@ -827,11 +827,12 @@ class L3fwdBase(object): expected, pps, round(gap, 2)) self.logger.error(msg) else: + expected = pps msg = ('{0} {1} expected throughput value is not set, ' 'ignore check').format(config, frame_size) self.logger.warning(msg) status = 'pass' - js_results.append([status, [pps, linerate - pps], percentage, config, frame_size]) + js_results.append([status, [pps, pps - expected], percentage, config, frame_size]) # save data with json format self.__save_throughput_result(self.__cur_case, js_results) # display result table @@ -861,6 +862,7 @@ class L3fwdBase(object): self.__cur_case, {}).get(self.__nic_name, {}).get( config, {}).get(str(frame_size), {}) zero_loss_rate, tx_pkts, rx_pkts, pps = result if result else [None] * 3 + zero_loss_rate = zero_loss_rate or 0 mpps = pps / 1000000.0 # expected line rate _frame_size = self.__get_frame_size(stm_name, frame_size) @@ -869,33 +871,43 @@ class L3fwdBase(object): actual_rate_percent = mpps * 100 / linerate # append data for display pdr = expected_cfg.get('traffic_opt', {}).get('pdr') + expected_rate = float(expected_cfg.get('rate') or 100.0) values.append([ config, frame_size, mode.upper(), - str(linerate), + str(linerate * expected_rate /100), str(mpps), - str(zero_loss_rate), + str(expected_rate), str(actual_rate_percent), str(tx_pkts), str(rx_pkts), ]) # check data with expected values - expected_rate = float(expected_cfg.get('rate') or 100.0) + gap = 100 * (zero_loss_rate - expected_rate) / expected_rate status = 'pass' \ - if zero_loss_rate and zero_loss_rate > expected_rate \ + if abs(gap) < bias \ else 'failed' js_results.append( [status, - [mpps, linerate - mpps], actual_rate_percent, + [mpps, zero_loss_rate - expected_rate], actual_rate_percent, config, frame_size]) # save data in json file self.__save_rfc2544_result(self.__cur_case, js_results) # display result table + # Total Cores/Threads/Queues per port + # Frame Size + # Mode: LPM/EM + # Expected Throughput (Mpps) : Max linerate throughput value * 'Expected LineRate %' + # Actual Throughput (Mpps) : actual run throughput value on the zero loss rate + # Expected LineRate % : which config in l3fwd_lpm_ipv4_rfc2544.cfg + # Actual LineRate % : actual run zero loss rate + # tx_pkts : send pkts num + # rx_pkts : received pkts num title = [ 'Total Cores/Threads/Queues per port', "Frame Size", "Mode", 'Expected Throughput (Mpps)', - 'Actual line rate (Mpps) ', + 'Actual Throughput (Mpps) ', '{} Mode config line rate % '.format(mode.upper()), '{} Mode actual line rate % '.format(mode.upper()), 'tx_pkts',