From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Santosh.Shukla@cavium.com>
Received: from NAM01-BN3-obe.outbound.protection.outlook.com
 (mail-bn3nam01on0059.outbound.protection.outlook.com [104.47.33.59])
 by dpdk.org (Postfix) with ESMTP id A788C2C2F
 for <dev@dpdk.org>; Tue,  5 Sep 2017 10:59:48 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=tVRZoAxvTuXTHa1ht9CfrnuV1VgLvb1xAPJwJKmCW08=;
 b=MQwrcUG2L+eE5cgSKwVy2JxX1a0cKOcGiXetPvENWI9JDKBFQlyFh3illY0dwYZp3A3rZYMPMGLwHeGpDnSsbK4hWcgd1+IsPvA7B8sJ3jYhIh5goK2TdSeCsEySlluI84GFiAg7aqHlPqIw/RZdhlCd/dcv2Xe44tEBzUeGcvc=
Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Santosh.Shukla@cavium.com; 
Received: from [10.89.1.3] (14.140.2.178) by
 DM5PR07MB3099.namprd07.prod.outlook.com (10.172.85.9) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id
 15.20.13.10; Tue, 5 Sep 2017 08:59:41 +0000
To: "Burakov, Anatoly" <anatoly.burakov@intel.com>,
 "dev@dpdk.org" <dev@dpdk.org>
References: <20170814161059.6684-1-santosh.shukla@caviumnetworks.com>
 <20170831032618.7120-1-santosh.shukla@caviumnetworks.com>
 <20170831032618.7120-4-santosh.shukla@caviumnetworks.com>
 <C6ECDF3AB251BE4894318F4E45123697822939D2@IRSMSX109.ger.corp.intel.com>
 <b3121e56-7fe4-cf88-c2a8-d6308491bb7d@caviumnetworks.com>
 <C6ECDF3AB251BE4894318F4E4512369782293C66@IRSMSX109.ger.corp.intel.com>
Cc: "thomas@monjalon.net" <thomas@monjalon.net>,
 "jerin.jacob@caviumnetworks.com" <jerin.jacob@caviumnetworks.com>,
 "hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>,
 "olivier.matz@6wind.com" <olivier.matz@6wind.com>,
 "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>,
 "Gonzalez Monroy, Sergio" <sergio.gonzalez.monroy@intel.com>,
 "Richardson, Bruce" <bruce.richardson@intel.com>,
 "shreyansh.jain@nxp.com" <shreyansh.jain@nxp.com>,
 "gaetan.rivet@6wind.com" <gaetan.rivet@6wind.com>,
 "stephen@networkplumber.org" <stephen@networkplumber.org>,
 "aconole@redhat.com" <aconole@redhat.com>
From: santosh <santosh.shukla@caviumnetworks.com>
Message-ID: <ae6f0ed1-f4ef-bd5b-b585-0aae9a5752be@caviumnetworks.com>
Date: Tue, 5 Sep 2017 14:29:34 +0530
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <C6ECDF3AB251BE4894318F4E4512369782293C66@IRSMSX109.ger.corp.intel.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
X-Originating-IP: [14.140.2.178]
X-ClientProxiedBy: MWHPR04CA0107.namprd04.prod.outlook.com (10.174.173.48) To
 DM5PR07MB3099.namprd07.prod.outlook.com (10.172.85.9)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e0306e47-db58-4e4e-69f9-08d4f43c74dc
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);
 SRVR:DM5PR07MB3099; 
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099;
 3:EGlGRA9IQbui7aCPNnX/IxXajnUN0/737NPBAMvkSJ3NNhVLkSuuqbxIgaxM3F3+lL94T+7WbiX4DBfx98DTtqkSO3Ew1Ql6WKCBeCp+JiQWESf8WQ80TMH23J0IbkRjZ7+KKxlIBMQMPTGwoqF87cE+Q5fXdFQus0Er+moZdD4lTApSBSdEHniVURBvZuKlkcLb/JkdBVV9QpU/I6XVWNkF6Q5ZyJdFZ/FiWi+eAy38R026M+iwu8vxIbGSk8sX;
 25:4svTy4nh/kku/3vflaFuTkW3rGAAcpENFXGViPhD09R9u+wbpWnTahsgCes2XSBAdc1CpEWWSHxEVfz8uVVkBY1xY8BwXetiHl5jJnVb69qGT81dmIbXGsbhqHoqmr2UXgv2pGGmXp0gMICsVxa72BALjgelvamS3BcZE3w9Q33k5E4Lm+NIJDEdqJByA/XmUUnVHAaGQ5bopCuWL8G8q9R+ckRdn/Vo48uMhysQDiH6XujHEv0fcGW6UMtBiKuEKbbcJ0sIQ4iL7eev49oxRiFZE3V3/QqRv48D6Wzn4cAwpuyV6cHQHUevmcK0VXlBiZ4vM+pm1rooGUXUuqDsZw==;
 31:2cIT9kltFYntkw6/N/Wuvg9yjicXDSWTuO8EABZb5v6lVEbIJbmk6pFnXHpDxxh9FER0MHjrRJ/XpUg7uURA8FKwrXQTuegdRC5tjubkJxCrOpfo+l7foSLJVfXhAMJObL91WzNPKZ9s5niFCL+t93DX4fOooNWgjgnNTpNJycONQkWScCap1cxvFQgMDaYeCBVLVbrdN4KdN4WUNWBcN1ynTnpGwh4k1wjGwBTeKxQ=
