* [dts] [v3 0/6] revise tests/nic_signle_core_perf
@ 2021-03-31 10:16 Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 1/6] tests/nic_single_core_perf: beauty JSON string Lijuan Tu
` (6 more replies)
0 siblings, 7 replies; 9+ messages in thread
From: Lijuan Tu @ 2021-03-31 10:16 UTC (permalink / raw)
To: dliu, ohilyard, alialnu; +Cc: dts, Lijuan Tu
* changed pass / fail determination to be percentage based
* made multiple traffic measurements during the test run to
collect better statistics
Group agreed in CI Meeting:
https://mails.dpdk.org/archives/ci/2021-February/001049.html
* v3:
fix typoes
* v2:
* changed percentage to a float
* separate to serval patches
* fix rx desc size
Lijuan Tu (6):
tests/nic_single_core_perf: beauty JSON string
tests/nic_single_core_perf: get better throughput stats
tests/nic_single_core_perf: revise rst table
tests/nic_single_core_perf: revise delta to ratio
tests/nic_single_core_perf: add expected mpps into JSON
tests/nic_single_core_perf: revise rx desc size
conf/nic_single_core_perf.cfg | 18 +++-
tests/TestSuite_nic_single_core_perf.py | 112 +++++++++++++++---------
2 files changed, 83 insertions(+), 47 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dts] [v3 1/6] tests/nic_single_core_perf: beauty JSON string
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
@ 2021-03-31 10:16 ` Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 2/6] tests/nic_single_core_perf: get better throughput stats Lijuan Tu
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lijuan Tu @ 2021-03-31 10:16 UTC (permalink / raw)
To: dliu, ohilyard, alialnu; +Cc: dts, Lijuan Tu
with separators and indents, the JSON are more human friendly.
before:
{"test_perf_nic_single_core": [{ "parameters": [{"name": "Txd/Rxd", ...}, ... }
after:
{
"test_perf_nic_single_core": [
{
"parameters": [
{
"name": "Txd/Rxd",
...
},
...
}
Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
---
tests/TestSuite_nic_single_core_perf.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/tests/TestSuite_nic_single_core_perf.py b/tests/TestSuite_nic_single_core_perf.py
index 8266506b..edb4465d 100644
--- a/tests/TestSuite_nic_single_core_perf.py
+++ b/tests/TestSuite_nic_single_core_perf.py
@@ -368,10 +368,11 @@ class TestNicSingleCorePerf(TestCase):
row_dict0['parameters'].append(row_dict4)
json_obj[case_name].append(row_dict0)
status_result.append(row_dict0['status'])
- with open(os.path.join(rst.path2Result,
- '{0:s}_single_core_perf.json'.format(
- self.nic)), 'w') as fp:
- json.dump(json_obj, fp)
+
+ json_file = os.path.join(rst.path2Result, '{0:s}_single_core_perf.json'.format(self.nic))
+ with open(json_file, 'w') as fp:
+ json.dump(json_obj, fp, indent=4, separators=(',', ': '), sort_keys=True)
+
self.verify("FAIL" not in status_result, "Excessive gap between test results and expectations")
def set_fields(self):
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dts] [v3 2/6] tests/nic_single_core_perf: get better throughput stats
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 1/6] tests/nic_single_core_perf: beauty JSON string Lijuan Tu
@ 2021-03-31 10:16 ` Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 3/6] tests/nic_single_core_perf: revise rst table Lijuan Tu
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lijuan Tu @ 2021-03-31 10:16 UTC (permalink / raw)
To: dliu, ohilyard, alialnu; +Cc: dts, Lijuan Tu
Snice throughput is easily fluctuated, we want to improve reliable
for results by following:
* get multiple throughput statistics during the run time.
* remove the maximum and minimum and get average.
* sample interval could be configured by users
Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
---
conf/nic_single_core_perf.cfg | 4 +++
tests/TestSuite_nic_single_core_perf.py | 42 +++++++++++++++++++------
2 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/conf/nic_single_core_perf.cfg b/conf/nic_single_core_perf.cfg
index 4d3279ba..e6b0a5af 100644
--- a/conf/nic_single_core_perf.cfg
+++ b/conf/nic_single_core_perf.cfg
@@ -5,6 +5,9 @@
# numbers, and the pattern is
# {'frame size': ['descriptor number #1', 'descriptor number #2']}
#
+# - throughput_stat_sample_interval defines interval of get throughput
+# statistics (second). If not set, it is 5 seconds by default.
+#
# - test_duration is how many seconds each combination performance will
# be recorded.
#
@@ -34,6 +37,7 @@ test_parameters = {'1C/1T': {64: [512, 2048]},
'1C/2T': {64: [512, 2048]}}
rx_desc_16byte = 'y'
test_duration = 60
+throughput_stat_sample_interval = 2
accepted_tolerance = 1
expected_throughput = {
'fortville_spirit': {
diff --git a/tests/TestSuite_nic_single_core_perf.py b/tests/TestSuite_nic_single_core_perf.py
index edb4465d..a0a257dd 100644
--- a/tests/TestSuite_nic_single_core_perf.py
+++ b/tests/TestSuite_nic_single_core_perf.py
@@ -41,6 +41,7 @@ from exception import VerifyFailure
from settings import HEADER_SIZE, UPDATE_EXPECTED, load_global_setting
from pmd_output import PmdOutput
from copy import deepcopy
+from numpy import mean
import rst
from pktgen import PacketGeneratorHelper
@@ -96,6 +97,7 @@ class TestNicSingleCorePerf(TestCase):
# traffic duraion in second
self.test_duration = self.get_suite_cfg()['test_duration']
+ self.throughput_stat_sample_interval = self.get_suite_cfg().get('throughput_stat_sample_interval', 5)
# load the expected throughput for required nic
if self.nic in ["ConnectX4_LX_MT4117"]:
@@ -265,21 +267,43 @@ class TestNicSingleCorePerf(TestCase):
# run packet generator
streams = self.pktgen_helper.prepare_stream_from_tginput(tgenInput, 100, vm_config, self.tester.pktgen)
# set traffic option
- traffic_opt = {'duration': self.test_duration}
- # _, pps = self.tester.traffic_generator_throughput(tgenInput, rate_percent=100, delay=30)
- _, packets_received = self.tester.pktgen.measure_throughput(stream_ids=streams, options=traffic_opt)
- self.verify(packets_received > 0, "No traffic detected")
- throughput = packets_received / 1000000.0
- self.throughput[fwd_config][frame_size][nb_desc] = throughput
+ traffic_opt = {
+ 'method': 'throughput',
+ 'rate': 100,
+ 'duration': self.test_duration,
+ 'interval': self.throughput_stat_sample_interval,
+ }
+ stats = self.tester.pktgen.measure(stream_ids=streams, traffic_opt=traffic_opt)
+
+ #####################################################
+ # Remove max and min if count >=5, then get average
+ #####################################################
+ if isinstance(stats, list):
+ total_pps_rxs = []
+ c = len(stats)
+ for i in range(c):
+ stats_pps = stats[i][1]
+ if isinstance(stats_pps, tuple):
+ total_pps_rxs.append(stats_pps[1])
+ else:
+ total_pps_rxs.append(stats_pps)
+ if c >= 5:
+ total_pps_rxs.remove(max(total_pps_rxs))
+ total_pps_rxs.remove(min(total_pps_rxs))
+ total_pps_rx = mean(total_pps_rxs)
+ else:
+ total_pps_rx = stats
+
+ self.verify(total_pps_rx > 0, "No traffic detected, please check your configuration")
+ total_mpps_rx = total_pps_rx / 1000000.0
+ self.throughput[fwd_config][frame_size][nb_desc] = total_mpps_rx
self.dut.send_expect("stop", "testpmd> ")
self.dut.send_expect("quit", "# ", 30)
- self.verify(throughput,
- "No traffic detected, please check your configuration")
self.logger.info("Trouthput of " +
"framesize: {}, rxd/txd: {} is :{} Mpps".format(
- frame_size, nb_desc, throughput))
+ frame_size, nb_desc, total_mpps_rx))
return self.throughput
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dts] [v3 3/6] tests/nic_single_core_perf: revise rst table
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 1/6] tests/nic_single_core_perf: beauty JSON string Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 2/6] tests/nic_single_core_perf: get better throughput stats Lijuan Tu
@ 2021-03-31 10:16 ` Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 4/6] tests/nic_single_core_perf: revise delta to ratio Lijuan Tu
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lijuan Tu @ 2021-03-31 10:16 UTC (permalink / raw)
To: dliu, ohilyard, alialnu; +Cc: dts, Lijuan Tu
add more info in rst table, and rename headers to reduce width.
before:
+----------+------------+---------+------------+--------+---------------------+-----------------------+
| Fwd_core | Frame Size | TXD/RXD | Throughput | Rate | Expected Throughput | Throughput Difference |
+==========+============+=========+============+========+=====================+=======================+
| 1C/1T | 64 | 512 | 9.842 Mpps | 3.307% | 0.000 Mpps | 9.842 Mpps |
+----------+------------+---------+------------+--------+---------------------+-----------------------+
after:
+----------+------------+---------+-----------+--------+---------------+-----------------+--------+
| Fwd_core | Frame Size | TXD/RXD | Real-Mpps | Rate | Expected-Mpps | Real - Expected | Status |
+==========+============+=========+===========+========+===============+=================+========+
| 1C/1T | 64 | 512 | 9.864 | 3.314% | 0 | 9.864 | PASS |
+----------+------------+---------+-----------+--------+---------------+-----------------+--------+
Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
---
tests/TestSuite_nic_single_core_perf.py | 28 +++++++++++++------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/tests/TestSuite_nic_single_core_perf.py b/tests/TestSuite_nic_single_core_perf.py
index a0a257dd..095b508a 100644
--- a/tests/TestSuite_nic_single_core_perf.py
+++ b/tests/TestSuite_nic_single_core_perf.py
@@ -120,8 +120,8 @@ class TestNicSingleCorePerf(TestCase):
self.gap = self.get_suite_cfg()['accepted_tolerance']
# header to print test result table
- self.table_header = ['Fwd_core', 'Frame Size', 'TXD/RXD', 'Throughput', 'Rate',
- 'Expected Throughput', 'Throughput Difference']
+ self.table_header = ['Fwd_core', 'Frame Size', 'TXD/RXD', 'Real-Mpps', 'Rate',
+ 'Expected-Mpps', 'Real - Expected', 'Status']
self.test_result = {}
def flows(self):
@@ -327,15 +327,17 @@ class TestNicSingleCorePerf(TestCase):
ret_data[header[0]] = fwd_config
ret_data[header[1]] = frame_size
ret_data[header[2]] = nb_desc
- ret_data[header[3]] = "{:.3f} Mpps".format(
- self.throughput[fwd_config][frame_size][nb_desc])
- ret_data[header[4]] = "{:.3f}%".format(
- self.throughput[fwd_config][frame_size][nb_desc] * 100 / wirespeed)
- ret_data[header[5]] = "{:.3f} Mpps".format(
- self.expected_throughput[fwd_config][frame_size][nb_desc])
- ret_data[header[6]] = "{:.3f} Mpps".format(
- self.throughput[fwd_config][frame_size][nb_desc] -
- self.expected_throughput[fwd_config][frame_size][nb_desc])
+ _real = self.throughput[fwd_config][frame_size][nb_desc]
+ _exp = self.expected_throughput[fwd_config][frame_size][nb_desc]
+ ret_data[header[3]] = "{:.3f}".format(_real)
+ ret_data[header[4]] = "{:.3f}%".format(_real * 100 / wirespeed)
+ ret_data[header[5]] = "{:.3f}".format(_exp)
+ delta = _real - _exp
+ ret_data[header[6]] = "{:.3f}".format(delta)
+ if delta > -self.gap:
+ ret_data[header[7]] = 'PASS'
+ else:
+ ret_data[header[7]] = 'FAIL'
ret_datas[frame_size][nb_desc] = deepcopy(ret_data)
self.test_result[fwd_config] = deepcopy(ret_datas)
@@ -374,8 +376,8 @@ class TestNicSingleCorePerf(TestCase):
row_dict0 = dict()
row_dict0['performance'] = list()
row_dict0['parameters'] = list()
- result_throughput = float(row_in['Throughput'].split()[0])
- expected_throughput = float(row_in['Expected Throughput'].split()[0])
+ result_throughput = float(row_in['Real-Mpps'])
+ expected_throughput = float(row_in['Expected-Mpps'])
# delta value and accepted tolerance in percentage
delta = result_throughput - expected_throughput
if delta > -self.gap:
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dts] [v3 4/6] tests/nic_single_core_perf: revise delta to ratio
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
` (2 preceding siblings ...)
2021-03-31 10:16 ` [dts] [v3 3/6] tests/nic_single_core_perf: revise rst table Lijuan Tu
@ 2021-03-31 10:16 ` Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 5/6] tests/nic_single_core_perf: add expected mpps into JSON Lijuan Tu
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lijuan Tu @ 2021-03-31 10:16 UTC (permalink / raw)
To: dliu, ohilyard, alialnu; +Cc: dts, Lijuan Tu
the delta used to defines the difference between real pps and expected
pps, the case fails if it exceed the absolute number specified by
'accepted_tolerance' in conf/nic_single_core_perf.cfg, the deault is
1Mpps, which is not friendly when the expected is only a few of million,
so updated the accepted_tolerance to a percentage, considering the CI
intergation, so the type is float.
Here are main changes:
* the meaning of accepted_tolerance
before: threshold for (real-mpps - expected-mpps)
after: threshold for (real-mpps - expected-mpps)/expected-mpps
* Pass criteria
before:
real-mpps - expected-mpps > -accepted_tolerance
after:
(real-mpps - expected-mpps)/expected-mpps > -accepted_tolerance
* rst table
before:
... +---------------+-----------------+--------+
... | Expected-Mpps | Real - Expected | Status |
... +===============+=================+========+
... | 9.900 | -0.040 | PASS |
... +---------------+-----------------+--------+
after:
... +---------------+------------+--------+
... | Expected-Mpps | Fluc Ratio | Status |
... +===============+============+========+
... | 9.900 | -0.004 | PASS |
... +---------------+------------+--------+
* delta in JSON:
before: real-mpps - expected-mpps
after: (real-mpps - expected-mpps)/expected-mpps
Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
---
conf/nic_single_core_perf.cfg | 10 +++++---
tests/TestSuite_nic_single_core_perf.py | 32 ++++++++++++-------------
2 files changed, 22 insertions(+), 20 deletions(-)
diff --git a/conf/nic_single_core_perf.cfg b/conf/nic_single_core_perf.cfg
index e6b0a5af..72b8c533 100644
--- a/conf/nic_single_core_perf.cfg
+++ b/conf/nic_single_core_perf.cfg
@@ -11,8 +11,12 @@
# - test_duration is how many seconds each combination performance will
# be recorded.
#
-# - accepted_tolerance defines the accepted tolerance between test
-# results and expected numbers.
+# - accepted_tolerance defines the accepted tolerance for the
+# fluctuation ratio of performance, it is a float(e.g. 0.05).
+# Assume:
+# F = (Real-Mpps - Expected-Mpps)/Expected-Mpps
+# T = accepted_tolerance
+# If F < -T, the case is PASS, else it is FAIL
#
# - expected_throughput is a dictionary defining expected throughput
# numbers based on NIC, and the pattern is
@@ -38,7 +42,7 @@ test_parameters = {'1C/1T': {64: [512, 2048]},
rx_desc_16byte = 'y'
test_duration = 60
throughput_stat_sample_interval = 2
-accepted_tolerance = 1
+accepted_tolerance = 0.05
expected_throughput = {
'fortville_spirit': {
'1C/1T': {64: {512: 0.00, 2048: 0.00}},
diff --git a/tests/TestSuite_nic_single_core_perf.py b/tests/TestSuite_nic_single_core_perf.py
index 095b508a..dd35caac 100644
--- a/tests/TestSuite_nic_single_core_perf.py
+++ b/tests/TestSuite_nic_single_core_perf.py
@@ -116,12 +116,12 @@ class TestNicSingleCorePerf(TestCase):
# {'$framesize':{"$nb_desc": 'throughput'}
self.throughput = {}
- # Accepted tolerance in Mpps
- self.gap = self.get_suite_cfg()['accepted_tolerance']
+ # Accepted tolerance is ratio
+ self.gap = self.get_suite_cfg().get('accepted_tolerance', 0.1)
# header to print test result table
self.table_header = ['Fwd_core', 'Frame Size', 'TXD/RXD', 'Real-Mpps', 'Rate',
- 'Expected-Mpps', 'Real - Expected', 'Status']
+ 'Expected-Mpps', 'Fluc Ratio', 'Status']
self.test_result = {}
def flows(self):
@@ -332,12 +332,16 @@ class TestNicSingleCorePerf(TestCase):
ret_data[header[3]] = "{:.3f}".format(_real)
ret_data[header[4]] = "{:.3f}%".format(_real * 100 / wirespeed)
ret_data[header[5]] = "{:.3f}".format(_exp)
- delta = _real - _exp
- ret_data[header[6]] = "{:.3f}".format(delta)
- if delta > -self.gap:
- ret_data[header[7]] = 'PASS'
+ delta = (_real - _exp)/_exp
+ if _exp != 0:
+ ret_data[header[6]] = "{:.3f}".format(delta)
+ if delta > -self.gap:
+ ret_data[header[7]] = 'PASS'
+ else:
+ ret_data[header[7]] = 'FAIL'
else:
- ret_data[header[7]] = 'FAIL'
+ ret_data[header[6]] = "N/A"
+ ret_data[header[7]] = 'PASS'
ret_datas[frame_size][nb_desc] = deepcopy(ret_data)
self.test_result[fwd_config] = deepcopy(ret_datas)
@@ -376,15 +380,9 @@ class TestNicSingleCorePerf(TestCase):
row_dict0 = dict()
row_dict0['performance'] = list()
row_dict0['parameters'] = list()
- result_throughput = float(row_in['Real-Mpps'])
- expected_throughput = float(row_in['Expected-Mpps'])
- # delta value and accepted tolerance in percentage
- delta = result_throughput - expected_throughput
- if delta > -self.gap:
- row_dict0['status'] = 'PASS'
- else:
- row_dict0['status'] = 'FAIL'
- row_dict1 = dict(name="Throughput", value=result_throughput, unit="Mpps", delta=delta)
+ row_dict0['status'] = row_in['Status']
+ row_dict1 = dict(name="Throughput", value=row_in['Real-Mpps'], unit="Mpps",
+ delta=row_in['Fluc Ratio'])
row_dict2 = dict(name="Txd/Rxd", value=row_in["TXD/RXD"], unit="descriptor")
row_dict3 = dict(name="frame_size", value=row_in["Frame Size"], unit="bytes")
row_dict4 = dict(name="Fwd_core", value=row_in["Fwd_core"])
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dts] [v3 5/6] tests/nic_single_core_perf: add expected mpps into JSON
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
` (3 preceding siblings ...)
2021-03-31 10:16 ` [dts] [v3 4/6] tests/nic_single_core_perf: revise delta to ratio Lijuan Tu
@ 2021-03-31 10:16 ` Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 6/6] tests/nic_single_core_perf: revise rx desc size Lijuan Tu
2021-06-17 13:39 ` [dts] [v3 0/6] revise tests/nic_signle_core_perf Ali Alnubani
6 siblings, 0 replies; 9+ messages in thread
From: Lijuan Tu @ 2021-03-31 10:16 UTC (permalink / raw)
To: dliu, ohilyard, alialnu; +Cc: dts, Lijuan Tu
expose more perf info for CI analysis.
Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
---
tests/TestSuite_nic_single_core_perf.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/TestSuite_nic_single_core_perf.py b/tests/TestSuite_nic_single_core_perf.py
index dd35caac..8606f599 100644
--- a/tests/TestSuite_nic_single_core_perf.py
+++ b/tests/TestSuite_nic_single_core_perf.py
@@ -382,7 +382,7 @@ class TestNicSingleCorePerf(TestCase):
row_dict0['parameters'] = list()
row_dict0['status'] = row_in['Status']
row_dict1 = dict(name="Throughput", value=row_in['Real-Mpps'], unit="Mpps",
- delta=row_in['Fluc Ratio'])
+ delta=row_in['Fluc Ratio'], expected=row_in['Expected-Mpps'])
row_dict2 = dict(name="Txd/Rxd", value=row_in["TXD/RXD"], unit="descriptor")
row_dict3 = dict(name="frame_size", value=row_in["Frame Size"], unit="bytes")
row_dict4 = dict(name="Fwd_core", value=row_in["Fwd_core"])
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dts] [v3 6/6] tests/nic_single_core_perf: revise rx desc size
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
` (4 preceding siblings ...)
2021-03-31 10:16 ` [dts] [v3 5/6] tests/nic_single_core_perf: add expected mpps into JSON Lijuan Tu
@ 2021-03-31 10:16 ` Lijuan Tu
2021-06-17 13:39 ` [dts] [v3 0/6] revise tests/nic_signle_core_perf Ali Alnubani
6 siblings, 0 replies; 9+ messages in thread
From: Lijuan Tu @ 2021-03-31 10:16 UTC (permalink / raw)
To: dliu, ohilyard, alialnu; +Cc: dts, Lijuan Tu
rx_desc_16byte uses 'y' indicates the rx descriptor size to 16B, and
other string for 32B. but 'y' is a reserved string in INI, misuse it
will casuse the write-back configurattion file can't be read correctly.
so rename rx_desc_16byte to rx_desc_size and the type is integer.
Signed-off-by: Lijuan Tu <lijuan.tu@intel.com>
---
conf/nic_single_core_perf.cfg | 4 +++-
tests/TestSuite_nic_single_core_perf.py | 17 +++++++++--------
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/conf/nic_single_core_perf.cfg b/conf/nic_single_core_perf.cfg
index 72b8c533..7970995e 100644
--- a/conf/nic_single_core_perf.cfg
+++ b/conf/nic_single_core_perf.cfg
@@ -5,6 +5,8 @@
# numbers, and the pattern is
# {'frame size': ['descriptor number #1', 'descriptor number #2']}
#
+# - rx_desc_size defines the rx descriptor size which is 16B or 32B.
+#
# - throughput_stat_sample_interval defines interval of get throughput
# statistics (second). If not set, it is 5 seconds by default.
#
@@ -39,7 +41,7 @@
update_expected = True
test_parameters = {'1C/1T': {64: [512, 2048]},
'1C/2T': {64: [512, 2048]}}
-rx_desc_16byte = 'y'
+rx_desc_size = 16
test_duration = 60
throughput_stat_sample_interval = 2
accepted_tolerance = 0.05
diff --git a/tests/TestSuite_nic_single_core_perf.py b/tests/TestSuite_nic_single_core_perf.py
index 8606f599..ee022054 100644
--- a/tests/TestSuite_nic_single_core_perf.py
+++ b/tests/TestSuite_nic_single_core_perf.py
@@ -58,13 +58,15 @@ class TestNicSingleCorePerf(TestCase):
"Not required NIC ")
self.headers_size = HEADER_SIZE['eth'] + HEADER_SIZE['ip']
- self.rx_desc = self.get_suite_cfg()['rx_desc_16byte']
- if 'y' == self.rx_desc:
+ self.rx_desc_size = self.get_suite_cfg().get('rx_desc_size', 32)
+ err_msg = "Rx desc only has 16B and 32B size, %d is not valid" % self.rx_desc_size
+ self.verify(self.rx_desc_size == 16 or self.rx_desc_size == 32, err_msg)
+ if self.rx_desc_size == 16:
# Update DPDK config file and rebuild to get best perf on fortville
if self.nic in ["fortville_25g", "fortville_spirit"]:
- self.dut.set_build_options({'RTE_LIBRTE_I40E_16BYTE_RX_DESC': self.rx_desc})
+ self.dut.set_build_options({'RTE_LIBRTE_I40E_16BYTE_RX_DESC': 'y'})
elif self.nic in ["columbiaville_100g", "columbiaville_25g", "columbiaville_25gx2"]:
- self.dut.set_build_options({'RTE_LIBRTE_ICE_16BYTE_RX_DESC': self.rx_desc})
+ self.dut.set_build_options({'RTE_LIBRTE_ICE_16BYTE_RX_DESC': 'y'})
self.dut.build_install_dpdk(self.target)
# Based on h/w type, choose how many ports to use
@@ -417,11 +419,10 @@ class TestNicSingleCorePerf(TestCase):
Run after each test suite.
"""
# resume setting
- if 'y' == self.rx_desc:
- self.rx_desc = 'n'
+ if self.rx_desc_size == 16:
if self.nic in ["fortville_25g", "fortville_spirit"]:
- self.dut.set_build_options({'RTE_LIBRTE_I40E_16BYTE_RX_DESC': self.rx_desc})
+ self.dut.set_build_options({'RTE_LIBRTE_I40E_16BYTE_RX_DESC': 'n'})
elif self.nic in ["columbiaville_100g", "columbiaville_25g", "columbiaville_25gx2"]:
- self.dut.set_build_options({'RTE_LIBRTE_ICE_16BYTE_RX_DESC': self.rx_desc})
+ self.dut.set_build_options({'RTE_LIBRTE_ICE_16BYTE_RX_DESC': 'n'})
self.dut.build_install_dpdk(self.target)
self.dut.kill_all()
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dts] [v3 0/6] revise tests/nic_signle_core_perf
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
` (5 preceding siblings ...)
2021-03-31 10:16 ` [dts] [v3 6/6] tests/nic_single_core_perf: revise rx desc size Lijuan Tu
@ 2021-06-17 13:39 ` Ali Alnubani
2021-06-29 6:33 ` Tu, Lijuan
6 siblings, 1 reply; 9+ messages in thread
From: Ali Alnubani @ 2021-06-17 13:39 UTC (permalink / raw)
To: Lijuan Tu; +Cc: dts, Lincoln Lavoie, ohilyard, dliu
> -----Original Message-----
> From: Lijuan Tu <lijuan.tu@intel.com>
> Sent: Wednesday, March 31, 2021 1:17 PM
> To: dliu@iol.unh.edu; ohilyard@iol.unh.edu; Ali Alnubani
> <alialnu@nvidia.com>
> Cc: dts@dpdk.org; Lijuan Tu <lijuan.tu@intel.com>
> Subject: [v3 0/6] revise tests/nic_signle_core_perf
>
Thanks Lijuan, and sorry for the delay.
Tested-by: Ali Alnubani <alialnu@nvidia.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dts] [v3 0/6] revise tests/nic_signle_core_perf
2021-06-17 13:39 ` [dts] [v3 0/6] revise tests/nic_signle_core_perf Ali Alnubani
@ 2021-06-29 6:33 ` Tu, Lijuan
0 siblings, 0 replies; 9+ messages in thread
From: Tu, Lijuan @ 2021-06-29 6:33 UTC (permalink / raw)
To: Ali Alnubani; +Cc: dts, Lincoln Lavoie, ohilyard, dliu
> -----Original Message-----
> From: Ali Alnubani <alialnu@nvidia.com>
> Sent: 2021年6月17日 21:40
> To: Tu, Lijuan <lijuan.tu@intel.com>
> Cc: dts@dpdk.org; Lincoln Lavoie <lylavoie@iol.unh.edu>; ohilyard@iol.unh.edu;
> dliu@iol.unh.edu
> Subject: RE: [v3 0/6] revise tests/nic_signle_core_perf
>
> > -----Original Message-----
> > From: Lijuan Tu <lijuan.tu@intel.com>
> > Sent: Wednesday, March 31, 2021 1:17 PM
> > To: dliu@iol.unh.edu; ohilyard@iol.unh.edu; Ali Alnubani
> > <alialnu@nvidia.com>
> > Cc: dts@dpdk.org; Lijuan Tu <lijuan.tu@intel.com>
> > Subject: [v3 0/6] revise tests/nic_signle_core_perf
> >
>
> Thanks Lijuan, and sorry for the delay.
>
> Tested-by: Ali Alnubani <alialnu@nvidia.com>
Applied with typos fixed.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-06-29 6:33 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31 10:16 [dts] [v3 0/6] revise tests/nic_signle_core_perf Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 1/6] tests/nic_single_core_perf: beauty JSON string Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 2/6] tests/nic_single_core_perf: get better throughput stats Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 3/6] tests/nic_single_core_perf: revise rst table Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 4/6] tests/nic_single_core_perf: revise delta to ratio Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 5/6] tests/nic_single_core_perf: add expected mpps into JSON Lijuan Tu
2021-03-31 10:16 ` [dts] [v3 6/6] tests/nic_single_core_perf: revise rx desc size Lijuan Tu
2021-06-17 13:39 ` [dts] [v3 0/6] revise tests/nic_signle_core_perf Ali Alnubani
2021-06-29 6:33 ` Tu, Lijuan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).