From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70087.outbound.protection.outlook.com [40.107.7.87]) by dpdk.org (Postfix) with ESMTP id CD4095B16 for ; Wed, 26 Sep 2018 09:11:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+EHl6UteXSxSXLdqRVpsuQKdaX6w66+dLkET9n567fg=; b=sExVbUTq2T6Iv21Ps9wkli1IRhB7I9BYXcTszEl42nrhL8uCMhPTVm1n6pWW61zpQVZl0hwUC/MLsf4vKaSWRrTUJXtvLJAr1wFAYkuCS7kMqNOI6dH7vI2H3b37mxacFykv0aqV3bRufHG3kNXEuUZt2q8dHtNTr37exYVi/B0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=hemant.agrawal@nxp.com; Received: from [10.232.133.65] (14.143.30.134) by AM5PR0401MB2529.eurprd04.prod.outlook.com (2603:10a6:203:36::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1164.20; Wed, 26 Sep 2018 07:11:15 +0000 To: eric zhang , anatoly.burakov@intel.com, santosh.shukla@caviumnetworks.com Cc: dev@dpdk.org, Allain.Legacy@windriver.com, Matt.Peters@windriver.com References: <1537297807-19584-1-git-send-email-eric.zhang@windriver.com> From: Hemant Organization: NXP Message-ID: Date: Wed, 26 Sep 2018 12:40:52 +0530 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <1537297807-19584-1-git-send-email-eric.zhang@windriver.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [14.143.30.134] X-ClientProxiedBy: MAXPR0101CA0040.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:d::26) To AM5PR0401MB2529.eurprd04.prod.outlook.com (2603:10a6:203:36::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bf3b2a0d-d9ff-407f-2be1-08d6237f4271 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM5PR0401MB2529; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0401MB2529; 3:cSN07yfj3H5lqRsKuiq4nSSZpNqM/vAoIFfplXg6uKvXyx/UVEV728k43ilEGq4iI9RZHlRqfMzQ90XfP8XcZmFnxbRrvI20f1dxF5E/V6gOV24rXRfpf+oAl2yAkzcvhchYj3eprOij2qQGFE8Sl7TfVfkEL/LWY7H/da+fT3xj5lx/z8V/wGXpr2PHpGFRb/Gm6QpkD9EqSVab0av85lcuvVnglFdsF9SyVlV7dBqF9mE527mpwm3smLxYw/Nw; 25:v8XMJlDBhOUqjFZ5/GYnBKfP0YTHIb9NRoEgAK1izse8FKRBRvq3mYMvlOMtQNah+q/68t8a9DaTeJLLyHuNZr9vfolSUJpuXrV//iUkW+XCuetkBDBs/lhXGHjiCyMMPwKQyvwd/rxD2fYXyfzLLPyEVSQvMUfWgc2uNJkmb7A1W5N/jMK9RvBxmELABEnAu59x7lOIwNqE70Z2u5AWOLw38klKvm8Pgya8vWtHTcP/2EQ93uTSscPABaw0ZIDWLJltrwrbA8OGjlb34qQrFJLj3Dl3/SeZTjb/Yl4C09OWUSqHNQQ+qUmci6g5ebjWm61a2D/sbWQDHYeMqh4YTw==; 31:9+3OUzQ3lMfDESNm5q+b7OHrH3ZsAgz0MqA+LXw7U4ZwTKpgB5QD6UXNU2feYg4WSs2TWNi7bBmLwT0PiHvb6ziXoW/6Za0B6d157wajHMXRyZn7/pNXuaeLlOFm0gcIjBRlt8aWs82qjz3M/13xNzVHFnerVy3IUR2weanvZqXNJj8H5INvuXEDLFXPqkE+8OwhL286oogu0+Owu4CuipAIL+6avQgprB+de3kybPc= X-MS-TrafficTypeDiagnostic: AM5PR0401MB2529: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0401MB2529; 20:fLpP1xEjVnd8LlmggFZPxnUos6GL3aiTWAWUdsZpouwwgv5DY641+/alrQynOPDYcYBGkOUzZimwZyrZHgVsibv/FscFgdbgB4TmOEOgDpau2Qzu6ovA01FEBIut3doYyXx6TPdL2YA7ic8MxB4yAmdyzCWzy9KGXtPdAGKyNevVCpN0NNPl0ly1c3Qkt1y2WeEFi+PblEBhjTTL8/hmwbuXrXCfQ2UOlHOp0vGzDwTTzfGFnYsdH4sd2S+na0ILkzAWl4ttY/jYyntAe2pEmtXUuv/Nfcs4l66hQLkzeifvHRiIKgbSSqOwQCLmOQQ5sdAh1SvV6MfCeLQ1IasSHBuUl2+YlJmWczh2JtlfeI1uBdqY5s09MR2iPuI9lO3S0GsuQ38QjSiyzxwje2N/Wu6sK4PeFy8OSmXa6q38xJfA1GW4wpPwqrEV1z08IuPlMOGKhM9wCQh4Asy/c59sDb0+zltbCipmXU1Ey6p8MeQ7eF5mSC0E0k0mrphKll+r; 4:NZLXmm3PewTT6YpIIaX5jCv+Seflm7o0uEg0LW3i5yLVJcLbgiY3+jF2DfDe4ociern1lT7p79cI0RfDFsyKc+vfflj6nkBCI9lMidOTzmBPBr8qUIPobRiY0v0iIBqLdoI4SiWZudOnIh43st35bhs1YEIjO4IvS16kqisCQqV0jxXsi55ojnR7EKhwHpcEUeGqeVqPLLTZ3zINUXWasx+phDa0ZHPGV95lfN6r1NLRgYNu4l1yuNjMibTeDHMb5t+oWjxZU0ZgbviBEPVHuCq32NydP8BHAhgnxdstz4m6ja7Xi/EJZ/wlhkpTAAWj X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(6055026)(149066)(150057)(6041310)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(201708071742011)(7699051); SRVR:AM5PR0401MB2529; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0401MB2529; X-Forefront-PRVS: 08076ABC99 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(136003)(396003)(346002)(366004)(39860400002)(376002)(189003)(199004)(229853002)(16576012)(58126008)(6486002)(5660300001)(43066004)(2616005)(476003)(7736002)(956004)(50466002)(76176011)(16526019)(478600001)(47776003)(23676004)(3450700001)(52146003)(2486003)(26005)(64126003)(2906002)(52116002)(36916002)(186003)(446003)(11346002)(6246003)(67846002)(53546011)(386003)(3260700006)(25786009)(4326008)(77096007)(65806001)(66066001)(65826007)(55236004)(65956001)(316002)(106356001)(230700001)(36756003)(6116002)(31686004)(5009440100003)(97736004)(6666003)(34290500001)(68736007)(81166006)(8676002)(81156014)(53936002)(486006)(3846002)(86362001)(105586002)(31696002)(6306002)(8936002)(305945005)(110426005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0401MB2529; H:[10.232.133.65]; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA0MDFNQjI1Mjk7MjM6QmJuaWM0Qm1MZTc1WHBQdVBJTHoza1NM?= =?utf-8?B?UG5iNnBtd3NGcUE1SldWc0EzS3cvdW9rSUJnaStKeXRrNjlZU2RCSDNYMEZH?= =?utf-8?B?dXVMcGRkYmZFSFcyMU1oYTJwOXdDaGFvamhNS3dSWE53ZktLSXdpK0R6Y1RD?= =?utf-8?B?T1orbUw0dVBTYTJMK3c2RjBPc2xmcXM5MVJ0Q2NkQXdEeUQ1OVoyUGxScllZ?= =?utf-8?B?SjViOURwckFGMENSUHdYbFNwSW9jRjRGeW9hQWhmWnFHWGtCcnQxdmNnbVZT?= =?utf-8?B?MjNPdjE0N3BSS1pkQ3FEaUwzeTZpdkNncHJnbE5iT292KzFCUEZITG9NaWJS?= =?utf-8?B?MU9SQ3NEc1c5U1U3Qnp1ZWxRSUNZOUdkNHZkeUp1MGxmNkxmUGNFL283RG9I?= =?utf-8?B?Tkl1MThlWUIrTzExZ0xybStPZ2E5R1I2YWNxTTlOQWZVd0FoZ3dGcG9NSW5P?= =?utf-8?B?eUR6WmNCOE9qdWxHZU5MUk9PK3h2dng0NDcvaGM5WEFDbmpDQWk2TTA2YW43?= =?utf-8?B?RXBmT2tBMzhYbmZ2ZFM0TTJjWmMyM1RoM3JydGprM09iWVk4RzVsUE1aMndR?= =?utf-8?B?bnJsY3NkQVZ5S3Y3eGJPakprM0dZY0w1UFNMbmFxSGlaQWN2ZEQ0emFMWEdv?= =?utf-8?B?Ym1kU2hNUk5Zc016SWFSOUUwUndUdEROeXlOQkFBL2VSQ21tZFhBZmNGTFl0?= =?utf-8?B?RFRhcUFITGJRL3ducFM4dU44QWdxTjh1UXFYOWdpUWxGanlPVjl4V2FnYy9t?= =?utf-8?B?QzVVUHRkNWlCM0RHdWcxYVRTNW5HbXQwdDYyK2R1VVFTYjl0eXZBdzMzTDhM?= =?utf-8?B?dTZKWnYydk0yeVNTSnhoMXdTZlJsdzJjd3V0d1c4MWZaRXdzeG5nVFVTZE5q?= =?utf-8?B?elM0TWhHdnNQeXNGZVpIWDZTSjAxa3JsRHlZUmxvQjJyejhoeUF6bnA2Rllh?= =?utf-8?B?RDJwT05TVFNWaG9lMWI0b05kL1hOellnQnZGbEJFaHpyMjJsLzBIRS9XZXg1?= =?utf-8?B?bHJua0RISCtaTUpRbjBock16U1VqUDJ1UXczamliZHo1YmFkRXMxM2JVdXB2?= =?utf-8?B?OWxHblVsdzJ1MHhjWDRDZWlmdWN3MjQxWWRkRmRoMkRFZU5rMzNLbFllczl0?= =?utf-8?B?NUJpVDBvVUxnTk4zRXhmT0hXa3dNSHBsYnRQMzRNNTZoYnB5emlCUFNoeUV1?= =?utf-8?B?ajArVzV4ZjZWWE1qYTdjcUlCVkVBbjFsZHJWT1IvN0FDVHJiZVk5NEkrTGMw?= =?utf-8?B?dG44QmR5L2Z2UUVLRUlNSkYrL3JldTVzMC9lZDNOZWYxekdHMGNYaG12M2E3?= =?utf-8?B?WXlRREdVUmJvT3BtQzZmYVVRUDVTV1V5ZEN3UXBKR2hzZktqZVhOS3RSNExi?= =?utf-8?B?VC9tS3FVbWsyeDhSQ0VycEp2L1oyMlREWkE4L0lGVmRyYVFCc0ZlREVQRWZC?= =?utf-8?B?TUZmSE1KdWJzYWFJVWhEZG1kQjhQdGI2TDVSTjFHZzJYejc1MmgwdlZ3RnVT?= =?utf-8?B?QVpKSlJOdW5DdXdZaDh1NFkwSVozNlgwdzZsQnBLbmFXQnZ1RDl0YnI5eTRO?= =?utf-8?B?SU1qSkdXb3BzbXd5bVg1ME9HZ2pqRjZHaXVDUXB3UXh0VytaRmt4dE1zMnNJ?= =?utf-8?B?bWhKR2hqemhVc2M4bkJzY3RQeDU4L1JXWmFaUTNSeTdFSUlrWmlkOTkvdTFS?= =?utf-8?B?K2ZnT3dEV0lhdlZtMU05WXhySXBjOExDbysxc2NuVWtpUnA2aEVqWU5Ud1Vr?= =?utf-8?B?bEFDYWtRRXNFTTNLbEpxSUVWWkh6NVdpZlZvYXJyS1Z2V2RVMHVoSzdkS2JJ?= =?utf-8?B?OGpOY05tZXZBL1E5dmhBQVFPcVNZcjN6djhLVW93cDBOdFJvbkE5YldaUWwz?= =?utf-8?B?NElYZENxd1Y4K3JCenhOaXE0aGJpdi9hQ1pCc1ZNckROb0tuVWVQRW5rSHRO?= =?utf-8?B?b1dSVU12SnlwZ1NQWVh5TnJoRjVlRTl0Wm80SnNldzY1d1pBa3J1UEhsRXpj?= =?utf-8?B?M203UHhrOU9iaGZTM0N3Um92SDRMUndteHZPWHhtNWUwMXFNM2h3b0xUUXF4?= =?utf-8?B?bXh3UjVCYm5nQ1E1ME1RT1gycnZ0NGJNM002WndXWXhKSHlCWGJGellYVWFz?= =?utf-8?B?K2RIVXJtOURNTWQyczJkRlhNYkNQUDJxbXBDbWcyZzFWYXJGVy9DMVNoYVFI?= =?utf-8?B?cllLZG5EWm4zKzJLNUI3bkZKcjkxSkE9PQ==?= X-Microsoft-Antispam-Message-Info: BJRBnd6ngPoP+8jNuQlIH1wxfj+Mv/MMoWFYULYuGb30jUJLigKaJwAvTc5DCPaoMemGpOIcwPyICStiG95jpV/nQ46f51N61nOBlcwv/Vtj2ostlbrXU1JJz1LJrCL37eh6m0u6jH4gtpuMDbFvwkuaN0i7Ij4Kg49p/BLhrV7p5GxiZYh1BzMGF2d5AzrkxBxzsMi9BM6rupAyD3KGXJ7bGTGAbhlGsAQXOya/LFkrMZMW2YdurHmfZxF1tjzydL87TwVbX79dM4Xvp50Nqvqa/4lHZu1mWimzvk7Qh25oOt/+4l0VB+S6Tq4S5pAv/Hb+aq/8zRxdSvvjJ0XV/+VPc4InKx4I7Iw06jDIDAA= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0401MB2529; 6:lVFQ43zTz/zdU5kwMkjCQYKZq4aYNqJJi+vLEptlCtRiraCGeiJdMw0+gBgVuewc7g0+jJgpitGTkyqgWMMAhUOVXBul8J4o5UIoPr3c87ZaIqbFooRRkQIXiW8jWJhNLu9+LT5mfj1TIbVwzGXQMt7Di3My0svxvSsVgNEAYbRl/uznLkIodMW6xnuwNBOOAVakQWoxip0KaYTPghDmn7uXLtFxF8/2DuDnl0PttIZC9iFQcuzIUwKVMqryEJ8NIOmIHxIYEF8jY9BSKrTqIi3czlY8k48Wg0H34Xt9Rw4iBOLWE0K7FqaJUxtEV2Vc97UbF7GIFnTNNPvCKxNMmZ2NDITQzZwPFff6spomQNQsKVvFNWtZ/P04SdJT9a5/O33TsfR5GRYaWQ/aC6D58itaBaFlHT/uykfRJNBNJWY+GRH0wtxJ5JAI71/JV2UvkPMBxsVnzLJSbaIu5p+OnQ==; 5:tvxuGipQAYp24mxV0f0mXQUiH2ZWImwsLOUK4fJoVR2JDfY+X/anoK/9+JF5w9gQPiueFDExAeZd9RkkaSVhCv8tG88AEpdQxgtVEonboJ63O5nVcrSLDvXTqNHsKOtWCbMpBonWydsjDPJXfSMzFwk1rsJLLPCuypBY3Ounx80=; 7:RykIXB3A+GfBsIvSh01h513GP5VsAAwqAvTSVol5UjHFKE7hdJYi1Y1+45gFG2FKKTFDaL+PAcoKdaDCXnnB79ojbeE8hLkbra0umpMirG2ESStHr/HIMBYRcV5Lk+C4W/WWZgprr/WGCXHPCidP2b61ybCdTpMH/ijdjR36etPqYAUZqn9FK85y03EV6EUpo1KZEUEzKLIBmCmlifx43hibLGco+zvru6bg36pIZu4A+CvfIMHEjbPq+rSYoCZj SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2018 07:11:15.7658 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bf3b2a0d-d9ff-407f-2be1-08d6237f4271 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2529 Subject: Re: [dpdk-dev] [PATCH v2 1/2] eal: add eal option to configure iova mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: hemant.agrawal@nxp.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Sep 2018 07:11:26 -0000 On 9/19/2018 12:40 AM, eric zhang wrote: > From: Santosh Shukla > > 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 Just wondering if you want to add some description in: 1. Prog Guide - EAL section 2. EAL Command line options for testpmd (https://doc.dpdk.org/guides/testpmd_app_ug/run_app.html?highlight=eal) Otherwise LGTM Acked-by: Hemant Agrawal > --- > lib/librte_eal/common/eal_common_options.c | 30 ++++++++++++++++++++++++++++++ > lib/librte_eal/common/eal_internal_cfg.h | 1 + > lib/librte_eal/common/eal_options.h | 2 ++ > 3 files changed, 33 insertions(+) > > diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c > index 996a034..ab2a28c 100644 > --- a/lib/librte_eal/common/eal_common_options.c > +++ b/lib/librte_eal/common/eal_common_options.c > @@ -82,6 +82,7 @@ > {OPT_HELP, 0, NULL, OPT_HELP_NUM }, > {OPT_HUGE_DIR, 1, NULL, OPT_HUGE_DIR_NUM }, > {OPT_HUGE_UNLINK, 0, NULL, OPT_HUGE_UNLINK_NUM }, > + {OPT_IOVA_MODE, 1, NULL, OPT_IOVA_MODE_NUM }, > {OPT_LCORES, 1, NULL, OPT_LCORES_NUM }, > {OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM }, > {OPT_MASTER_LCORE, 1, NULL, OPT_MASTER_LCORE_NUM }, > @@ -218,6 +219,7 @@ struct device_option { > #endif > internal_cfg->vmware_tsc_map = 0; > internal_cfg->create_uio_dev = 0; > + internal_cfg->iova_mode = -1; > internal_cfg->mbuf_pool_ops_name = RTE_MBUF_DEFAULT_MEMPOOL_OPS; > } > > @@ -994,6 +996,25 @@ static int xdigit2val(unsigned char c) > 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) > @@ -1158,6 +1179,13 @@ static int xdigit2val(unsigned char c) > } > 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: > @@ -1306,6 +1334,8 @@ static int xdigit2val(unsigned char c) > " -h, --help This help\n" > "\nEAL options for DEBUG use only:\n" > " --"OPT_HUGE_UNLINK" Unlink hugepage files after init\n" > + " --"OPT_IOVA_MODE" Set iova mode. 'pa' for IOVA_PA\n" > + " 'va' for IOVA_VA\n" > " --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n" > " --"OPT_NO_PCI" Disable PCI\n" > " --"OPT_NO_HPET" Disable HPET\n" > diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h > index fa6ccbe..29bf53f 100644 > --- a/lib/librte_eal/common/eal_internal_cfg.h > +++ b/lib/librte_eal/common/eal_internal_cfg.h > @@ -83,6 +83,7 @@ struct internal_config { > const char *hugepage_dir; /**< specific hugetlbfs directory to use */ > const char *mbuf_pool_ops_name; /**< mbuf pool ops name */ > 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 30e6bb4..7786189 100644 > --- a/lib/librte_eal/common/eal_options.h > +++ b/lib/librte_eal/common/eal_options.h > @@ -83,6 +83,8 @@ enum { > OPT_VFIO_INTR_NUM, > #define OPT_VMWARE_TSC_MAP "vmware-tsc-map" > OPT_VMWARE_TSC_MAP_NUM, > +#define OPT_IOVA_MODE "iova-mode" > + OPT_IOVA_MODE_NUM, > OPT_LONG_MAX_NUM > }; >