X-MS-TrafficTypeDiagnostic: DM5PR07MB3099:
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099;
 20:86mWfVhpE8A9SZVZtZK6ycTgnpkKgzWeeWDB/+kWR1gjuzRo6XbIEum41+jRHb1dyU5DebNnX7X8C63nVpJ9iAtEBBOmoM9/uq6x63skdRlCaWXxScUCMIGtlitF+AQQ9hvvyETqEKyOT2EFv0aGlztPzr6FPRZylttM6I4xBjsiD+c48QuKeXCh7drWqAhHvdpQRQyPbyMw4ca3WlUku81F5AUdhSoVWfhS81H+wKqqcqrgjzHyemeJguoBHQVUXeorapvQ/OTaBXrgNlBaQtd4ru3pBIXvxkQw18mn2yMsHqV549tCDcO7ZxBxYD0epmgGqmyqjuKQihSnraO1IALmwh9V60cBgEClv2l9C/TIx/eNYLLo/Gig4eZ/30uHEf2kuCBIcNMc1onamcbUpwE2UwpWFptitBuNaUfjwD1nVea3XuRKHj9z8J8hWqZeUZny6OdMH/UaoT9bQhogAV6p4bGyG8QosiZx6sCHgYAFpHWaJ3XC1lV09iH8QdHlHKezSOTOSq2MmM9cb/lNxb9g/QIbtKwsDs+DrXk89uTryELDdQLrTwbW8hbC2SgrRZS0QQtMuK1W1p5geAXoqUKxuXlIvxcC1T/T/HueJ7Y=
X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(228905959029699);
X-Microsoft-Antispam-PRVS: <DM5PR07MB30990BB5C83A87A04E6DB31DEA960@DM5PR07MB3099.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:DM5PR07MB3099; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:DM5PR07MB3099; 
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099;
 4:ubDcyStXtkbgRM3Xzw/jqnaX6VJlQQEishh30U9og11IiGJTCg4Zv4o4yusCMuG/xXXHPHuSzSzQuoX674L60GVeT+jUFm5dZwQXSnKXPkpBK3aoQVj6BHUL0IYSSo+rR/G9AjqC4yUEemFEsPDEWmYAjQJCpGt6ZPzqudcyCqmuS1KPZJJsaY/n1IXtV5cy+1YSgmYDA0GB8ViZaOvBE9xLsCSmiPu6LkuMubwigXcAOmwV5C1mzk7McHTdeu7pzbI4rGUzMt99jWiIgSQiCffq+mQMYBefI3Spw5syUHryT6wfuriy/k8QDEZ3ozsBs+41FnAHGn156tC9USxSLw==
X-Forefront-PRVS: 0421BF7135
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(6009001)(6049001)(189002)(377454003)(199003)(24454002)(64126003)(31696002)(31686004)(2950100002)(5890100001)(105586002)(8656003)(42882006)(106356001)(7416002)(101416001)(90366009)(33646002)(6246003)(189998001)(4001350100001)(97736004)(68736007)(4326008)(6666003)(2906002)(2501003)(50466002)(93886005)(77096006)(76176999)(7736002)(50986999)(54356999)(305945005)(42186005)(6486002)(86152003)(54906002)(47776003)(65826007)(478600001)(83506001)(36756003)(25786009)(230700001)(53546010)(72206003)(5009440100003)(5660300001)(23746002)(65806001)(53936002)(81166006)(6116002)(229853002)(3846002)(81156014)(66066001)(65956001)(8676002)(8936002)(110426004);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3099; H:[10.89.1.3]; FPR:; SPF:None;
 PTR:InfoNoRecords; MX:1; A:1; LANG:en; 
