From f6cf39c515f503f367df441924fd16967d518539 Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Fri, 3 Feb 2017 11:26:37 +0100 Subject: [PATCH] CSIT-517: DPDK initialization and teardown Change-Id: Iff42549e3be610c88b7a7d5518ef2cbb88c75ed2 Signed-off-by: Tibor Frank --- dpdk-tests/dpdk_scripts/cleanup_dpdk.sh | 23 +++++++++++--- dpdk-tests/dpdk_scripts/run_l2fwd.sh | 27 ++++++++++------ ...bot => 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot} | 36 +++++++++++----------- resources/libraries/python/DPDK/DPDKTools.py | 24 +++++++++------ 4 files changed, 68 insertions(+), 42 deletions(-) rename dpdk-tests/perf/{40ge2p1x1710-eth-l2xcbase-ndrdisc.robot => 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot} (98%) diff --git a/dpdk-tests/dpdk_scripts/cleanup_dpdk.sh b/dpdk-tests/dpdk_scripts/cleanup_dpdk.sh index 8ab9c6f676..915d383bfa 100755 --- a/dpdk-tests/dpdk_scripts/cleanup_dpdk.sh +++ b/dpdk-tests/dpdk_scripts/cleanup_dpdk.sh @@ -12,15 +12,28 @@ port2_driver=$3 port2_pci=$4 #kill the dpdk application -sudo pkill testpmd -sudo pkill l2fwd -sudo pkill l3fwd +sudo pgrep testpmd +if [ $? -eq "0" ]; then + success=false + sudo pkill testpmd + for attempt in {1..5}; do + sudo pgrep testpmd + if [ $? -eq "1" ]; then + success=true + break + fi + sleep 1 + done + if [ ${success} -eq false ]; then + echo "The command sudo pkill testpmd failed" + exit 1 + fi +fi + sudo rm -f ${TESTPMD_PID} sudo rm -f /dev/hugepages/* cat ${TESTPMD_LOG} -sleep 2 - cd ${ROOTDIR}/dpdk-16.07/ ./tools/dpdk-devbind.py -b ${port1_driver} ${port1_pci} ./tools/dpdk-devbind.py -b ${port2_driver} ${port2_pci} diff --git a/dpdk-tests/dpdk_scripts/run_l2fwd.sh b/dpdk-tests/dpdk_scripts/run_l2fwd.sh index 6df33a1317..dedabe1872 100755 --- a/dpdk-tests/dpdk_scripts/run_l2fwd.sh +++ b/dpdk-tests/dpdk_scripts/run_l2fwd.sh @@ -12,17 +12,26 @@ queue_nums=$3 jumbo_frames=$4 #kill the testpmd -sudo pkill testpmd -sudo rm -f ${TESTPMD_PID} - -sleep 2 - -pid=`pgrep testpmd` -if [ "$pid" != "" ]; then - echo "terminate the testpmd failed!" - exit 1 +sudo pgrep testpmd +if [ $? -eq "0" ]; then + success=false + sudo pkill testpmd + for attempt in {1..5}; do + sudo pgrep testpmd + if [ $? -eq "1" ]; then + success=true + break + fi + sleep 1 + done + if [ ${success} -eq false ]; then + echo "The command sudo pkill testpmd failed" + exit 1 + fi fi +sudo rm -f ${TESTPMD_PID} + #run the testpmd cd ${ROOTDIR} if [ "$jumbo_frames" = "yes" ]; then diff --git a/dpdk-tests/perf/40ge2p1x1710-eth-l2xcbase-ndrdisc.robot b/dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-ndrdisc.robot similarity index 98% rename from dpdk-tests/perf/40ge2p1x1710-eth-l2xcbase-ndrdisc.robot rename to dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-ndrdisc.robot index 667f11e516..80aaf08c5a 100644 --- a/dpdk-tests/perf/40ge2p1x1710-eth-l2xcbase-ndrdisc.robot +++ b/dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-ndrdisc.robot @@ -56,7 +56,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\ | | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps. | | ... | | [Tags] | 1T1C | STHREAD | NDRDISC @@ -76,7 +76,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\ | | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps, LT=0.5%. | | ... | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH @@ -96,7 +96,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\ | | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps. | | ... | | [Tags] | 1T1C | STHREAD | NDRDISC @@ -116,7 +116,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\ | | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps, LT=0.5%. | | ... | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH @@ -136,7 +136,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\ | | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps. | | ... | | [Tags] | 1T1C | STHREAD | NDRDISC @@ -156,7 +156,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\ | | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps, LT=0.5%. | | ... | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH @@ -176,7 +176,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\ | | ... | cores, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps. | | ... | | [Tags] | 2T2C | MTHREAD | NDRDISC @@ -196,7 +196,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\ | | ... | cores, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps, LT=0.5%. | | ... | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH @@ -216,7 +216,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\ | | ... | cores, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps. | | ... | | [Tags] | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH @@ -236,7 +236,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\ | | ... | cores, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps, LT=0.5%. | | ... | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH @@ -256,7 +256,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\ | | ... | cores, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps. | | ... | | [Tags] | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH @@ -276,7 +276,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\ | | ... | cores, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps, LT=0.5%. | | ... | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH @@ -296,7 +296,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\ | | ... | cores, 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps. | | ... | | [Tags] | 4T4C | MTHREAD | NDRDISC @@ -316,7 +316,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\ | | ... | cores, 2 receive queues per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps, LT=0.5%. | | ... | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH @@ -336,7 +336,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\ | | ... | cores, 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps. | | ... | | [Tags] | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH @@ -356,7 +356,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\ | | ... | cores, 2 receive queues per NIC port. -| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps, LT=0.5%. | | ... | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH @@ -376,7 +376,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\ | | ... | cores, 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 40GE\ | | ... | linerate, step 10kpps. | | ... | | [Tags] | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH @@ -396,7 +396,7 @@ | | [Documentation] | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\ | | ... | cores, 2 receive queues per NIC port. -| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\ +| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 40GE\ | | ... | linerate, step 5kpps, LT=0.5%. | | ... | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH diff --git a/resources/libraries/python/DPDK/DPDKTools.py b/resources/libraries/python/DPDK/DPDKTools.py index e7fa2f4e76..178562355e 100644 --- a/resources/libraries/python/DPDK/DPDKTools.py +++ b/resources/libraries/python/DPDK/DPDKTools.py @@ -12,16 +12,18 @@ # limitations under the License. -""" -This module exists to provide the init DPDK. -""" +"""This module implements initialization and cleanup of DPDK environment.""" from resources.libraries.python.ssh import SSH from resources.libraries.python.constants import Constants as con from resources.libraries.python.topology import Topology + class DPDKTools(object): - """Test the DPDK l2fwd performance.""" + """This class implements: + - Initialization of DPDK environment, + - Cleanup of DPDK environment. + """ @staticmethod def initialize_dpdk_environment(dut_node, dut_if1, dut_if2): @@ -36,6 +38,7 @@ class DPDKTools(object): :type dut_if1: str :type dut_if2: str :returns: none + :raises RuntimeError: If it fails to bind the interfaces to igb_uio. """ pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1) pci_address2 = Topology.get_interface_pci_addr(dut_node, dut_if2) @@ -48,8 +51,8 @@ class DPDKTools(object): (ret_code, _, _) = ssh.exec_command(cmd, timeout=600) if ret_code != 0: - raise Exception('Failed to bind the interfaces to igb_uio ' \ - 'at node {0}'.format(dut_node['host'])) + raise RuntimeError('Failed to bind the interfaces to igb_uio at ' + 'node {0}'.format(dut_node['host'])) @staticmethod def cleanup_dpdk_environment(dut_node, dut_if1, dut_if2): @@ -64,6 +67,7 @@ class DPDKTools(object): :type dut_if1: str :type dut_if2: str :returns: none + :raises RuntimeError: If it fails to cleanup the dpdk. """ pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1) if1_driver = Topology.get_interface_driver(dut_node, dut_if1) @@ -74,10 +78,10 @@ class DPDKTools(object): ssh.connect(dut_node) cmd = 'cd {0}/dpdk-tests/dpdk_scripts/ && sudo ./cleanup_dpdk.sh ' \ - '{1} {2} {3} {4}'.format(con.REMOTE_FW_DIR, if1_driver, \ - pci_address1, if2_driver, pci_address2) + '{1} {2} {3} {4}'.format(con.REMOTE_FW_DIR, if1_driver, + pci_address1, if2_driver, pci_address2) (ret_code, _, _) = ssh.exec_command(cmd, timeout=600) if ret_code != 0: - raise Exception('Failed to cleanup the dpdk at node {0}' - .format(dut_node['host'])) + raise RuntimeError('Failed to cleanup the dpdk at node {0}' + .format(dut_node['host'])) -- 2.16.6