From patchwork Mon Aug 14 16:10:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 27587 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id DE817914D; Mon, 14 Aug 2017 18:12:54 +0200 (CEST) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0074.outbound.protection.outlook.com [104.47.41.74]) by dpdk.org (Postfix) with ESMTP id 8FC6E9123 for ; Mon, 14 Aug 2017 18:12:52 +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=r5Istas35wJFuJLcgj7l7i92OdRkGOhnM8IxEFofDzM=; b=b80Il9hNc/KBnlrdSc1Lk83biVZV2gitnURl+UNNzZpRrV1J5HV+1qWDwmVkqCJcaVld2bniwf3cW1aNwSyBUQ1rqv5Iw+Y3j3XTvYQ3LUw3qCKS0cx6DAGMCSwJtoBOHxIRP5lE3k1AlzQ76S6fkqfotR+fTZFtvuDHvW+14Co= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (14.140.2.178) by CY4PR07MB3093.namprd07.prod.outlook.com (10.172.115.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1341.21; Mon, 14 Aug 2017 16:12:46 +0000 From: Santosh Shukla To: dev@dpdk.org Cc: olivier.matz@6wind.com, thomas@monjalon.net, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, maxime.coquelin@redhat.com, sergio.gonzalez.monroy@intel.com, bruce.richardson@intel.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, anatoly.burakov@intel.com, stephen@networkplumber.org, Santosh Shukla Date: Mon, 14 Aug 2017 21:40:54 +0530 Message-Id: <20170814161059.6684-8-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170814161059.6684-1-santosh.shukla@caviumnetworks.com> References: <20170724084004.25542-1-santosh.shukla@caviumnetworks.com> <20170814161059.6684-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: PN1PR01CA0087.INDPRD01.PROD.OUTLOOK.COM (10.174.144.155) To CY4PR07MB3093.namprd07.prod.outlook.com (10.172.115.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f6db907d-d3fc-420e-3ba2-08d4e32f503f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR07MB3093; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3093; 3:1VI7jDv1X+jBPdt/tgmijqzm9mEhuSgL6MLkB3v4dmA8JhDUtWVfz0p5TEOvlKj/N9umtg+JY11qLYhx33m7xTdQ1XoU0iE7pSXgp7HlIZ/+uVzYmq+FGG0FFQsuHnOW0S6+u+x7DTrJsB7uhmMS8W+SmX7HaelLxWbXBzbb5WSa5jxors/H4+bwBbNOOEiW9eMuqgt6GsYHemUMHaZ618SOPxcPr443HbqggSEKgvegmtzC5SZP6c9TjkOYZvoA; 25:eTx4b7iTHSjYJTes3fw+/wKn5W86NlnIt2W8jM6uB4baKeZ/S03pLJyiROdjh8VW6OnlmaV0pv0tF/GTmIWTrzpL8WgPkA+S8fQFazWe3awA6ZgpwME1e0GG76R5u1Wv1G12RPocdqM41radcZ4fmeWPCH1foq5SW1vM792gMd7C1ZX7NjVmPBjtjtnKPIQjDHdYwd6MiE4de58dAPM0CZPZ2jcrgnEdzMcj8dQnMqHqigIcR7DSoh6JB+Dxs/mEgK8PfN1vaQrPtIOJbADESo4bPpY1D8C3EqTb0sDtpbz0MPs4L/qh9jdxzSt/Eh8RsONrFbgWGnU4DvyWuyaA7Q==; 31:8SS9En1z9zZEWd/1SBCag2wP14ybct40tsWXsOgc/7bN0Gksa8skC2ByIEAvqsq/KAu2Bki2WCfJ9spR0k7XQpBah9jwcui0O5DMfnma3Qa/7afQoI47+XtZoc1NNPkZj9Kj7LxR3ld8u0KH+WKVDDDKoxSBv1sdwIMllyGPnLVNvcBojj9XBWsyJKP9usBf5wfaKt4kyxY0L8upGab4nTl0w5q2xekSZooido+QBkk= X-MS-TrafficTypeDiagnostic: CY4PR07MB3093: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3093; 20:JSpn7ak43OtTDnWzyk60zrSkKdt0Bk5rDYCZ04Icoy70Y+mWBmXKikVcVvZ+BAGmLu2H18Lvg059cEYAMCIAsFpTmr4i36ed87lk9wo9/Pxxc/oyGCYSUr5Zp7LuCsFBseZab+e39JY1y/LLjAeTRZoJ/9rmc+m/sjfiu1HxkbudQw2SbFSmgWwMP5YdNchixpzEFG2Gs1HneV8UqESoFrNp9Da5Fmuk+11Eiq2tb2nLnRWYsprQuChEur03NoxI7kTg2p/4iX9n8PT0AeS3DxFcn8PGLaYt5HSgYGIluhGMKBJeH3OfeTIPX9aiawPO7Zse0doroacFLr4v0xJ+AfGsaooq2GCKfg5PlMlUQt7c/bdTCmjWdg3n22t3j1e36ENSgTg5St3PRfz+T+eO1Lx8dm6d93HeOBA4bYXHOCmMzv0XsR71fdiTDp9lVMZWTxgRdH5Zv8T3rhNgclgO3GqyZc6LE98ZRxw0WkQFA4SWOmy9sIhxNj/KRLGj+kFFY6xiuxrqvyM/53ZNr0qVAJPG4Pl2Es7ZIWJ3lNEmaZJo5P7yiYFewR5t/NhRGe8C688puXwpmex89gmlXm+wdSklsCVFw4hQ+JQz4ixuv3I=; 4:VOGDCylxqxImUAZFaZaUDkYuBV3VYt892A/F6ou+GRTUznpX5D74OVDMQ8/JRcMmY0yK1a0Sf2aQRx5dPx2n/xDPq5zb7OUW8rBDxBPpNAkj2hKYPl9SjUV3P1aFqegHUaZcijpJJUVkBH9SE1rb8NUnRAwMbsw/VmSPJibH2xUvacm+Lren5NP6+n1vpR9r8kQDpLO+O1CZKgko3dOL+9GCJXgRxyFQ+wYWZYBT9rX+/tC4edJn9olK8tyKuKye X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(100000703101)(100105400095)(3002001)(10201501046)(6041248)(20161123562025)(20161123560025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3093; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3093; X-Forefront-PRVS: 039975700A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6069001)(6009001)(189002)(199003)(76176999)(101416001)(1076002)(50986999)(8656003)(6116002)(66066001)(72206003)(7350300001)(5009440100003)(3846002)(107886003)(47776003)(110136004)(2361001)(8676002)(42186005)(6486002)(50466002)(48376002)(105586002)(106356001)(189998001)(4326008)(6506006)(5660300001)(2351001)(25786009)(6512007)(81156014)(478600001)(36756003)(33646002)(7416002)(5003940100001)(7736002)(305945005)(68736007)(97736004)(6666003)(50226002)(6916009)(42882006)(2906002)(2950100002)(81166006)(53936002)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3093; H:localhost.localdomain; 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: =?us-ascii?Q?1; CY4PR07MB3093; 23:xN8qmHiJrajQRgGxu+lwWlnerJRIj3H9pAW8s6+5+?= kJx2BYyXKxbCFooi1LI2i1XfcU9xblNrqhgvLx9q4TL0SSk2ACaIe3yPCkZwAKFeZ/bIxSM2urYarQ5IDaEP6NGRZ03Gb5pSr5SuX1YeJu/goajUJ7+80AufRs4c9ffT2UXFu5KwRuQJqlLip49D7BTEtPgTQXbPseiyBXmiKeH094fHbjN2/dNEu449mrrAG55eCgUiBNRTYWQieFPP1nlOxJsaGPwOZcOwCdwCSYecH1ojUjTYqFG59vB5P4r1kfkXGHGvCtGdDPCgp8Bq/rogydTTwZtHNLszq9jUJpkphXGV1BdFAZA/FFe6J1OpSmQfFnpJOCQqJYuI1fJxJ6BW9XYceahzvNgKYskc8skep8OSCekFPqPIuvirpLO+UrEXFQW7QX8r+kdzfuh2XT5AAYb/r/vJ5U37AwVWLmip1HxyCvhdjl/mfmD+z15ivCSXS5kLk+vT00eZNz486xZ96ZrE19YMFP1r/TKf1X8txAfdTpb7TYLnqHhpRCUcSGFibYex+sUzkb69LU83eZGbZpFcdnFhQsOHPWP8VqrfRuPcME+PG3xn/CZy4n7W0PLyPfVA7p5TaKcef8rtqahg8I87JDgZfUrzmmdazuwWiNHruGBqsFEgxYLgWcfhINR1N05OyrzXxCU28Mu+xvKwoA5bv8mb+WIQdAn7VR/A5dt0FQ4n56w54QP6/CxYxlU3e7/ewWVLqf0fINNSm3Tx6mw0+aSGTcnkhXFhE/K9CDsOo+DRWX8KIbQWrtaiN1ooV0IPNCkYzGDjDgPwuxWfTEDplZ05xpZlS1ESUatba+hpLL6N61ev2Xl3RhR4znmjXz5YyTzEmDA85SfmOvoubIf17ohgD7yGggYH/fijLcLcRz1ExMb55b6uRu7QhViEkeQ4+/uOyAgDTYR2R9hEEGN2HT02uFm+M2i2d8XTSNoaqtoCO2f2aWXCFK98WMUx8tDV4CjiYqo9D1v42fiHCmNCm6Nnq4XotjonTHLYyL//p0WVadpPGaciH/9PJi09aTDcQjesphLTqPWeW4ITOv2296R3gYdVZksu6TFEGezrpByMzzBPfHFoeDJE9AUshmY7/gSq2L2fu+WEwe5Nz3JFjXdIRS6fXBaYaqlj5s60ehxpytu1FqZgz5pf5yK/BRZtG2pOPnkiFWqIBLEh0YRUlYFC3vyk8yT43hQV0ngxWA1znXoMsdwcBmRgarNWC/Ae6cJ/DbF972um45g2w7ocw2gm49TyZYqvQ2HVA== X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3093; 6:0vWruVbKelQeKWOesoBMsCcIYjPvX+3TfGDUCXFnLRkIU7JX/IOxHYlGNqV0+hzCqBuzX1Pc6cHaaZHTWm+4eirsRZLu45yRR78S8m85RhUM+5eD/1WKXnPvrjoQmQb6O2xR2gD61LT6awSMcmu37ZySbHDzct5AMNYg+jLFOflziOUisT+iLFY47AfHJdHiOQKta8/8mkv+spgBNp/D9DrNBvd9zuMU/I4/cVihND4IyyLdAXXIVkfRH0cVOTV0M1VArnWi97EHIWMO0zD6K9r3NbzizdgMzdTr6+PlVrwShz/0kWUpS4Em9mDBGxoUv8h29plr14OH+v5zT2YOMQ==; 5:noeYG7IvUJ21roiqnQrU9S9d0Wh9A+7lBgz4uj9dcV6eBvUWM7Hq5X+oEKzM7gpXavhfJEs0yHsf+AAvLulnLWV6o/puEPg5SXpD1HDVPC1V2yopdth9eEvfPt7CJJbtnZ8q+jc7StrJIoweEhslzQ==; 24:v0wlncxZ1ZbPJ0hh8jbIx/yTgJgAnOk5IDUV/Nio4gayPANBlA2rYOffapGEK7G/VVngNFex64Q0wxOoJRYpJU8eSaGz/JaGeaEuA0gm17g=; 7:ocuz+DFZZGhpKM8m5qZu+9oQVgFJtdn9A7pGYX1dGoTz5SJCt3211DORTPDKDD/3qhYaxUddRMo/btruiuBrXogdJhvDo3qDVn/ew6TOEAhcTqnMPDFNle9E5WIFWUeahJIt4/PQL64E/oy011tcEPIIdjoZyybb+LVL2WHkolcXmYN8F1XLp0HFpJz1H78VFxMqLPM0VHqWjOgMo4tee9ldlZsfnteo/H0Vi+EWiLo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2017 16:12:46.6152 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3093 Subject: [dpdk-dev] [PATCH v6 07/12] eal: introduce iova mode helper api 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Introducing rte_eal_iova_mode() helper API. This API used by non-eal library for detecting iova mode. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob Reviewed-by: Maxime Coquelin --- lib/librte_eal/bsdapp/eal/eal.c | 6 ++++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/include/rte_eal.h | 12 ++++++++++++ lib/librte_eal/linuxapp/eal/eal.c | 6 ++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + 5 files changed, 26 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index 5fa598842..07e72203f 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -119,6 +119,12 @@ rte_eal_get_configuration(void) return &rte_config; } +enum rte_iova_mode +rte_eal_iova_mode(void) +{ + return rte_eal_get_configuration()->iova_mode; +} + /* parse a sysfs (or other) file containing one integer value */ int eal_parse_sysfs_value(const char *filename, unsigned long *val) diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index 9942f47aa..1a63f3f05 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -244,5 +244,6 @@ DPDK_17.11 { rte_pci_match; rte_pci_get_iommu_class; rte_bus_get_iommu_class; + rte_eal_iova_mode; } DPDK_17.08; diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h index 0e7363d77..932dc1a96 100644 --- a/lib/librte_eal/common/include/rte_eal.h +++ b/lib/librte_eal/common/include/rte_eal.h @@ -45,6 +45,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -87,6 +88,9 @@ struct rte_config { /** Primary or secondary configuration */ enum rte_proc_type_t process_type; + /** PA or VA mapping mode */ + enum rte_iova_mode iova_mode; + /** * Pointer to memory configuration, which may be shared across multiple * DPDK instances @@ -287,6 +291,14 @@ static inline int rte_gettid(void) return RTE_PER_LCORE(_thread_id); } +/** + * Get the iova mode + * + * @return + * enum rte_iova_mode value. + */ +enum rte_iova_mode rte_eal_iova_mode(void); + #define RTE_INIT(func) \ static void __attribute__((constructor, used)) func(void) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 48f12f44c..febbafdb3 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -128,6 +128,12 @@ rte_eal_get_configuration(void) return &rte_config; } +enum rte_iova_mode +rte_eal_iova_mode(void) +{ + return rte_eal_get_configuration()->iova_mode; +} + /* parse a sysfs (or other) file containing one integer value */ int eal_parse_sysfs_value(const char *filename, unsigned long *val) diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map index f35031746..c99f1ed44 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -249,5 +249,6 @@ DPDK_17.11 { rte_pci_match; rte_pci_get_iommu_class; rte_bus_get_iommu_class; + rte_eal_iova_mode; } DPDK_17.08;