Received-SPF: None (protection.outlook.com: cavium.com does not designate
 permitted sender hosts)
X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; DM5PR07MB3099;
 23:mnlFjICZnZH4UYHjLKGV+IlYA4nLkUrlBHy6l?=
 =?Windows-1252?Q?vwX9xfK1RoynYKtRWo8wG9v3IBbd7FFzMR8l9RPOPfCAgGoyQeFe28Mq?=
 =?Windows-1252?Q?XmXChRkdEkR7Dj5A4rkGKlwsu5IpGSxMT3ltbMoHJ1PTQd2lJjE2SIQA?=
 =?Windows-1252?Q?33oDq4hkM5k+PS1us6wSALtlVN/FAYTWYabAhv58AZ7AHZ2LTDuia9r7?=
 =?Windows-1252?Q?fZmJlSrdhfLSU9K4U5u5FILef2Y3Qmu7kf+A2cgHkrzZbVpYlVwyMMTN?=
 =?Windows-1252?Q?fAE7eX2EakXcYMiGjZJMCNt5j79qpJmhw21cLYS9iM3Zppvcq9hq+8iY?=
 =?Windows-1252?Q?hqGcO/3gvPKUDg8hZv6exRhlum1POTwlJactK8YMpa+qyIcNe01/xqG8?=
 =?Windows-1252?Q?v/gSrwIMLh4qZSI6v0thsATGlIwER5z2a9qxkqm2Mxe/zEiX68RSFNp9?=
 =?Windows-1252?Q?6bcWn0trIrf5zv9021f1IkpcJs2Vy/8CyuqjwaCYH/T586eyWdCCCBMs?=
 =?Windows-1252?Q?xwli1Km4xAmCi4/j7Y6zzX9PoVnrihqX7yJB9I6KaBFgdea9XX0OiBmI?=
 =?Windows-1252?Q?YC7v6vOfDnTjw0QArKoMsmGib/ws9yU8JqcpAprVhvABnWlD9iJ2fZU3?=
 =?Windows-1252?Q?ysZOQuT1vAVbhEmde/zZa0i2Nejo3HrSGkR9a56lBeDFFcf37GYFSCi2?=
 =?Windows-1252?Q?/gNs4IvqXA48GfdrVpZaU3VtP+abN9ipnXkPmFXhv+fp00WWPTDbvufR?=
 =?Windows-1252?Q?GRZPAvjRu3/+jWwyxQYGVgfnIJAmlNHj0G2sxYw/pd+xSjDu/76eD7++?=
 =?Windows-1252?Q?DTBhN2kGxMhO18RXnHFwG3iY3YWeLx4qZ+zzI5DsnJFnPZIWDduZ21C0?=
 =?Windows-1252?Q?c8gNZL0xeVLiNg/K7iAN5YV9YC84FPDpWFyrYv+vG/i/yAQIQPq+gbtG?=
 =?Windows-1252?Q?4W+Q6ZrpXaGFdmAJZ85N5cQ0p9M9JvSTJ7F2sCybLwEZYMMVo2eoloJu?=
 =?Windows-1252?Q?3al7urrAHKIJJaLYBSeZsPVvqUOc1jjSi+8yuVJBVzxdp0xexR6xxvln?=
 =?Windows-1252?Q?Cl7i4XHHhlZ8q6SZMgMiBTxc4BDFys3aoRxxZYQF5QemGNcFGdrZJUPL?=
 =?Windows-1252?Q?gqvYmrDGVHg+MNbzL7P5cp+2bzkIGwXgfZFWn83fbYkldPOAQZ0E7okf?=
 =?Windows-1252?Q?xIP4MVpJ7LKdap5+B9pSs5h2Vu/ljhmxUk7s3mauFkmPG458+yBM8X0x?=
 =?Windows-1252?Q?7C4f1GYAkGDe+VThTBSZjmeMb0EiTDgvZVCeUF41cVVj0gA1XW4hkLcm?=
 =?Windows-1252?Q?Pjya1HMT5eIcEoFSF7Cidt9VWqf97A2vd8pSG0hcKeDnvUSG1w/v3+Hq?=
 =?Windows-1252?Q?iDWwefVttdHDnbFn1nqZqv2TE4E0YW4LQ8JMDu6e3clIhCCwKTxe44xI?=
 =?Windows-1252?Q?cHRVEOgZTzUlRM3i+vSgdLtZJI5Rtpoxtr4kC9q1PAOUQzxnLec+IHq+?=
 =?Windows-1252?Q?saY/LEXfXZjR0PZtGvHgktNzYQ5dHtS1c1U0N1sh+lhqAzI6LW+xVDq/?=
 =?Windows-1252?Q?aXRKn/XkFTQ8o4it2gIcTvXy+ynBRlXqnj5ve1Aq1oaTfNvuwsZLWKtf?=
 =?Windows-1252?Q?hd9w6xnYQygVv5dkjZW/ak=3D?=
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099;
 6:rFqvDkM1VZdRBF4xChhUSg2Ljy93xmtK3MtQAZkjpAgZvW6sN8nXXbCQE5eniZeetHPGrc+6NyEsYlYcgXmIoVZfdIWKYYK4oFoiJSwsbloJWPjHMHmN+FUdk9Tr413MnX80uig5+3le66SYXi/R5BqACirELqJqAXjWxttt2rsz759Iyti+JXHiq33szdfmSwK9gKrY1Ob/nmU/B+AjghmE4AobC+0j/xDjjqnrQOAGp0pPfNVZalDr9QDoWRGADxUzJGyZb8cUl6S+g27PaovAqin0Rlp+dpqqRWreFYuEJNQZaysrdegYANyTMvzd9ImAyt4Pu2nl3hu+eBIwFg==;
 5:Q6+hb14r5mjTOY2VbB2tNgTu9Bq5XVwpi9TJte5usYiz1z35BgHn5NaAeA13KUBFyRr+gJm4u8mU/HQxC/BH6lPerM7WXvhwx55aidZtBHWcSH5P49mBFocgDAULCOj7HUvw/p3F3kP6sm5Z23omxg==;
 24:zF0USPsbppR1LLoNKiNWXpgJO1xC/x62o8i6QE7AdyjdfMZBv4KgThXRkPEgOZ7P2DTm9zseJM82L1+ybUZ4ry6q4MyupvvuZhmT5Sf46Gg=;
 7:PSoMLIbb0QR/Ln3RK9mjMk0my/5GHIxY0mzEXGL1sAbxIYFr5tz53P020//hDF7qAkWL8Jrjpdt7U3KGdRjp/yXcR8cHSkXGuKkfkYNQj+E6bMu5DCIIZZHAJfEcF4TwiF5+MVW03LavHvhbJoycoLFSNcZ1/zHz83U0Dju4eeL0ltEBfA6jAR9RNVYDzUKjFreiBesgKFP+OPCVv6QbhTUhwwhDPJAMzQ+yHG+bePs=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2017 08:59:41.4086 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3099
