From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <shivpri.b@gmail.com>
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 <dev@dpdk.org>; Fri, 31 Oct 2014 00:57:12 +0100 (CET)
Received: by mail-ig0-f179.google.com with SMTP id r10so21355igi.6
 for <dev@dpdk.org>; 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: <DFDF335405C17848924A094BC35766CF0A987C88@SHSMSX104.ccr.corp.intel.com>
References: <CAKU5Fo_7fQHcYa-1ZBX8=D0SCkxZL8VLEpWYtJ6rG4DpV=g3gw@mail.gmail.com>
 <C37D651A908B024F974696C65296B57B0F2CD832@SHSMSX101.ccr.corp.intel.com>
 <CAKfHP0U-v2fLQwyEa3KBZs3kXpVMQdLU+WgLzQq6xxmrb3Brtg@mail.gmail.com>
 <CAKU5Fo-djWmG46gCYUScqOwJzDFoAwPvJvUrBdwss+D=nHLVqA@mail.gmail.com>
 <DFDF335405C17848924A094BC35766CF0A97795F@SHSMSX104.ccr.corp.intel.com>
 <CAKfHP0WstpCYb0POKP_bOt36+qfcAGj-j=ij9BeCZifRjJ080g@mail.gmail.com>
 <D0158A423229094DA7ABF71CF2FA0DA311851099@shsmsx102.ccr.corp.intel.com>
 <DFDF335405C17848924A094BC35766CF0A97AF0A@SHSMSX104.ccr.corp.intel.com>
 <CAKU5Fo8JrDmRsXLfaXzR2xkF2o5jRqRpgCAE3L9HeNGM3Krcyw@mail.gmail.com>
 <DFDF335405C17848924A094BC35766CF0A987C88@SHSMSX104.ccr.corp.intel.com>
From: Shivapriya  Hiremath <shivpri.b@gmail.com>
Date: Thu, 30 Oct 2014 17:05:49 -0700
Message-ID: <CAKU5Fo-emZQVQEibAUXja29a22FGkUANz=b2=dp4r3F__T2gog@mail.gmail.com>
To: "Zhou, Danny" <danny.zhou@intel.com>
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" <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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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 <danny.zhou@intel.com> 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 <danny.zhou@intel.com> 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 <danny.zhou@intel.com>
> 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 <alex@weka.io>
> 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.
> > > > > >>
> > > > > >
> > > > > >
> > > >
>
>