From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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" , "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> Cc: "thomas@monjalon.net" , "jerin.jacob@caviumnetworks.com" , "hemant.agrawal@nxp.com" , "olivier.matz@6wind.com" , "maxime.coquelin@redhat.com" , "Gonzalez Monroy, Sergio" , "Richardson, Bruce" , "shreyansh.jain@nxp.com" , "gaetan.rivet@6wind.com" , "stephen@networkplumber.org" , "aconole@redhat.com" From: santosh Message-ID: 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: 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 ; 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 >> ; Richardson, Bruce >> ; 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 >>>> ; Richardson, Bruce >>>> ; shreyansh.jain@nxp.com; >>>> gaetan.rivet@6wind.com; Burakov, Anatoly >> ; >>>> stephen@networkplumber.org; aconole@redhat.com; Santosh Shukla >>>> >>>> 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 >>>> Signed-off-by: Jerin Jacob >>>> Reviewed-by: Maxime Coquelin >>>> Acked-by: Hemant Agrawal >>>> --- >>>> 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