Subject: Re: [dpdk-dev] [PATCH v7 3/9] linuxapp/eal_pci: get iommu class
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <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: Tue, 05 Sep 2017 08:59:49 -0000

Hi Anatoly,


On Tuesday 05 September 2017 02:25 PM, Burakov, Anatoly wrote:
>> From: santosh [mailto:santosh.shukla@caviumnetworks.com]
>> Sent: Tuesday, September 5, 2017 9:48 AM
>> To: Burakov, Anatoly <anatoly.burakov@intel.com>; dev@dpdk.org
>> Cc: thomas@monjalon.net; jerin.jacob@caviumnetworks.com;
>> hemant.agrawal@nxp.com; olivier.matz@6wind.com;
>> maxime.coquelin@redhat.com; Gonzalez Monroy, Sergio
>> <sergio.gonzalez.monroy@intel.com>; Richardson, Bruce
>> <bruce.richardson@intel.com>; shreyansh.jain@nxp.com;
>> gaetan.rivet@6wind.com; stephen@networkplumber.org;
>> aconole@redhat.com
>> Subject: Re: [PATCH v7 3/9] linuxapp/eal_pci: get iommu class
>>
>> Hi Anatoly,
>>
>>
>> On Monday 04 September 2017 08:38 PM, Burakov, Anatoly wrote:
>>>> From: Santosh Shukla [mailto:santosh.shukla@caviumnetworks.com]
>>>> Sent: Thursday, August 31, 2017 4:26 AM
>>>> To: dev@dpdk.org
>>>> Cc: thomas@monjalon.net; jerin.jacob@caviumnetworks.com;
>>>> hemant.agrawal@nxp.com; olivier.matz@6wind.com;
>>>> maxime.coquelin@redhat.com; Gonzalez Monroy, Sergio
>>>> <sergio.gonzalez.monroy@intel.com>; Richardson, Bruce
>>>> <bruce.richardson@intel.com>; shreyansh.jain@nxp.com;
>>>> gaetan.rivet@6wind.com; Burakov, Anatoly
>> <anatoly.burakov@intel.com>;
>>>> stephen@networkplumber.org; aconole@redhat.com; Santosh Shukla
>>>> <santosh.shukla@caviumnetworks.com>
>>>> Subject: [PATCH v7 3/9] linuxapp/eal_pci: get iommu class
>>>>
>>>> Get iommu class of PCI device on the bus and returns preferred iova
>>>> mapping mode for that bus.
>>>>
>>>> Patch also introduces RTE_PCI_DRV_IOVA_AS_VA drv flag.
>>>> Flag used when driver needs to operate in iova=va mode.
>>>>
>>>> Algorithm for iova scheme selection for PCI bus:
>>>> 0. If no device bound then return with RTE_IOVA_DC mapping mode, else
>>>> goto 1).
>>>> 1. Look for device attached to vfio kdrv and has .drv_flag set to
>>>> RTE_PCI_DRV_IOVA_AS_VA.
>>>> 2. Look for any device attached to UIO class of driver.
>>>> 3. Check for vfio-noiommu mode enabled.
>>>>
>>>> If 2) & 3) is false and 1) is true then select mapping scheme as
>> RTE_IOVA_VA.
>>>> Otherwise use default mapping scheme (RTE_IOVA_PA).
>>>>
>>>> Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
>>>> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>>>> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>>>> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
>>>> ---
>>>> v6 --> v7:
>>>> - squashed v6 series patch no [01/12] & [05/12]..
>>>>   i.e.. moved RTE_PCI_DRV_IOVA_AS_VA flag into this patch. (Aaron
>>>> comment).
>>>>
>>>>  lib/librte_eal/common/include/rte_pci.h         |  2 +
>>>>  lib/librte_eal/linuxapp/eal/eal_pci.c           | 95
>>>> +++++++++++++++++++++++++
>>>>  lib/librte_eal/linuxapp/eal/eal_vfio.c          | 19 +++++
>>>>  lib/librte_eal/linuxapp/eal/eal_vfio.h          |  4 ++
>>>>  lib/librte_eal/linuxapp/eal/rte_eal_version.map |  1 +
>>>>  5 files changed, 121 insertions(+)
>>>>
>>>> diff --git a/lib/librte_eal/common/include/rte_pci.h
>>>> b/lib/librte_eal/common/include/rte_pci.h
>>>> index 0e36de093..a67d77f22 100644
>>>> --- a/lib/librte_eal/common/include/rte_pci.h
>>>> +++ b/lib/librte_eal/common/include/rte_pci.h
>>>> @@ -202,6 +202,8 @@ struct rte_pci_bus {  #define
>>>> RTE_PCI_DRV_INTR_RMV 0x0010
>>>>  /** Device driver needs to keep mapped resources if unsupported dev
>>>> detected */  #define RTE_PCI_DRV_KEEP_MAPPED_RES 0x0020
>>>> +/** Device driver supports iova as va */ #define
>>>> RTE_PCI_DRV_IOVA_AS_VA
>>>> +0X0040
>>>>
>>>>  /**
>>>>   * A structure describing a PCI mapping.
>>>> diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
>>>> b/lib/librte_eal/linuxapp/eal/eal_pci.c
>>>> index 8951ce742..9725fd493 100644
>>>> --- a/lib/librte_eal/linuxapp/eal/eal_pci.c
>>>> +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c
>>>> @@ -45,6 +45,7 @@
>>>>  #include "eal_filesystem.h"
>>>>  #include "eal_private.h"
>>>>  #include "eal_pci_init.h"
>>>> +#include "eal_vfio.h"
>>>>
>>>>  /**
>>>>   * @file
>>>> @@ -487,6 +488,100 @@ rte_pci_scan(void)
>>>>  	return -1;
>>>>  }
>>>>
>>>> +/*
>>>> + * Is pci device bound to any kdrv
>>>> + */
>>>> +static inline int
>>>> +pci_device_is_bound(void)
>>>> +{
>>>> +	struct rte_pci_device *dev = NULL;
>>>> +	int ret = 0;
>>>> +
>>>> +	FOREACH_DEVICE_ON_PCIBUS(dev) {
>>>> +		if (dev->kdrv == RTE_KDRV_UNKNOWN ||
>>>> +		    dev->kdrv == RTE_KDRV_NONE) {
>>>> +			continue;
>>>> +		} else {
>>>> +			ret = 1;
>>>> +			break;
>>>> +		}
>>>> +	}
>>>> +	return ret;
>>>> +}
>>>> +
>>>> +/*
>>>> + * Any one of the device bound to uio  */ static inline int
>>>> +pci_device_bound_uio(void)
>>>> +{
>>>> +	struct rte_pci_device *dev = NULL;
>>>> +
>>>> +	FOREACH_DEVICE_ON_PCIBUS(dev) {
>>>> +		if (dev->kdrv == RTE_KDRV_IGB_UIO ||
>>>> +		   dev->kdrv == RTE_KDRV_UIO_GENERIC) {
>>>> +			return 1;
>>>> +		}
>>>> +	}
>>>> +	return 0;
>>>> +}
>>>> +
>>>> +/*
>>>> + * Any one of the device has iova as va  */ static inline int
>>>> +pci_device_has_iova_va(void)
>>>> +{
>>>> +	struct rte_pci_device *dev = NULL;
>>>> +	struct rte_pci_driver *drv = NULL;
>>>> +
>>>> +	FOREACH_DRIVER_ON_PCIBUS(drv) {
>>>> +		if (drv && drv->drv_flags & RTE_PCI_DRV_IOVA_AS_VA) {
>>>> +			FOREACH_DEVICE_ON_PCIBUS(dev) {
>>>> +				if (dev->kdrv == RTE_KDRV_VFIO &&
>>>> +				    rte_pci_match(drv, dev))
>>>> +					return 1;
>>>> +			}
>>>> +		}
>>>> +	}
>>>> +	return 0;
>>>> +}
>>>> +
>>>> +/*
>>>> + * Get iommu class of PCI devices on the bus.
>>>> + */
>>>> +enum rte_iova_mode
>>>> +rte_pci_get_iommu_class(void)
>>>> +{
>>>> +	bool is_bound;
>>>> +	bool is_vfio_noiommu_enabled = true;
>>>> +	bool has_iova_va;
>>>> +	bool is_bound_uio;
>>>> +
>>>> +	is_bound = pci_device_is_bound();
>>>> +	if (!is_bound)
>>>> +		return RTE_IOVA_DC;
>>>> +
>>>> +	has_iova_va = pci_device_has_iova_va();
>>>> +	is_bound_uio = pci_device_bound_uio(); #ifdef VFIO_PRESENT
>>>> +	is_vfio_noiommu_enabled = vfio_noiommu_is_enabled() == 1 ? 1 :
>>>> 0;
>>> If you specify is_vfio_noiommu_enabled as bool, you should probably treat
>> it as such, and assign true/false.
>>
>> queued for v8.
>>
>>> Other than that, I'm curious why is it always set to "true" by default? If we
>> don't have VFIO compiled, it seems like the error message would always
>> complain about vfio-noiommu mode being enabled, which is confusing.
>>
>> Set to 'true' for case when VFIO_PRESENT unset.. meaning platform doesn't
>> support VFIO (linux versioned < 3.6) i.e.. using UIO - In that case, flag makes
>> sure _pa policy selected.
>>
>> On error message: It won't come in non-vfio case, as 'has_iova_va' will set to
>> 0.
>> Error message will show for those case where few device out of many bind
>> to uio, so message will pop-up and iova policy would be _pa in that case.
>>
>> Thanks.
> Right. My apologies, I misunderstood the meaning of "has_iova_va" flag.

No worry ;). Thanks for review feedback and looking into v7 series.

Can I collect your reviewed-by: for [3/9]?

Thanks. 

> Thanks,
> Anatoly
>
>>> Thanks,
>>> Anatoly