From patchwork Thu Jun 8 11:05:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 25192 X-Patchwork-Delegate: thomas@monjalon.net 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 222DE532D; Thu, 8 Jun 2017 13:06:33 +0200 (CEST) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0067.outbound.protection.outlook.com [104.47.38.67]) by dpdk.org (Postfix) with ESMTP id 11ACE377E for ; Thu, 8 Jun 2017 13:06:22 +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=u8rIJUrr9wSjvlGHCNOHsoK7d0cR1y9OVbwV96IfOx8=; b=XEzxohK7rXEBce8Bizib/liXHeWufWuC4kFCK4+PViCIGcDmGheKcnux3ledZrXWCDJOFtt9Dg2+DQofA371XRy3CeMp7xe3h5ieVF2GgkLv04HR9pQw3dtd3hFRp6msTQVhwr0nvW5b3amImEZqjosPxo+toCRHInQ72wPKAaA= Authentication-Results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain (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_128_CBC_SHA256_P256) id 15.1.1143.10; Thu, 8 Jun 2017 11:06:14 +0000 From: Santosh Shukla To: thomas@monjalon.net, bruce.richardson@intel.com, dev@dpdk.org Cc: jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, Santosh Shukla Date: Thu, 8 Jun 2017 16:35:07 +0530 Message-Id: <20170608110513.22548-5-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170608110513.22548-1-santosh.shukla@caviumnetworks.com> References: <20170608110513.22548-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: BMXPR01CA0025.INDPRD01.PROD.OUTLOOK.COM (10.174.214.11) To DM5PR07MB3099.namprd07.prod.outlook.com (10.172.85.9) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR07MB3099: X-MS-Office365-Filtering-Correlation-Id: e1bcd246-261b-4b5d-0b3a-08d4ae5e627d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DM5PR07MB3099; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 3:Sq2WjAVCAqdcKn8qbwbvAzXep4DVUbZY1uz2yb0uFyKEV7xhvDtz0oNYl97FYfrhwgeKJcViiUPyhPnYPJix+4YRwdBckgg6uV5O6nuwa18dpu9S3dlYZg5GvU0qMNWAuK8pPhnNBpfEmz2pqtVgAL8PKxXiCVoeN/ZYgBrwfy7gcr0UZaIGfw8fCLZitS2aT5Zk0N/BKkONAKsElWy3UZaQrLiO2AorHEKdYwjF23V10eYZTLxyl8/d3tD+V2Z5JzOItOHVcTxkKzUt8xLKO1pIiQhJKrIa0zypDzmTbs2cSpiSQcfkDKBPsnNIWP1kCV52Aj7HHADG6g1joGByVA==; 25:GqoWQ2dGcIB1iMFeOkPBgT8JIzmieR10DR5r8Cp+ao/iAxXdKUTiJJFsYFUAhxVqFvaCU+mEXyTkzTxZvbcDJdYtye561taIn6EtHbdJmIfFEpiaS5qtVn9Q9DKHyvuNlWm9a/DNo98fvXnVqUKk5wwsro3F1C5B6z2KHq6FvWLHInd7YJybFeZFeIL4XppSqeMz29F5IWEUAhY3RLRcu9V2bL8UMVfsmO/oCoyESMFVJPiN/XdzybYtezUwIXgMlnpb69UER/FLm40Nr7OADeMGO/H5uFaPk0op0PrF+LcyZUMm994zR1/1YHledueVhPbXfU0bryJxMGk1m00wU9VlWEAP4LktDanALpAMrBmmRP5LPZpVQIcMwHmGrlQVvXcPNS6goMEi9+HNNeF2MG6Hb+NPE2R3peO3w+OEkVoUZxdUF5ZJ+C85bP6hatpnXWYZc/CVx7lRZpDR0bxojmbqZkCL/Y23pWI1D/1q/yQ= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 31:cI7BYHVhIUUd6vsP4bfI23+UGJiUrshAlrHhX66xoTJl+G19fYiGN9pg2/KHjcxoWOn9Y2aJkgoDU834RHwJfLp5TXN5o4LOXl7IOEAeXKJie0WY4q/Hjt+bK3ZB4GN3bfF5vKeR7fmHmRyijkvJ5kF40UMFqUUdOA8XRcrn3gsqx489G1bIDAHETOdSVIjV5CaRkL+ocAcpxz/P0WxMytpsFdMrwfRkib6Q7VNzeCE=; 20:+4q2fZvNxjex9+zWvuUjmOvgH87hOVfy1FDfIL25bzGxE7n6owo/EkrpFDvShtYauvIaghvX7MYi/5aE1uDtBxG8706vQk6K0YJSuvJCZVsgZKlS5c5UXgbYe71hBwpJ6t63sdYKs/ClTSEHCQ47UNlqERFwHVwCYYsc19D2IX+Ksebrw52Bou27gQlW8jjAz/jt5arv9uwmp/3GkP1diQWINuuoekdXMvhECgJYV1OEyWD+5WV4j4QzrMKuS5JfpGR6tybpEzDhw2WSHKVsWWQH8bNJ5zbGD+BfPGpVbD2wcbMCpzC8jA+aBNn2ys4prFuBB6VwVJrgKwwxhs9sBmsMXgaTozQ1jtbuAPmygn34v+i79k4pEhsU/j/duz5KUBdZohkkg+NEdhiwjdoJ3v1lkbjRk7RfpGMk5rxlsC2/WHKWdAUsKzziQEIpIxdFf4dPsFs0JTMwAL79OArREoy6kqlWfjgTQxtiI5HJh2/sKU5Sa26QE+BkmNiLU4yhZnSQ0nMRjUhj1JsVPSV9f596+A4FHwCyM+WB886nwm4nohuQvzLw6OwRqrk3QI19eWwDeFgVUQHW8FZTsCIj7ofFFH77F/YM33ojnDuUmOQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(100000703101)(100105400095)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123558100)(20161123564025)(20161123560025)(6072148)(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: =?us-ascii?Q?1; DM5PR07MB3099; 4:OCqdyoYiL3Vj9P5Bma11WD1duEqTsXWl5HkxybDSt7?= SsQnYNWZObCwDUKBtqqkvsA+ptlZExOnTy1CNTV7LufpisJBeFIhVvJl/Til3xi3YKkFoGSjuM1PidlxkyMYRoeY/aa7uT3OBW81VKNYwbGz9kkDR7iJLuDKe3/M/+49693XIjxpP20o3zOOlF2N4gJC/64pZJAdNmZPiNZukIhok/0N5sVi1uuwU24TLDds1xLQ9rhKXiOadRp3b2yn3PRTy1rTK0fBmtcKHt5oS0G4p16U+rfMgiy4ZCwwjqXmROZtZSeoP7eSjgPMJEQxIiszDEztnnQfFRei/bg7DfCLEznAlxxDrz0qNQdo7wJ29p8xcfz/vBIANdquuTZBgfTNLpbNOS2aMvBh7EUXejpduliUX+Fl/rPr+D2xwTTGzhEOVC3wtpGuSXohH+3YYXdp8Hk75x7aYij4aZJ92jTbLJQSoBrYLjbtJiQ4UxRmah3MqoO51/ihtiAOCXOCsl8NbGqAR0vRqlFyCqP4TUvBGV8xVABH53oHELOB4NwN5eVjMC9VNgLLz48hob8tC2/rilPgFH8ZAnqeo3GA8kiPRrAuQjwL+WqSSvV8D6YfddzSZcPjfo7LBzKITgXQIGGnM2SZqCRBkd/mqa3lkU8tHXsVWnsKKk5SEsGLZioTCGSp5SvF51Gh5SpyWRIg7otS1A6Rjyio7niyBBIO3dSGtVodjGuGJQbGbkv+WjqnyKX5UCAu59etBArfuZbQG6Xd9tSyMl1xILhW+4AWytC/MViJUjs3qGihjFCCRNtvpsJ8KzNOEdVNmSDjXzI65OTES/DKZVURGTPkIoXy/ciVPZgafN9XQdh5V6SQ+q3FXt2ymkF45OjjzN309y23swM0anIV5nPAmKhzjAB0Sy6mjhV95UhJiaB414gWZfvced8XKPq8LQOTg1L+cJztRJIEnKne8pBCzW/kgy6pcpupj8+WscuCtOp4B2Hi3DRIhQtr3POhxCmJtcTFEGVcgwyWE0acd8nYiXSJdX7gYy7aKOcyPbzGxZqeWmfPelaRSfrDbKj1k3mnY1Q8XZNnQpFbACAZeWM2B28aWnSJZ3XCu1rDMG5Y8ewnXr2z/2KgA= X-Forefront-PRVS: 0332AACBC3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39450400003)(39850400002)(39410400002)(39400400002)(39840400002)(81166006)(8676002)(2950100002)(72206003)(6512007)(6666003)(42882006)(8656002)(5660300001)(110136004)(1076002)(38730400002)(53936002)(3846002)(7736002)(5009440100003)(25786009)(5003940100001)(305945005)(48376002)(50226002)(6506006)(478600001)(42186005)(36756003)(50986999)(6486002)(66066001)(76176999)(189998001)(33646002)(107886003)(47776003)(4326008)(2906002)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3099; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3099; 23:3jprx7IPpU4xJX6av6LrAcnYMq7zcQ+5pOvORo6/l?= 84VMn5dbAEc5a9Y4P5EJGIs2NEQhBL26DGbvf5xStoTWnf4C6qHqlFrnE0AVjO9oyxPbVV3QNBW1c9aGNp3VUz5Oo4GtfBHaXu/suP1WooHTxO0S/1xc6PaxoOraCkWyoQy4xB8VwiwL7NF7DMamzJ5C8MSVIrDQqsJiayhvN3jprYqXK1bQBVetz5NXbxxNL/wvCy3lhh8l7uCpj1N335pUjbk4x2TmTJwTln3zvngijmzvb+k+SuRLO/mGHVzivhg3aCHx78DYIRAazBwcZXdGlmX8i2K10wOOh53lVPKSdWx/RUCMfLwSNICkzL05j0VpHYKRkArNrrZiqq1UMC1dfwsMkMtWcCkXIORrtuCIMPbwvpulmFcydHd14o95bW0wh2Emoxvv3veiF1BHIcbRLAW4487PGmcm9yXEroel7ZjsvJEXngY4IS1LezLO3C0QeQ3fr5HT0tT5sFQ7gW5mGu4UGiVx2ErYmlNJ/ybd9mvOyTDMjyxF5E5FBRCOCYHCkWG3nM5FhCP1HdLHBNoRaLU/2e52SKRnJA5kRU6imcvElSqI3Fd5fx5St+sGj4CRtn7x3PUoj7MUY3g0kRbQBNEw7gHKSQQWl+yXiUcTMumIpd9Acfc+ZYC8LC3GL0eNP3rfQvFO8CIpvhgVQwBsONsLDUVjY7k+OIVLbtSONbieKsSaq8TkCrdr7E0eXbHiEHzSTNvQEYJSQYq1ODPAh4nXLCboTgsU6lqxLe2TNndzp/CGEzYpftvjcIg0YJEZrB96NUeV1UlrIcgzGQKTv7PzhnYa9uqf8LAoqePjC1X+kZhtWOLHZhDiW3QoKqhuc+7j9SWwRxhhuE+Gx0eWLL9TK8mSvQU9bRaWENVkywAPrFl9zNQ1AWbDQVrQnd2XcNKmZOfZXr3pS1i+6n1PEVCTkQsA5+18atIJOK2uThpU6rVRkocRUOiabVjcLdglIVjrLxFyGGxAe/NyY7dQzbMZ0rnSfxp84uNFMJzks+bGacKAmHwh0qgMNrrkCD8IPW3UtomURBDTheGqiZ7fbCzM8Zx6dZydnUA6jZEage6MhpgUksyN0ku5CUkc3U= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 6:09v4RdGR+TLddA8SQV3/FTH9XSsfoThxSeRlHGpezGLhra/NIVXp6APycL0iDk5KbCnHXFz2zYH1YXfbmepaLtJdNwo0HCOV6aomwgw79xx/BbDNRV5Gk9TdyHEXD7X0YJGBuFRfoRTbgvehDQ8HI9hHsvq95dppAGuE9Sd0Ofw9ATq21TiC0mFbKejI+jRCrwt2iI2rONWouL6xipLDf9XW1VDOtv6ryr/zfjgkMLa5sRLxBtzkN6GGfZNIpQ7Zr232J/86Uefq1IdqWtoT5w7zB9hrNba0OD2SB4Zxjm6b1KUW87S42/qqpxhMAoF9R7i0faoyoZlsIXC2e8YaQazOa787+UMYGiSfbTlSuWjJI4eMl5YrXu6b502o6NaD7ZW8CoOE2LeUJY44FzpB8sOQRVh4CdRMm2BXwBRaMWah9BXKzh0rQkjjrOpXgpYMlqO9lxBdb0xOhhqE8YZRbSiGbF2UF6UdLZF9klPHGOv6ydf+iZCr6IUmkiEgiYhjaaE5MghrDhua9Oy41j2B5g== X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 5:b6T7KuOQljONOo5ntQVRoZTW/eha5km4Nlh7iCXlG3MkxchNxViNpETzE+nsn6139DNB+dykllkgcazburCDFEXPd+7PizcgjOUgzbZeoBBvTXhQjKooHKTwa2Wv49L8lAM0vQOAvpzycmFLT5M5aMnr3JDOneNXOh4SXwaxftF3UwlKOxKdo+9VktVHq2vkIkPqle260T71dtB84TsqFW5X5k1uEik5sJzqMUSl9j96xRBd3yGsTtnyYx5v2z89YalRdWqAI0upJ7Iy0tGQvS/wcZQnITWhrRsTOcdF5XlxHOzg/Q58ODaPM8NCEa+lGvd084PmHsiA22rkKCwqD+KK2hUxPFL068EDrG/HtlvwG+oCXTuTZANIUnTb4gOnswspGM1fhvGCsY2TPw9FkJMQgtNAF8vbSAL4KCs7I9Tq8qcH1Zcmbr1dUPGQSF+RnC9agpyKcyqTPZsipjykpspNOXGnigtmq6kSyTjcbDNaX6Zb/al1Tl0+rnHFh+XJ; 24:WIwYM2N9zow859tJMlXD35lyxdWvqL9+PeMFNli4DLRA2tNCHpadeHx1bcnTjGue1KXzdFIGn+0FMiiRRmIG9gFjjOp2Rg/ZahHN1009Iv8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 7:gy/Oo22JCG9CedNQKwCge8GnqUpueXbdXQjEq9Ub9BjDj3nEIhYkPuiibDoLIfUhEHfsu59a5EQZY/qCP0LrTS9jsaD23fOVLSd+iHH+UOgihXgQdcvKQjJXTwMtkj8F1PdhaaMnWkjHQAlcduutfYPMp/bP+hBPhuY2ZiEtLORPc2+JSZgPn4KluggiOiCFVkCfVNlQpG6OjXJ3Xh/XLeXiLkxBH6P7oQyy4zOFTKRpRcp9s08LEPl1rR/IjxazVf/h5czcXXWDYWZvXP/71ubpDqbVdoyLfCE2j6dcd9kNnSu25517V/w1FQ8tW8YSpzQryv4b9E2PsP7xSDTNxQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2017 11:06:14.1103 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3099 Subject: [dpdk-dev] [PATCH 04/10] eal: add eal option to configure iova mode 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" In the case of user don't want to use bus iova scheme and want to override. For that, Adding eal option --iova-mode= where valid input string is 'pa' or 'va'. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- lib/librte_eal/common/eal_common_options.c | 31 ++++++++++++++++++++++++++++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 2 ++ lib/librte_eal/common/include/rte_eal.h | 10 ++++++++++ 4 files changed, 44 insertions(+) diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index f470195f3..16ce32f00 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -95,6 +95,7 @@ eal_long_options[] = { {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM }, {OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM }, {OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM }, + {OPT_IOVA_MODE, 1, NULL, OPT_IOVA_MODE_NUM }, {0, 0, NULL, 0 } }; @@ -161,6 +162,7 @@ eal_reset_internal_config(struct internal_config *internal_cfg) #endif internal_cfg->vmware_tsc_map = 0; internal_cfg->create_uio_dev = 0; + internal_cfg->iova_mode = RTE_IOVA_PA; } static int @@ -791,6 +793,25 @@ eal_parse_proc_type(const char *arg) return RTE_PROC_INVALID; } +static int +eal_parse_iova_mode(const char *name) +{ + int mode; + + if (name == NULL) + return -1; + + if (!strcmp("pa", name)) + mode = RTE_IOVA_PA; + else if (!strcmp("va", name)) + mode = RTE_IOVA_VA; + else + return -1; + + internal_config.iova_mode = mode; + return 0; +} + int eal_parse_common_option(int opt, const char *optarg, struct internal_config *conf) @@ -933,6 +954,14 @@ eal_parse_common_option(int opt, const char *optarg, core_parsed = 1; break; + case OPT_IOVA_MODE_NUM: + if (eal_parse_iova_mode(optarg) < 0) { + RTE_LOG(ERR, EAL, "invalid parameters for --" + OPT_IOVA_MODE "\n"); + return -1; + } + break; + /* don't know what to do, leave this to caller */ default: return 1; @@ -1083,5 +1112,7 @@ eal_common_usage(void) " --"OPT_NO_PCI" Disable PCI\n" " --"OPT_NO_HPET" Disable HPET\n" " --"OPT_NO_SHCONF" No shared config (mmap'd files)\n" + " --"OPT_IOVA_MODE" Set iova mode. 'pa' for IOVA_PA\n" + " 'va' for IOVA_VA\n" "\n", RTE_MAX_LCORE); } diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h index 7b7e8c887..4649e3c02 100644 --- a/lib/librte_eal/common/eal_internal_cfg.h +++ b/lib/librte_eal/common/eal_internal_cfg.h @@ -84,6 +84,7 @@ struct internal_config { const char *hugepage_dir; /**< specific hugetlbfs directory to use */ unsigned num_hugepage_sizes; /**< how many sizes on this system */ + enum rte_iova_mode iova_mode ; /**< Set iova mode on this system */ struct hugepage_info hugepage_info[MAX_HUGEPAGE_SIZES]; }; extern struct internal_config internal_config; /**< Global EAL configuration. */ diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h index a881c62e2..7c5556eda 100644 --- a/lib/librte_eal/common/eal_options.h +++ b/lib/librte_eal/common/eal_options.h @@ -83,6 +83,8 @@ enum { OPT_VMWARE_TSC_MAP_NUM, #define OPT_XEN_DOM0 "xen-dom0" OPT_XEN_DOM0_NUM, +#define OPT_IOVA_MODE "iova-mode" + OPT_IOVA_MODE_NUM, OPT_LONG_MAX_NUM }; diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h index abf020bf9..50f881365 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" { @@ -283,6 +284,15 @@ 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)