From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A152DA0525; Fri, 21 Feb 2020 08:57:37 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9794C1BF9D; Fri, 21 Feb 2020 08:57:37 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 8061A1BFB5 for ; Fri, 21 Feb 2020 08:57:35 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Feb 2020 23:57:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,467,1574150400"; d="scan'208";a="254750053" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga002.jf.intel.com with ESMTP; 20 Feb 2020 23:57:34 -0800 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 20 Feb 2020 23:57:33 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 20 Feb 2020 23:57:33 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.222]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.196]) with mapi id 14.03.0439.000; Fri, 21 Feb 2020 15:57:31 +0800 From: "Tu, Lijuan" To: "dts@dpdk.org" Thread-Topic: [dts] [PATCH V4] tests/vf_l3fwd: add a perf case for fvl iavf Thread-Index: AQHV6FboF+JMK2/fIkiotcY62dnCFqglSGxw Date: Fri, 21 Feb 2020 07:57:30 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0BBCCBED@SHSMSX101.ccr.corp.intel.com> References: <1582278116-67562-1-git-send-email-lijuan.tu@intel.com> In-Reply-To: <1582278116-67562-1-git-send-email-lijuan.tu@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V4] tests/vf_l3fwd: add a perf case for fvl iavf 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" Applied, thanks > -----Original Message----- > From: Tu, Lijuan > Sent: Friday, February 21, 2020 5:42 PM > To: dts@dpdk.org > Cc: Tu, Lijuan > Subject: [dts] [PATCH V4] tests/vf_l3fwd: add a perf case for fvl iavf >=20 > * add a new test case: kernel_pf_dpdk_iavf_perf > * fix mapping of pf/vf driver > * fix env destroy action >=20 > Signed-off-by: Lijuan Tu > --- > v4: fix env destroy action > v3: restore dpdk after testing > v2: add a new case: kernel_pf_dpdk_iavf_perf > v1: fix mapping of pf/vf driver >=20 > tests/TestSuite_vf_l3fwd.py | 79 ++++++++++++++++++++++++++++++++------ > ------- > 1 file changed, 56 insertions(+), 23 deletions(-) >=20 > diff --git a/tests/TestSuite_vf_l3fwd.py b/tests/TestSuite_vf_l3fwd.py in= dex > 760b920..4098d23 100644 > --- a/tests/TestSuite_vf_l3fwd.py > +++ b/tests/TestSuite_vf_l3fwd.py > @@ -107,27 +107,30 @@ class TestVfL3fwd(TestCase): > """ > self.setup_vf_env_flag =3D 0 >=20 > - def setup_vf_env(self, host_driver=3D'default'): > + def setup_vf_env(self, host_driver=3D'default', vf_driver=3D'vfio-pc= i'): > """ > require enough PF ports,using kernel or dpdk driver, create 1 VF= from > each PF. > """ > + if host_driver !=3D "default" and host_driver !=3D "igb_uio": > + self.logger.error("only support kernel driver and > + igb_uio!") > self.used_dut_port =3D [port for port in self.dut_ports] > self.sriov_vfs_port =3D [] > for i in valports: > - if host_driver !=3D '': > - self.dut.generate_sriov_vfs_by_port(self.used_dut_port[i= ], 1) > + if host_driver =3D=3D 'default': > + h_driver =3D self.dut.ports_info[i]['port'].default_dri= ver > + > + self.dut.generate_sriov_vfs_by_port(self.used_dut_port[i], 1, > + driver=3Dh_driver) > else: > - self.dut.generate_sriov_vfs_by_port(self.used_dut_port[i= ], 1, > host_driver) > + > + self.dut.generate_sriov_vfs_by_port(self.used_dut_port[i], 1, > + driver=3Dhost_driver) > sriov_vfs_port =3D self.dut.ports_info[self.used_dut_port[i]= ]['vfs_port'] > self.sriov_vfs_port.append(sriov_vfs_port) > # bind vf to vf driver > try: > for i in valports: > for port in self.sriov_vfs_port[i]: > - port.bind_driver(self.vf_driver) > + port.bind_driver(vf_driver) > time.sleep(1) > # set vf mac address. > - if host_driver =3D=3D '': > + if host_driver =3D=3D 'default': > for i in valports: > pf_intf =3D self.dut.ports_info[i]['port'].get_inter= face_name() > self.dut.send_expect("ip link set %s vf 0 mac %s" % = (pf_intf, > self.vfs_mac[i]), "#") @@ -154,14 +157,10 @@ class TestVfL3fwd(TestCase): > self.host_testpmd.execute_cmd('quit', '# ') > self.host_testpmd =3D None > for i in valports: > - if getattr(self, '%d' % self.used_dut_port[i], None) is not = None: > + if 'vfs_port' in self.dut.ports_info[self.used_dut_port[i]].= keys(): > self.dut.destroy_sriov_vfs_by_port(self.used_dut_port[i]= ) > port =3D self.dut.ports_info[self.used_dut_port[i]]['por= t'] > - port.bind_driver() > self.used_dut_port[i] =3D None > - for port_id in self.dut_ports: > - port =3D self.dut.ports_info[port_id]['port'] > - port.bind_driver() > self.setup_vf_env_flag =3D 0 >=20 > def flows(self): > @@ -260,11 +259,11 @@ class TestVfL3fwd(TestCase): > self.dut.close_session(l3fwd_session) > self.result_table_print() >=20 > - def measure_vf_performance(self, host_driver=3D'default'): > + def measure_vf_performance(self, host_driver=3D'default', vf_driver= =3D'vfio- > pci'): > """ > start l3fwd and run the perf test > """ > - self.setup_vf_env(host_driver) > + self.setup_vf_env(host_driver, vf_driver) > eal_param =3D "" > for i in valports: > eal_param +=3D " -w " + self.sriov_vfs_port[i][0].pci @@ -28= 1,17 > +280,54 @@ class TestVfL3fwd(TestCase): > for j in range(self.queue): > queue_config +=3D "({0}, {1}, {2})," .format(i, j, core_= list[m]) > m +=3D 1 > - cmdline =3D "./examples/l3fwd/build/l3fwd -c {0} -n 4 {1} -- -p = {2} --config > '{3}' ". \ > + cmdline =3D "./examples/l3fwd/build/l3fwd -c {0} -n 4 {1} -- -p > + {2} --config '{3}' --parse-ptype". \ > format(core_mask, eal_param, port_mask, queue_config) > self.perf_test(cmdline) >=20 > - def test_perf_kernel_pf_dpdk_vf_perf_host_only(self): > + def get_kernel_pf_vf_driver(self): > + if self.vf_driver =3D=3D "igb_uio" or self.vf_driver =3D=3D "vfi= o-pci": > + vf_driver =3D self.vf_driver > + elif self.drivername =3D=3D "igb_uio" or self.drivername =3D=3D = "vfio-pci": > + vf_driver =3D self.drivername > + else: > + vf_driver =3D "vfio-pci" > + return vf_driver >=20 > - self.measure_vf_performance(host_driver=3D'') > + def test_perf_kernel_pf_dpdk_vf_perf_host_only(self): > + self.measure_vf_performance(host_driver=3D'default', > + vf_driver=3Dself.get_kernel_pf_vf_driver()) >=20 > def test_perf_dpdk_pf_dpdk_vf_perf_host_only(self): > + for idx in self.dut_ports: > + self.verify(self.dut.ports_info[idx]['port'].default_driver > + !=3D 'ice', 'Columbiaville do not support generate vfs from igb_uio') > + > + if self.drivername !=3D "igb_uio": > + self.logger.warning("Use igb_uio as host driver for testing > + instead of %s" % self.drivername) > + > + self.dut.setup_modules_linux(self.target, 'igb_uio', '') > + self.measure_vf_performance(host_driver=3D'igb_uio', > + vf_driver=3D'igb_uio') > + > + def test_perf_kernel_pf_dpdk_iavf_perf_host_only(self): > + """ > + Need to change dpdk code to test FVL iavf. > + CVL iavf testing is same as FVL VF, so use > dpdk_pf_dpdk_vf_perf_host_only to test CVL iavf > + """ > + for idx in self.dut_ports: > + self.verify(self.dut.ports_info[idx]['port'].default_driver > + =3D=3D 'i40e', 'The case is only designed for Fortville') > + > + self.build_iavf() > + self.dut.build_dpdk_apps("./examples/l3fwd") > + self.measure_vf_performance(host_driver=3D'default', > + vf_driver=3Dself.get_kernel_pf_vf_driver()) >=20 > - self.measure_vf_performance(host_driver=3Dself.vf_driver) > + def build_iavf(self): > + self.dut.send_expect("sed -i > '/{ RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, > IAVF_DEV_ID_ADAPTIVE_VF) },/a { RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, > IAVF_DEV_ID_VF) },' drivers/net/iavf/iavf_ethdev.c", "# ") > + self.dut.send_expect("sed -i -e '/I40E_DEV_ID_VF/s/0x154C/0x164C= /g' > drivers/net/i40e/base/i40e_devids.h", "# ") > + self.dut.build_install_dpdk(self.target) > + > + def restore_dpdk(self): > + if self.running_case =3D=3D > "test_perf_kernel_pf_dpdk_iavf_perf_host_only": > + self.dut.send_expect("sed -i > '/{ RTE_PCI_DEVICE(IAVF_INTEL_VENDOR_ID, IAVF_DEV_ID_VF) }/d' > drivers/net/iavf/iavf_ethdev.c", "# ") > + self.dut.send_expect("sed -i -e > '/I40E_DEV_ID_VF/s/0x164C/0x154C/g' > drivers/net/i40e/base/i40e_devids.h", "# ") > + self.dut.build_install_dpdk(self.target) >=20 > def set_fields(self): > """ > @@ -301,11 +337,8 @@ class TestVfL3fwd(TestCase): > return fields_config >=20 > def tear_down(self): > - > - if self.setup_vf_env_flag =3D=3D 1: > - self.destroy_vf_env() > - for port_id in self.dut_ports: > - self.dut.destroy_sriov_vfs_by_port(port_id) > + self.destroy_vf_env() > + self.restore_dpdk() >=20 > def tear_down_all(self): > - pass > + self.dut.bind_interfaces_linux(self.drivername) > -- > 1.8.3.1