From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ig0-f179.google.com (mail-ig0-f179.google.com [209.85.213.179]) by dpdk.org (Postfix) with ESMTP id 6CAA4677B for ; Fri, 31 Oct 2014 00:57:12 +0100 (CET) Received: by mail-ig0-f179.google.com with SMTP id r10so21355igi.6 for ; Thu, 30 Oct 2014 17:06:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=75pPrPQVzG39FreLvRMXYGGkZw+Z9n5VoZxIbeyYzsY=; b=AtZDZBpILFLORph79Gzpj59y27yEG02dc2+/QQ9Uw68c8RIgtJBqyAfrXDeP4nNdYR RJHWb8hdTVvqS2EVXF9lv25eLwur7unyKLNvMlRgPBLZgupAiZUp0oX1yMuQL0B+Bvut HWzSUA0w82HsvQOgBLaHF5jMgpr4kVutWt2Oug4vclSKIV4DOsVoz8UoJ3R0U52SVY+b XjPAg0ikK+hRfuuRlHUw4qYs/dL5qXnf3t/qhJsV4wUW9GmyKtvkhd4dlkbYD/4+H3ah BcJvPL7ToLUgiFrAx2qLDU8dUkopKQ1jcrBl04vcOz0hrq6gnXiWHnFbfHa85XJmrdsF H51w== X-Received: by 10.107.150.207 with SMTP id y198mr14043545iod.59.1414713969838; Thu, 30 Oct 2014 17:06:09 -0700 (PDT) MIME-Version: 1.0 Received: by 10.64.171.10 with HTTP; Thu, 30 Oct 2014 17:05:49 -0700 (PDT) In-Reply-To: References: From: Shivapriya Hiremath Date: Thu, 30 Oct 2014 17:05:49 -0700 Message-ID: To: "Zhou, Danny" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] Why do we need iommu=pt? 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: Thu, 30 Oct 2014 23:57:12 -0000 Thank you Danny. This is helpful info. Regards, Shivapriya Hiremath On Thu, Oct 30, 2014 at 4:22 PM, Zhou, Danny wrote: > Shivapriya, Alex > > There is obvious performance (up to 40% perf. drop) impact to DPDK 64B > small packet performance when =E2=80=9Ciommu =3D on=E2=80=9D on Sandybrid= ge, due to known > issue on its IOTBL huge page support. If you config kernel parameter with > =E2=80=9Ciommu =3D pt=E2=80=9D on SandyBridge, or upgrade your process t= o IvyBridge/Haswell, > there is NO performance impact for 10G NIC. > > -Danny > > From: Shivapriya Hiremath [mailto:shivpri.b@gmail.com] > Sent: Tuesday, October 28, 2014 1:28 AM > To: Zhou, Danny > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] Why do we need iommu=3Dpt? > > Hi Danny, > > Your reply was very helpful in understanding the impact. Can you please > tell us if you saw any performance impact to DPDK when iommu=3Don ? > > -Shivapriya > > > On Wed, Oct 22, 2014 at 8:21 AM, Zhou, Danny wrote= : > Echo Cunming and we did not see obvious performance impact when iommu =3D= pt > is used despite of > igb_uio or VFIO is used. > > Alex, > The map and umap operation for each e/ingress packet is done by hw rather > than sw, so > performance impact to DPDK should be minimum in my mind. If it actually > impacst perf, say on 100G NIC, > I am sure it will be resolved in next generation Intel silicon. We will b= e > performing some performance > tests with iommu =3D on to see any performance degradation. I cannot shar= e > the detailed performance > result here on the community, but I could tell if it really bring negativ= e > performance impact to DPDK. > Please stay tuned. > > Alex, > > > -----Original Message----- > > From: Liang, Cunming > > Sent: Wednesday, October 22, 2014 4:53 PM > > To: alex; Zhou, Danny > > Cc: dev@dpdk.org > > Subject: RE: [dpdk-dev] Why do we need iommu=3Dpt? > > > > I thinks it's a good point using dma_addr rather than phys_addr. > > Without iommu, the value of them are the same. > > With iommu, the dma_addr value equal to the iova. > > It's not all for DPDK working with iommu but not pass through. > > > > We know each iova belongs to one iommu domain. > > And each device can attach to one domain. > > It means the iova will have coupling relationship with domain/device. > > > > Looking back to DPDK descriptor ring, it's all right, already coupling > with device. > > But if for mbuf mempool, in most cases, it's shared by multiple ports. > > So if keeping the way, all those ports/device need to put into the same > iommu domain. > > And the mempool has attach to specific domain, but not just the device. > > On this time, iommu domain no longer be transparent in DPDK. > > Vfio provide the verbs to control domain, we still need library to > manager such domain with mempool. > > > > All that overhead just make DPDK works with iommu in host, but remember > pt always works. > > The isolation of devices mainly for security concern. > > If it's not necessary, pt definitely is a good choice without > performance impact. > > > > For those self-implemented PMD using the DMA kernel interface to set up > its mappings appropriately. > > It don't require "iommu=3Dpt". The default option "iommu=3Don" also wor= ks. > > > > > -----Original Message----- > > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of alex > > > Sent: Wednesday, October 22, 2014 3:36 PM > > > To: Zhou, Danny > > > Cc: dev@dpdk.org > > > Subject: Re: [dpdk-dev] Why do we need iommu=3Dpt? > > > > > > Shiva. > > > The cost of disabling iommu=3Dpt when intel_iommu=3Don is dire. DPDK = won't > work > > > as the RX/TX descriptors will be useless. > > > Any dam access by the device will be dropped as no dam-mapping will > exists. > > > > > > Danny. > > > The IOMMU hurts performance in kernel drivers which perform a map and > umap > > > operation for each e/ingress packet. > > > The costs of unmapping when under strict protection limit a +10Gb to > 3Gb > > > with cpu maxed out at 100%. DPDK apps shouldn't feel any difference > IFF the > > > rx descriptors contain iova and not real physical addresses which are > used > > > currently. > > > > > > > > > On Tue, Oct 21, 2014 at 10:10 PM, Zhou, Danny > wrote: > > > > > > > IMHO, if memory protection with IOMMU is needed or not really > depends on > > > > how you use > > > > and deploy your DPDK based applications. For Telco network middle > boxes, > > > > which adopts > > > > a "close model" solution to achieve extremely high performance, the > entire > > > > system including > > > > HW, software in kernel and userspace are controlled by Telco vendor= s > and > > > > assumed trustable, so > > > > memory protection is not so important. While for Datacenters, which > > > > generally adopts a "open model" > > > > solution allows running user space applications(e.g. tenant > applications > > > > and VMs) which could > > > > direct access NIC and DMA engine inside the NIC using modified DPDK > PMD > > > > are not trustable > > > > as they can potentially DAM to/from arbitrary memory regions using > > > > physical addresses, so IOMMU > > > > is needed to provide strict memory protection, at the cost of > negative > > > > performance impact. > > > > > > > > So if you want to seek high performance, disable IOMMU in BIOS or > OS. And > > > > if security is a major > > > > concern, tune it on and tradeoff between performance and security. > But I > > > > do NOT think is comes with > > > > an extremely high performance costs according to our performance > > > > measurement, but it probably true > > > > for 100G NIC. > > > > > > > > > -----Original Message----- > > > > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Shivapriya > Hiremath > > > > > Sent: Wednesday, October 22, 2014 12:54 AM > > > > > To: Alex Markuze > > > > > Cc: dev@dpdk.org > > > > > Subject: Re: [dpdk-dev] Why do we need iommu=3Dpt? > > > > > > > > > > Hi, > > > > > > > > > > Thank you for all the replies. > > > > > I am trying to understand the impact of this on DPDK. What will b= e > the > > > > > repercussions of disabling "iommu=3Dpt" on the DPDK performance? > > > > > > > > > > > > > > > On Tue, Oct 21, 2014 at 12:32 AM, Alex Markuze > wrote: > > > > > > > > > > > DPDK uses a 1:1 mapping and doesn't support IOMMU. IOMMU allow= s > for > > > > > > simpler VM physical address translation. > > > > > > The second role of IOMMU is to allow protection from unwanted > memory > > > > > > access by an unsafe devise that has DMA privileges. > Unfortunately this > > > > > > protection comes with an extremely high performance costs for > high > > > > speed > > > > > > nics. > > > > > > > > > > > > To your question iommu=3Dpt disables IOMMU support for the > hypervisor. > > > > > > > > > > > > On Tue, Oct 21, 2014 at 1:39 AM, Xie, Huawei < > huawei.xie@intel.com> > > > > wrote: > > > > > > > > > > > >> > > > > > >> > > > > > >> > -----Original Message----- > > > > > >> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of > Shivapriya > > > > > >> Hiremath > > > > > >> > Sent: Monday, October 20, 2014 2:59 PM > > > > > >> > To: dev@dpdk.org > > > > > >> > Subject: [dpdk-dev] Why do we need iommu=3Dpt? > > > > > >> > > > > > > >> > Hi, > > > > > >> > > > > > > >> > My question is that if the Poll mode driver used the DMA > kernel > > > > > >> interface > > > > > >> > to set up its mappings appropriately, would it still require > that > > > > > >> iommu=3Dpt > > > > > >> > be set? > > > > > >> > What is the purpose of setting iommu=3Dpt ? > > > > > >> PMD allocates memory though hugetlb file system, and fills the > > > > physical > > > > > >> address > > > > > >> into the descriptor. > > > > > >> pt is used to pass through iotlb translation. Refer to the > below link. > > > > > >> http://lkml.iu.edu/hypermail/linux/kernel/0906.2/02129.html > > > > > >> > > > > > > >> > Thank you. > > > > > >> > > > > > > > > > > > > > > > > > >