get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/128074/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 128074,
    "url": "https://patches.dpdk.org/api/patches/128074/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20230605063417.563776-1-weix.ling@intel.com/",
    "project": {
        "id": 3,
        "url": "https://patches.dpdk.org/api/projects/3/?format=api",
        "name": "DTS",
        "link_name": "dts",
        "list_id": "dts.dpdk.org",
        "list_email": "dts@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dts",
        "webscm_url": "http://git.dpdk.org/tools/dts/",
        "list_archive_url": "https://inbox.dpdk.org/dts",
        "list_archive_url_format": "https://inbox.dpdk.org/dts/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230605063417.563776-1-weix.ling@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20230605063417.563776-1-weix.ling@intel.com",
    "date": "2023-06-05T06:34:17",
    "name": "[V1,2/3] tests/basic_4k_pages_cbdma: modify testsuite by DPDK changed",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "6eb4162475633cec19ef5ef03429d6a74f8dbfa1",
    "submitter": {
        "id": 1828,
        "url": "https://patches.dpdk.org/api/people/1828/?format=api",
        "name": "Ling, WeiX",
        "email": "weix.ling@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20230605063417.563776-1-weix.ling@intel.com/mbox/",
    "series": [
        {
            "id": 28342,
            "url": "https://patches.dpdk.org/api/series/28342/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=28342",
            "date": "2023-06-05T06:33:59",
            "name": "modify basic_4k_pages_cbdma by DPDK changed",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/28342/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/128074/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/128074/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dts-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 8A30042C31;\n\tMon,  5 Jun 2023 08:34:30 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8732A410EE;\n\tMon,  5 Jun 2023 08:34:30 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id 3912A4003C\n for <dts@dpdk.org>; Mon,  5 Jun 2023 08:34:28 +0200 (CEST)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 04 Jun 2023 23:34:27 -0700",
            "from unknown (HELO dut222..) ([10.239.252.222])\n by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 04 Jun 2023 23:34:25 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1685946868; x=1717482868;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=VGsrX9ciEn0V7MAbm340Xuc9hNiuDPhzx+ZUMhMWwaI=;\n b=RvtgaWMtMpjnSF7W5Ui+Dq/ld2YBxQtiPWFU0avQdBzBL8BVJa+le0t7\n sWlej1ksS/Z+bPrNLTUkYZM+e8+aY/2vD1pRJtSEhwxGlq5Zd3g29ZKBU\n eDPHiBfFieLoQFszTY/UB/tkYH63EisTUtRt1ig9w6NtntJwf+PXDBpZ8\n M4AeVtK7VVlVXbXfOOtRM/ebNd4Gk/LllL2eXAaySVDu+Ty2B9K8KoDoA\n cptmjeAfXH1SZ70U/v3giikqo8bgAzDqB9hX38mcYmlEQovjtoSUYcpqX\n hzPLgIzQOy/1VT2Fo83IvrBeH+dJPs8bURO+6fU8dtQavJ+cyngxocKUw Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10731\"; a=\"356307028\"",
            "E=Sophos;i=\"6.00,217,1681196400\"; d=\"scan'208\";a=\"356307028\"",
            "E=McAfee;i=\"6600,9927,10731\"; a=\"852860731\"",
            "E=Sophos;i=\"6.00,217,1681196400\"; d=\"scan'208\";a=\"852860731\""
        ],
        "X-ExtLoop1": "1",
        "From": "Wei Ling <weix.ling@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Wei Ling <weix.ling@intel.com>",
        "Subject": "[dts][PATCH V1 2/3] tests/basic_4k_pages_cbdma: modify testsuite by\n DPDK changed",
        "Date": "Mon,  5 Jun 2023 14:34:17 +0800",
        "Message-Id": "<20230605063417.563776-1-weix.ling@intel.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "test suite reviews and discussions <dts.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dts/>",
        "List-Post": "<mailto:dts@dpdk.org>",
        "List-Help": "<mailto:dts-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dts-bounces@dpdk.org"
    },
    "content": "As the DPDK commit a399d7b5(vfio: do not coalesce DMA mappings) changed,\nWe need to delete the `--no-huge -m 1024` parameter when start the\nvhost-user as back-end side. So delete `--no-huge -m 1024` parameter \nin testsuite.\n\nAdd optimize the testsuite to read and update the expected values into\nthe testsuite config conf/basic_4k_pages_cbdma.cfg. \n\nSigned-off-by: Wei Ling <weix.ling@intel.com>\n---\n tests/TestSuite_basic_4k_pages_cbdma.py | 225 ++++++++++++++++++------\n 1 file changed, 172 insertions(+), 53 deletions(-)",
    "diff": "diff --git a/tests/TestSuite_basic_4k_pages_cbdma.py b/tests/TestSuite_basic_4k_pages_cbdma.py\nindex 70415dd1..0f7936cb 100644\n--- a/tests/TestSuite_basic_4k_pages_cbdma.py\n+++ b/tests/TestSuite_basic_4k_pages_cbdma.py\n@@ -7,13 +7,19 @@ import random\n import re\n import string\n import time\n+from copy import deepcopy\n \n from framework.config import VirtConf\n from framework.packet import Packet\n from framework.pktgen import PacketGeneratorHelper\n from framework.pmd_output import PmdOutput\n from framework.qemu_kvm import QEMUKvm\n-from framework.settings import CONFIG_ROOT_PATH, get_host_ip\n+from framework.settings import (\n+    CONFIG_ROOT_PATH,\n+    UPDATE_EXPECTED,\n+    get_host_ip,\n+    load_global_setting,\n+)\n from framework.test_case import TestCase\n \n \n@@ -45,14 +51,13 @@ class TestBasic4kPagesCbdma(TestCase):\n         self.virtio_user0_pmd = PmdOutput(self.dut, self.virtio_user0)\n         self.pci_info = self.dut.ports_info[0][\"pci\"]\n         self.dst_mac = self.dut.get_mac_address(self.dut_ports[0])\n-        self.frame_sizes = [64, 128, 256, 512, 1024, 1518]\n         self.out_path = \"/tmp/%s\" % self.suite_name\n         out = self.tester.send_expect(\"ls -d %s\" % self.out_path, \"# \")\n         if \"No such file or directory\" in out:\n             self.tester.send_expect(\"mkdir -p %s\" % self.out_path, \"# \")\n         # create an instance to set stream field setting\n         self.pktgen_helper = PacketGeneratorHelper()\n-        self.number_of_ports = 1\n+        self.nb_ports = 1\n         self.app_testpmd_path = self.dut.apps_name[\"test-pmd\"]\n         self.testpmd_name = self.app_testpmd_path.split(\"/\")[-1]\n         self.vm_num = 2\n@@ -102,6 +107,15 @@ class TestBasic4kPagesCbdma(TestCase):\n                 self.vm1_user = param[\"login\"][0][\"user\"]\n                 self.vm1_passwd = param[\"login\"][0][\"password\"]\n \n+        self.logger.info(\n+            \"You can config packet_size in file %s.cfg,\" % self.suite_name\n+            + \" in region 'suite' like packet_sizes=[64, 128, 256]\"\n+        )\n+        if \"packet_sizes\" in self.get_suite_cfg():\n+            self.frame_sizes = self.get_suite_cfg()[\"packet_sizes\"]\n+        self.test_duration = self.get_suite_cfg()[\"test_duration\"]\n+        self.gap = self.get_suite_cfg()[\"accepted_tolerance\"]\n+\n     def set_up(self):\n         \"\"\"\n         Run before each test case.\n@@ -111,14 +125,13 @@ class TestBasic4kPagesCbdma(TestCase):\n         self.dut.send_expect(\"rm -rf /root/dpdk/vhost-net*\", \"# \")\n         # Prepare the result table\n         self.table_header = [\"Frame\"]\n-        self.table_header.append(\"Mode\")\n         self.table_header.append(\"Mpps\")\n-        self.table_header.append(\"Queue Num\")\n         self.table_header.append(\"% linerate\")\n         self.result_table_create(self.table_header)\n         self.vm_dut = []\n         self.vm = []\n-        self.packed = False\n+        self.throughput = {}\n+        self.test_result = {}\n \n     def start_vm0(self, packed=False, queues=1, server=False):\n         packed_param = \",packed=on\" if packed else \"\"\n@@ -145,6 +158,9 @@ class TestBasic4kPagesCbdma(TestCase):\n         )\n         self.vm0_session.send_expect(cmd0, \"# \")\n         time.sleep(10)\n+        self.monitor_socket = \"/tmp/vm0_monitor.sock\"\n+        lcores = self.vm0_cpupin.split(\" \")\n+        self.pin_threads(lcores)\n         self.vm0_dut = self.connect_vm0()\n         self.verify(self.vm0_dut is not None, \"vm start fail\")\n         self.vm_session = self.vm0_dut.new_session(suite=\"vm_session\")\n@@ -174,10 +190,52 @@ class TestBasic4kPagesCbdma(TestCase):\n         )\n         self.vm1_session.send_expect(cmd1, \"# \")\n         time.sleep(10)\n+        self.monitor_socket = \"/tmp/vm1_monitor.sock\"\n+        lcores = self.vm1_cpupin.split(\" \")\n+        self.pin_threads(lcores)\n         self.vm1_dut = self.connect_vm1()\n         self.verify(self.vm1_dut is not None, \"vm start fail\")\n         self.vm_session = self.vm1_dut.new_session(suite=\"vm_session\")\n \n+    def __monitor_session(self, command, *args):\n+        \"\"\"\n+        Connect the qemu monitor session, send command and return output message.\n+        \"\"\"\n+        self.dut.send_expect(\"nc -U %s\" % self.monitor_socket, \"(qemu)\")\n+\n+        cmd = command\n+        for arg in args:\n+            cmd += \" \" + str(arg)\n+\n+        # after quit command, qemu will exit\n+        if \"quit\" in cmd:\n+            self.dut.send_command(\"%s\" % cmd)\n+            out = self.dut.send_expect(\" \", \"#\")\n+        else:\n+            out = self.dut.send_expect(\"%s\" % cmd, \"(qemu)\", 30)\n+        self.dut.send_expect(\"^C\", \"# \")\n+        return out\n+\n+    def pin_threads(self, lcores):\n+        thread_reg = r\"CPU #\\d+: thread_id=(\\d+)\"\n+        output = self.__monitor_session(\"info\", \"cpus\")\n+        threads = re.findall(thread_reg, output)\n+        if len(threads) <= len(lcores):\n+            map = list(zip(threads, lcores))\n+        else:\n+            self.logger.warning(\n+                \"lcores is less than VM's threads, 1 lcore will pin multiple VM's threads\"\n+            )\n+            lcore_len = len(lcores)\n+            for item in threads:\n+                thread_idx = threads.index(item)\n+                if thread_idx >= lcore_len:\n+                    lcore_idx = thread_idx % lcore_len\n+                    lcores.append(lcores[lcore_idx])\n+            map = list(zip(threads, lcores))\n+        for thread, lcore in map:\n+            self.dut.send_expect(\"taskset -pc %s %s\" % (lcore, thread), \"#\")\n+\n     def connect_vm0(self):\n         self.vm0 = QEMUKvm(self.dut, \"vm0\", self.suite_name)\n         self.vm0.net_type = \"hostfwd\"\n@@ -299,32 +357,97 @@ class TestBasic4kPagesCbdma(TestCase):\n             streams = self.pktgen_helper.prepare_stream_from_tginput(\n                 tgen_input, 100, None, self.tester.pktgen\n             )\n-            _, pps = self.tester.pktgen.measure_throughput(stream_ids=streams)\n+            # set traffic option\n+            traffic_opt = {\n+                \"delay\": 5,\n+                \"duration\": self.get_suite_cfg()[\"test_duration\"],\n+            }\n+            _, pps = self.tester.pktgen.measure_throughput(\n+                stream_ids=streams, options=traffic_opt\n+            )\n             Mpps = pps / 1000000.0\n-            # self.verify(Mpps > self.check_value[frame_size],\n-            #             \"%s of frame size %d speed verify failed, expect %s, result %s\" % (\n-            #                 self.running_case, frame_size, self.check_value[frame_size], Mpps))\n-            throughput = Mpps * 100 / float(self.wirespeed(self.nic, 64, 1))\n+            self.throughput[frame_size] = Mpps\n+            linerate = Mpps * 100 / float(self.wirespeed(self.nic, 64, 1))\n             results_row = [frame_size]\n-            results_row.append(\"4K pages\")\n             results_row.append(Mpps)\n-            results_row.append(\"1\")\n-            results_row.append(throughput)\n+            results_row.append(linerate)\n             self.result_table_add(results_row)\n+        self.result_table_print()\n \n-    def start_vhost_user_testpmd(self, cores, param=\"\", eal_param=\"\", ports=\"\"):\n+    def handle_expected(self):\n         \"\"\"\n-        launch the testpmd as virtio with vhost_user\n+        Update expected numbers to configurate file: $DTS_CFG_FOLDER/$suite_name.cfg\n         \"\"\"\n-        self.vhost_user_pmd.start_testpmd(\n-            cores=cores,\n-            param=param,\n-            eal_param=eal_param,\n-            ports=ports,\n-            prefix=\"vhost\",\n-            fixed_prefix=True,\n+        if load_global_setting(UPDATE_EXPECTED) == \"yes\":\n+            for frame_size in self.frame_sizes:\n+                self.expected_throughput[frame_size] = round(\n+                    self.throughput[frame_size], 3\n+                )\n+\n+    def handle_results(self):\n+        \"\"\"\n+        results handled process:\n+        1, save to self.test_results\n+        2, create test results table\n+        \"\"\"\n+        # save test results to self.test_result\n+        header = self.table_header\n+        header.append(\"Expected Throughput(Mpps)\")\n+        header.append(\"Status\")\n+        self.result_table_create(self.table_header)\n+        for frame_size in self.frame_sizes:\n+            wirespeed = self.wirespeed(self.nic, frame_size, self.nb_ports)\n+            ret_data = {}\n+            ret_data[header[0]] = str(frame_size)\n+            _real = float(self.throughput[frame_size])\n+            _exp = float(self.expected_throughput[frame_size])\n+            ret_data[header[1]] = \"{:.3f}\".format(_real)\n+            ret_data[header[2]] = \"{:.3f}%\".format(_real * 100 / wirespeed)\n+            ret_data[header[3]] = \"{:.3f}\".format(_exp)\n+            gap = _exp * -self.gap * 0.01\n+            if _real > _exp + gap:\n+                ret_data[header[4]] = \"PASS\"\n+            else:\n+                ret_data[header[4]] = \"FAIL\"\n+            self.test_result[frame_size] = deepcopy(ret_data)\n+\n+        for frame_size in self.test_result.keys():\n+            table_row = list()\n+            for i in range(len(header)):\n+                table_row.append(self.test_result[frame_size][header[i]])\n+            self.result_table_add(table_row)\n+        # present test results to screen\n+        self.result_table_print()\n+        self.verify(\n+            \"FAIL\" not in self.test_result,\n+            \"Excessive gap between test results and expectations\",\n         )\n \n+    def start_vhost_user_testpmd(\n+        self, cores, param=\"\", eal_param=\"\", ports=\"\", no_pci=False\n+    ):\n+        \"\"\"\n+        launch the testpmd as virtio with vhost_user\n+        \"\"\"\n+        if no_pci:\n+            self.vhost_user_pmd.start_testpmd(\n+                cores=cores,\n+                param=param,\n+                eal_param=eal_param,\n+                no_pci=True,\n+                prefix=\"vhost\",\n+                fixed_prefix=True,\n+            )\n+        else:\n+            self.vhost_user_pmd.start_testpmd(\n+                cores=cores,\n+                param=param,\n+                eal_param=eal_param,\n+                ports=ports,\n+                prefix=\"vhost\",\n+                fixed_prefix=True,\n+            )\n+\n     def start_virtio_user0_testpmd(self, cores, eal_param=\"\", param=\"\"):\n         \"\"\"\n         launch the testpmd as virtio with vhost_net0\n@@ -489,11 +612,14 @@ class TestBasic4kPagesCbdma(TestCase):\n         \"\"\"\n         Test Case 1: Basic test vhost-user/virtio-user split ring vhost async operation using 4K-pages and cbdma enable\n         \"\"\"\n+        self.test_target = self.running_case\n+        self.expected_throughput = self.get_suite_cfg()[\"expected_throughput\"][\n+            self.test_target\n+        ]\n         self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=1)\n         dmas = \"txq0@%s;rxq0@%s\" % (self.cbdma_list[0], self.cbdma_list[0])\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 --vdev 'net_vhost0,iface=./vhost-net,queues=1,dmas=[%s]'\"\n-            % dmas\n+            \"--vdev 'net_vhost0,iface=./vhost-net,queues=1,dmas=[%s]'\" % dmas\n         )\n         vhost_param = \"--no-numa --socket-num=%s \" % self.ports_socket\n         ports = [self.dut.ports_info[0][\"pci\"]]\n@@ -513,7 +639,8 @@ class TestBasic4kPagesCbdma(TestCase):\n         self.virtio_user0_pmd.execute_cmd(\"set fwd mac\")\n         self.virtio_user0_pmd.execute_cmd(\"start\")\n         self.send_and_verify()\n-        self.result_table_print()\n+        self.handle_expected()\n+        self.handle_results()\n \n     def test_perf_pvp_packed_ring_vhost_async_operation_using_4K_pages_and_cbdma_enable(\n         self,\n@@ -521,11 +648,14 @@ class TestBasic4kPagesCbdma(TestCase):\n         \"\"\"\n         Test Case 2: Basic test vhost-user/virtio-user packed ring vhost async operation using 4K-pages and cbdma enable\n         \"\"\"\n+        self.test_target = self.running_case\n+        self.expected_throughput = self.get_suite_cfg()[\"expected_throughput\"][\n+            self.test_target\n+        ]\n         self.get_cbdma_ports_info_and_bind_to_dpdk(cbdma_num=1)\n         dmas = \"txq0@%s;rxq0@%s\" % (self.cbdma_list[0], self.cbdma_list[0])\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 --vdev 'net_vhost0,iface=./vhost-net,queues=1,dmas=[%s]'\"\n-            % dmas\n+            \"--vdev 'net_vhost0,iface=./vhost-net,queues=1,dmas=[%s]'\" % dmas\n         )\n         vhost_param = \"--no-numa --socket-num=%s \" % self.ports_socket\n         ports = [self.dut.ports_info[0][\"pci\"]]\n@@ -545,7 +675,8 @@ class TestBasic4kPagesCbdma(TestCase):\n         self.virtio_user0_pmd.execute_cmd(\"set fwd mac\")\n         self.virtio_user0_pmd.execute_cmd(\"start\")\n         self.send_and_verify()\n-        self.result_table_print()\n+        self.handle_expected()\n+        self.handle_results()\n \n     def test_vm2vm_split_ring_vhost_async_operaiton_test_with_tcp_traffic_using_4k_pages_and_cbdma_enable(\n         self,\n@@ -557,8 +688,7 @@ class TestBasic4kPagesCbdma(TestCase):\n         dmas1 = \"txq0@%s;rxq0@%s\" % (self.cbdma_list[0], self.cbdma_list[0])\n         dmas2 = \"txq0@%s;rxq0@%s\" % (self.cbdma_list[1], self.cbdma_list[1])\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,queues=1,tso=1,dmas=[%s],dma-ring-size=2048'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,queues=1,tso=1,dmas=[%s],dma-ring-size=2048'\"\n             % dmas1\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,queues=1,tso=1,dmas=[%s],dma-ring-size=2048'\"\n             % dmas2\n@@ -594,8 +724,7 @@ class TestBasic4kPagesCbdma(TestCase):\n         dmas1 = \"txq0@%s;rxq0@%s\" % (self.cbdma_list[0], self.cbdma_list[0])\n         dmas2 = \"txq0@%s;rxq0@%s\" % (self.cbdma_list[1], self.cbdma_list[1])\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,queues=1,tso=1,dmas=[%s],dma-ring-size=2048'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,queues=1,tso=1,dmas=[%s],dma-ring-size=2048'\"\n             % dmas1\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,queues=1,tso=1,dmas=[%s],dma-ring-size=2048'\"\n             % dmas2\n@@ -667,9 +796,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             )\n         )\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,dmas=[%s]'\"\n-            % dmas1\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,dmas=[%s]'\" % dmas1\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=8,dmas=[%s]'\"\n             % dmas2\n         )\n@@ -748,8 +875,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             )\n         )\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,dmas=[%s],dma-ring-size=1024'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,dmas=[%s],dma-ring-size=1024'\"\n             % dmas1\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=8,dmas=[%s],dma-ring-size=1024'\"\n             % dmas2\n@@ -769,8 +895,7 @@ class TestBasic4kPagesCbdma(TestCase):\n \n         self.vhost_user_pmd.quit()\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=4'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=4'\"\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=4'\"\n         )\n         vhost_param = \"--nb-cores=4 --txd=1024 --rxd=1024 --rxq=4 --txq=4\"\n@@ -778,7 +903,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             cores=self.vhost_core_list,\n             eal_param=vhost_eal_param,\n             param=vhost_param,\n-            ports=self.cbdma_list,\n+            no_pci=True,\n         )\n         self.vhost_user_pmd.execute_cmd(\"start\")\n         self.config_vm_combined(combined=4)\n@@ -789,8 +914,7 @@ class TestBasic4kPagesCbdma(TestCase):\n \n         self.vhost_user_pmd.quit()\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=4'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=4'\"\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=4'\"\n         )\n         vhost_param = \" --nb-cores=4 --txd=1024 --rxd=1024 --rxq=1 --txq=1\"\n@@ -798,7 +922,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             cores=self.vhost_core_list,\n             eal_param=vhost_eal_param,\n             param=vhost_param,\n-            ports=self.cbdma_list,\n+            no_pci=True,\n         )\n         self.vhost_user_pmd.execute_cmd(\"start\")\n         self.config_vm_combined(combined=1)\n@@ -837,8 +961,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             )\n         )\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,tso=1,dmas=[%s]'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,tso=1,dmas=[%s]'\"\n             % dmas\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=8,tso=1,dmas=[%s]'\"\n             % dmas\n@@ -899,8 +1022,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             )\n         )\n         vhost_eal_param = (\n-            \"-m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,tso=1,dmas=[%s],dma-ring-size=1024'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,tso=1,dmas=[%s],dma-ring-size=1024'\"\n             % dmas\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=8,tso=1,dmas=[%s],dma-ring-size=1024'\"\n             % dmas\n@@ -961,8 +1083,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             )\n         )\n         vhost_eal_param = (\n-            \"--no-huge -m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,tso=1,dmas=[%s]'\"\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,tso=1,dmas=[%s]'\"\n             % dmas\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=8,tso=1,dmas=[%s]'\"\n             % dmas\n@@ -1048,9 +1169,7 @@ class TestBasic4kPagesCbdma(TestCase):\n             )\n         )\n         vhost_eal_param = (\n-            \"-m 1024 \"\n-            + \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,dmas=[%s]'\"\n-            % dmas1\n+            \"--vdev 'net_vhost0,iface=./vhost-net0,client=1,queues=8,dmas=[%s]'\" % dmas1\n             + \" --vdev 'net_vhost1,iface=./vhost-net1,client=1,queues=8,dmas=[%s]'\"\n             % dmas2\n         )\n",
    "prefixes": [
        "V1",
        "2/3"
    ]
}