Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/80839/?format=api
http://patches.dpdk.org/api/patches/80839/?format=api", "web_url": "http://patches.dpdk.org/project/dts/patch/20201015160141.804553-1-yux.jiang@intel.com/", "project": { "id": 3, "url": "http://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": "<20201015160141.804553-1-yux.jiang@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20201015160141.804553-1-yux.jiang@intel.com", "date": "2020-10-15T16:01:41", "name": "[V1] tests/TestSuite_virtio_event_idx_interrupt: add 2 cbdma TCs", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "cd2cae498d57864cbceb642acd6fec7e1510cc73", "submitter": { "id": 1709, "url": "http://patches.dpdk.org/api/people/1709/?format=api", "name": "Yu Jiang", "email": "yux.jiang@intel.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dts/patch/20201015160141.804553-1-yux.jiang@intel.com/mbox/", "series": [ { "id": 12990, "url": "http://patches.dpdk.org/api/series/12990/?format=api", "web_url": "http://patches.dpdk.org/project/dts/list/?series=12990", "date": "2020-10-15T16:01:41", "name": "[V1] tests/TestSuite_virtio_event_idx_interrupt: add 2 cbdma TCs", "version": 1, "mbox": "http://patches.dpdk.org/series/12990/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/80839/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/80839/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 61C1CA04DB;\n\tThu, 15 Oct 2020 10:02:55 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 559921DCBD;\n\tThu, 15 Oct 2020 10:02:54 +0200 (CEST)", "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n by dpdk.org (Postfix) with ESMTP id 9B5751DC9B\n for <dts@dpdk.org>; Thu, 15 Oct 2020 10:02:51 +0200 (CEST)", "from orsmga005.jf.intel.com ([10.7.209.41])\n by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 Oct 2020 01:02:50 -0700", "from unknown (HELO localhost.localdomain) ([10.240.183.77])\n by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 Oct 2020 01:02:49 -0700" ], "IronPort-SDR": [ "\n f9Vn1TgcrlfX5vb+uwrDiZnAun6jl3BaERj/Wrc232eWxkGVA9iDH0GDvDs2VSiSDLCB+HAR5W\n zuCOP84Ev5/g==", "\n hax9IeeHBCXbFRLvJ8bVfWhVTylJ9Y+hDMelmPPpWybZOx4XbZy+6nDFwN9HR3NsuoYLqnt1as\n XRz8VRY5vSEQ==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9774\"; a=\"227937909\"", "E=Sophos;i=\"5.77,378,1596524400\"; d=\"scan'208\";a=\"227937909\"", "E=Sophos;i=\"5.77,378,1596524400\"; d=\"scan'208\";a=\"531155700\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "From": "JiangYuX <yux.jiang@intel.com>", "To": "dts@dpdk.org", "Cc": "JiangYu <yux.jiang@intel.com>", "Date": "Thu, 15 Oct 2020 16:01:41 +0000", "Message-Id": "<20201015160141.804553-1-yux.jiang@intel.com>", "X-Mailer": "git-send-email 2.25.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dts] [PATCH V1] tests/TestSuite_virtio_event_idx_interrupt: add 2\n\tcbdma TCs", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.15", "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", "Sender": "\"dts\" <dts-bounces@dpdk.org>" }, "content": "From: JiangYu <yux.jiang@intel.com>\n\nAdd 2 cbdma TCs\n\nSigned-off-by: JiangYu <yux.jiang@intel.com>\n---\n tests/TestSuite_virtio_event_idx_interrupt.py | 85 ++++++++++++++++++++++++---\n 1 file changed, 78 insertions(+), 7 deletions(-)", "diff": "diff --git a/tests/TestSuite_virtio_event_idx_interrupt.py b/tests/TestSuite_virtio_event_idx_interrupt.py\nindex 34d6cb7..03d917b 100644\n--- a/tests/TestSuite_virtio_event_idx_interrupt.py\n+++ b/tests/TestSuite_virtio_event_idx_interrupt.py\n@@ -68,6 +68,8 @@ class TestVirtioIdxInterrupt(TestCase):\n # create an instance to set stream field setting\n self.pktgen_helper = PacketGeneratorHelper()\n self.app_testpmd_path = self.dut.apps_name['test-pmd']\n+ self.testpmd_name = self.app_testpmd_path.split(\"/\")[-1]\n+ self.device_str = None\n \n def set_up(self):\n \"\"\"\n@@ -75,7 +77,7 @@ class TestVirtioIdxInterrupt(TestCase):\n \"\"\"\n # Clean the execution ENV\n self.flag = None\n- self.dut.send_expect(\"killall -s INT testpmd\", \"#\")\n+ self.dut.send_expect(\"killall -s INT %s\" % self.testpmd_name, \"#\")\n self.dut.send_expect(\"killall -s INT qemu-system-x86_64\", \"#\")\n self.dut.send_expect(\"rm -rf %s/vhost-net*\" % self.base_dir, \"#\")\n self.vhost = self.dut.new_session(suite=\"vhost\")\n@@ -87,28 +89,66 @@ class TestVirtioIdxInterrupt(TestCase):\n self.running_case)\n self.core_list = self.dut.get_core_list(self.core_config)\n \n- def start_vhost_testpmd(self):\n+ def get_cbdma_ports_info_and_bind_to_dpdk(self, cbdma_num):\n+ \"\"\"\n+ get all cbdma ports\n+ \"\"\"\n+ self.dut.setup_modules(self.target, \"igb_uio\",\"None\")\n+ out = self.dut.send_expect('./usertools/dpdk-devbind.py --status-dev misc', '# ', 30)\n+ cbdma_dev_infos = re.findall('\\s*(0000:\\d+:\\d+.\\d+)', out)\n+ self.verify(len(cbdma_dev_infos) >= cbdma_num, 'There no enough cbdma device to run this suite')\n+\n+ used_cbdma = cbdma_dev_infos[0:cbdma_num]\n+ dmas_info = ''\n+ for dmas in used_cbdma:\n+ number = used_cbdma.index(dmas)\n+ dmas = 'txq{}@{};'.format(number, dmas)\n+ dmas_info += dmas\n+ self.dmas_info = dmas_info[:-1]\n+ self.device_str = ' '.join(used_cbdma)\n+ self.dut.send_expect('./usertools/dpdk-devbind.py --force --bind=%s %s %s' %\n+ (\"igb_uio\", self.device_str, self.pf_pci), '# ', 60)\n+\n+ def bind_cbdma_device_to_kernel(self):\n+ if self.device_str is not None:\n+ self.dut.send_expect('modprobe ioatdma', '# ')\n+ self.dut.send_expect('./usertools/dpdk-devbind.py -u %s' % self.device_str, '# ', 30)\n+ self.dut.send_expect('./usertools/dpdk-devbind.py --force --bind=ioatdma %s' % self.device_str, '# ', 60)\n+\n+ def start_vhost_testpmd(self, dmas=None, mode=False):\n \"\"\"\n start the testpmd on vhost side\n \"\"\"\n # get the core mask depend on the nb_cores number\n self.get_core_mask()\n testcmd = self.app_testpmd_path + \" \"\n- vdev = ['net_vhost,iface=%s/vhost-net,queues=%d ' % (self.base_dir, self.queues)]\n- eal_params = self.dut.create_eal_parameters(cores=self.core_list, prefix='vhost', ports=[self.pf_pci], vdevs=vdev)\n+ if dmas:\n+ device_str = self.device_str.split(\" \")\n+ device_str.append(self.pf_pci)\n+ if mode:\n+ vdev = [\"'net_vhost,iface=%s/vhost-net,queues=%d,%s=1,dmas=[%s],dmathr=64'\" % (self.base_dir, self.queues, mode, dmas)]\n+ else:\n+ vdev = ['net_vhost,iface=%s/vhost-net,queues=%d,dmas=[%s]' % (self.base_dir, self.queues, dmas)]\n+ eal_params = self.dut.create_eal_parameters(cores=self.core_list, prefix='vhost', vdevs=vdev)\n+ else:\n+ vdev = ['net_vhost,iface=%s/vhost-net,queues=%d ' % (self.base_dir, self.queues)]\n+ eal_params = self.dut.create_eal_parameters(cores=self.core_list, prefix='vhost', ports=[self.pf_pci], vdevs=vdev)\n para = \" -- -i --nb-cores=%d --txd=1024 --rxd=1024 --rxq=%d --txq=%d\" % (self.nb_cores, self.queues, self.queues)\n command_line = testcmd + eal_params + para\n self.vhost.send_expect(command_line, \"testpmd> \", 30)\n self.vhost.send_expect(\"start\", \"testpmd> \", 30)\n \n- def start_vms(self, packed=False):\n+ def start_vms(self, packed=False, mode=False):\n \"\"\"\n start qemus\n \"\"\"\n self.vm = VM(self.dut, 'vm0', 'vhost_sample')\n vm_params = {}\n vm_params['driver'] = 'vhost-user'\n- vm_params['opt_path'] = '%s/vhost-net' % self.base_dir\n+ if mode:\n+ vm_params['opt_path'] = '%s/vhost-net,%s' % (self.base_dir, mode)\n+ else:\n+ vm_params['opt_path'] = '%s/vhost-net' % self.base_dir\n vm_params['opt_mac'] = \"00:11:22:33:44:55\"\n opt_args = \"mrg_rxbuf=on,csum=on,gso=on,guest_csum=on,host_tso4=on,guest_tso4=on\"\n if self.queues > 1:\n@@ -279,13 +319,44 @@ class TestVirtioIdxInterrupt(TestCase):\n self.check_each_queue_has_packets_info_on_vhost()\n self.stop_all_apps()\n \n+ def test_perf_split_ring_virito_pci_driver_reload_with_cbdma_enabled(self):\n+ \"\"\"\n+ Test Case 7: Split ring virtio-pci driver reload test with CBDMA enabled\n+ \"\"\"\n+ self.queues = 1\n+ self.nb_cores = 1\n+ used_cbdma_num = 1\n+ self.get_cbdma_ports_info_and_bind_to_dpdk(used_cbdma_num)\n+ self.start_vhost_testpmd(dmas=self.dmas_info)\n+ self.start_vms()\n+ self.config_virito_net_in_vm()\n+ res = self.check_packets_after_reload_virtio_device(reload_times=30)\n+ self.verify(res is True, \"Should increase the wait times of ixia\")\n+ self.stop_all_apps()\n+\n+ def test_perf_wake_up_split_ring_virtio_net_cores_with_event_idx_interrupt_mode_and_cbdma_enabled_16queue(self):\n+ \"\"\"\n+ Test Case 8: Wake up split ring virtio-net cores with event idx interrupt mode and cbdma enabled 16 queues test\n+ \"\"\"\n+ self.queues = 16\n+ self.nb_cores = 16\n+ used_cbdma_num = 16\n+ self.get_cbdma_ports_info_and_bind_to_dpdk(used_cbdma_num)\n+ self.start_vhost_testpmd(dmas=self.dmas_info, mode='client')\n+ self.start_vms(packed=False, mode='server')\n+ self.config_virito_net_in_vm()\n+ self.start_to_send_packets(delay=15)\n+ self.check_each_queue_has_packets_info_on_vhost()\n+ self.stop_all_apps()\n+\n def tear_down(self):\n \"\"\"\n Run after each test case.\n \"\"\"\n self.dut.close_session(self.vhost)\n- self.dut.send_expect(\"killall -s INT testpmd\", \"#\")\n+ self.dut.send_expect(\"killall -s INT %s\" % self.testpmd_name, \"#\")\n self.dut.send_expect(\"killall -s INT qemu-system-x86_64\", \"#\")\n+ self.bind_cbdma_device_to_kernel()\n \n def tear_down_all(self):\n \"\"\"\n", "prefixes": [ "V1" ] }{ "id": 80839, "url": "