From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 9F7582A9 for ; Mon, 10 Nov 2014 03:55:54 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 09 Nov 2014 19:05:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,349,1413270000"; d="scan'208";a="605077907" Received: from orsmsx103.amr.corp.intel.com ([10.22.225.130]) by orsmga001.jf.intel.com with ESMTP; 09 Nov 2014 19:05:35 -0800 Received: from orsmsx158.amr.corp.intel.com (10.22.240.20) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.195.1; Sun, 9 Nov 2014 19:05:35 -0800 Received: from fmsmsx151.amr.corp.intel.com (10.18.125.4) by ORSMSX158.amr.corp.intel.com (10.22.240.20) with Microsoft SMTP Server (TLS) id 14.3.195.1; Sun, 9 Nov 2014 19:05:34 -0800 Received: from fmsmsx105.amr.corp.intel.com ([169.254.4.250]) by FMSMSX151.amr.corp.intel.com ([169.254.7.33]) with mapi id 14.03.0195.001; Sun, 9 Nov 2014 19:05:35 -0800 From: "Patel, Rashmin N" To: Thomas Monjalon , "dev@dpdk.org" Thread-Topic: [dpdk-dev] vmware vmxnet3-usermap AND DPDK VMXNET3 PMD Thread-Index: AQHP+iSI7L6svVjHS0uL0FmAo0W87ZxVX81ggAQYxYD//7R5oA== Date: Mon, 10 Nov 2014 03:05:34 +0000 Message-ID: References: <19938383.Nzijdctg6i@xps13> In-Reply-To: <19938383.Nzijdctg6i@xps13> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.1.200.106] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: Aziz Hajee Subject: Re: [dpdk-dev] vmware vmxnet3-usermap AND DPDK VMXNET3 PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2014 02:55:55 -0000 I wasn't sure about why anyone would "avoid using UIO just for Virtio even = though other devices need uio/vfio in DPDK." I mean I haven't seen anyone u= sing that way and performance wise they both are similar. But anyways here are the major reasons we had Intel versions: 1. Intel Virtio-PMD version=20 - was elegantly integrated in DPDK code tree and to keep consistency it us= es UIO/VFIO framework just like any other PMDs in DPDK/lib=20 2. Intel VMXNET3-PMD=20 - does not depend on any other module (i.e. vmxnet3 plugin depends on vmxn= et3-usermap.ko module) - was elegantly integrated in DPDK code tree and to= keep consistency it uses UIO/VFIO framework just like any other PMDs in DP= DK/lib - is the version VMware contributes today as they think it's a better idea= and they would provide ESXi support for that if they need to Thanks, Rashmin -----Original Message----- From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]=20 Sent: Sunday, November 09, 2014 4:18 PM To: dev@dpdk.org Cc: Patel, Rashmin N; Aziz Hajee Subject: Re: [dpdk-dev] vmware vmxnet3-usermap AND DPDK VMXNET3 PMD Hi, 2014-11-07 16:53, Patel, Rashmin N: > Yes, you're right DPDK VMXNET3-PMD in /lib/librte_pmd_vmxnet3 does not=20 > support mbuf chaining today. But it's a standalone bsd driver just=20 > like any other pmd in that directory, it does not need vmxnet3-usermap.ko= module. >=20 > Now there is another vmxnet3 solution in a separate branch as a=20 > plugin, which must have vmxnet3-usermap.ko linux module(1), and a user=20 > space interface piece(2) to tie it to any DPDK application in the main br= anch. > (1) and (2) makes the solution which is known as vmxnet3-plugin. It's=20 > been there for a long time just like virtio-plugin, I don't know who=20 > uses it, but community can *reply* here if there is still any need of=20 > a separate solution that way. Coming back to last year, 6WIND developped some PMDs for virtio and vmxnet3= . Later, Intel developped their own version using the uio framework. The versions in the main repository are the Intel ones, whereas the origina= l ones from 6WIND are released as extensions. For completeness, it must be noted that Brocade worked on their own approac= h of vmxnet3 and contributed to virtio PMD. It's now time to merge all these implementations. The 6WIND implementations show that it's possible to avoid the uio framewor= k. The virtio-net-pmd use port access granted by iopl(). The vmxnet3-usermap reuse the VMware's kernel module with a special mode fo= r memory mapping. It was a pre-bifurcated logic. > I'm in favor of consolidating all those version into one elegant=20 > solution by grabbing best features from all of them and maintain one=20 > copy. I'm sure that developers contributing from VMware would also=20 > support that idea because then it makes easy to maintain and debug and=20 > bug fix and most importantly avoid such confusion in future. > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Aziz Hajee > Sent: Thursday, November 06, 2014 5:47 PM > To: dev@dpdk.org > Subject: [dpdk-dev] vmware vmxnet3-usermap AND DPDK VMXNET3 PMD >=20 > I am using the dpdk1.6.0r1 > I could not find a complete clarification, sorry if missed. > VMXNET3 PMD > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > I have enabled the VMXNET3 PMD in the dpdk. > # Compile burst-oriented VMXNET3 PMD driver # >=20 > CONFIG_RTE_LIBRTE_VMXNET3_PMD=3Dy > CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_INIT=3Dy > CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=3Dn > CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=3Dn > CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=3Dn > The Intel DPDK VMXNET3 PMD driver does not support mbuf chaining, and I h= ave to set NOMULTSEGS for the vmxnet3 interface init to succeed. > tx_conf.txq_flags =3D ETH_TXQ_FLAGS_NOMULTSEGS Is there a later version= =20 > of DPDK that supports multiseg for the dpdk > VMXNET3 PMD. >=20 > vmware vmxnet3-usermap AND DPDK VMXNET3 PMD=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Is the vmxnet3-usermap.ko module driver also needed ? (appears that I nee= d, otherwise the eal initialise fails. > sudo insmod ./vmxnet3-usermap.ko enable_shm=3D2,2 num_rqs=3D1,1=20 > num_rxds=3D2048 > num_txds=3D2048 >=20 > I do not understand if VMXNET3 PMD is there, what is the purpose of /vmxn= et3-usermap.ko/vmxnet3-usermap.ko ? >=20 > From some responses i saw that the following ifdef RTE_EAL_UNBIND_PORTS i= s also need to be removed in lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c ? > { > .name =3D "rte_vmxnet3_pmd", > .id_table =3D pci_id_vmxnet3_map, -#ifdef RTE_EAL_UNBIND_PORTS > +// #ifdef RTE_EAL_UNBIND_PORTS > .drv_flags =3D RTE_PCI_DRV_NEED_IGB_UIO, -#endif > +// #endif > }, > .eth_dev_init =3D eth_vmxnet3_dev_init, > .dev_private_size =3D sizeof(struct vmxnet3_adapter), >=20 > thanks, > -aziz