From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0073.outbound.protection.outlook.com [104.47.38.73]) by dpdk.org (Postfix) with ESMTP id 1830B23B for ; Wed, 24 May 2017 18:11:41 +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=OspO6kdjbzYnouNAYw0XQQ2qrTlAvVhB1SmxkdbnieQ=; b=cbmkmfGH4zEgnExvc/VLzR/lyi4/WvXOXL6NkTuGQlRwvj9t/XOO7SvP+E3dzMK1vc+A1qLC5S4Vuwu6s6ahbltGaRgvhR+7L2Yj8VszQ1B8pNtHX3+KAwmBEnmCDdbfw1sHHsnbc1nXnKRNpifv81+qnaxYJ9LMbRADtMlxuVQ= 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 BN6PR07MB3092.namprd07.prod.outlook.com (10.172.105.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9; Wed, 24 May 2017 16:11:37 +0000 From: Santosh Shukla To: thomas@monjalon.net, dev@dpdk.org Cc: jerin.jacob@caviumnetworks.com, Santosh Shukla Date: Wed, 24 May 2017 21:41:01 +0530 Message-Id: <20170524161101.22863-1-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: MA1PR01CA0073.INDPRD01.PROD.OUTLOOK.COM (10.174.56.13) To BN6PR07MB3092.namprd07.prod.outlook.com (10.172.105.10) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR07MB3092: X-MS-Office365-Filtering-Correlation-Id: 59045339-e207-4839-7401-08d4a2bf8f68 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN6PR07MB3092; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 3:IKWLszfHK4ZtdzDYampu3ejwW3zWYqmYs56oGkMLXtQvMgMA5eUSxp1DrpJ5cVNkQInRF94TesyOT6yRClMXBUjAmAGZD2jtnLkx9y4h2qnGlxZpMUuOgDqbWNCI3WvGfmWNNi7fjnh0ZRgO2IcU+2KwpVBQmrMSEZIc6h5OtVPYoY8LtquCGfjUylylU8uos7bsdlEj0Zop6yDaVRL9oLu1TEeyf9TUQ/GQtZ7495TOGMxREg3a+4cTFWvVshjJ7po41lkz7xbdhYN12waCTehD+IVOlehebfEITYrI+cSGSbDZf7/HNuHOHs5IiA/n7pGntqpvgo8kg46Ye9aM9w==; 25:kzQ8upDRb6d4hdRwzleDd9MQhTKesv6tuNzEgHAcIQ1YZRfcew+y83Lg3SOWVHoMXu8kCTtJSaT+GPj5o2359+TU9MQ7ZEOYEadmxLKULuD8BCxqEO57/Ew7qIcZrCsuYtVWizJ+x9nEKTikkN8gDiMc5j29aPxFIzLr390G8PqlP5fmghSnqmoKo4Ag7z1mUh7ww4f12yH7f8d1MCO2EAD6cdevczdwQDrxIgWPQhWnLwAHyYAKkgHrWm2UZtrfvYybUvZu9f+8zdIowKXL6uF42o0w/4dK2L2yZOxKPnWDnLf0TX0PQH6o6z/BRr7qj4NLYmPMpIowgWEK8bc/t4uHiU+NFJzO6A0dxnDGiiZQaPeoeRg5+mvo5jli3R20d2t5QKaHEyVo4KXkKOaLpqz6aDHigHERzmiNunoB/xrx3xuOieLGaiWpU3klqDssRp/w8aKdKTMAuudgWnoz0ceE24N7H7slvdzVHks3N0o= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 31:G7q0RK/AwhZed2QbcRtP9SluC6J6oYJDRps6Dy82vBAjLnV5zc/Xio+GxNmqmMdkQyQcgPUCH8UKvtzarVTDmCFCl1v5Y3UIe1ThQm/IipC01Z4kOq2/p2jB8K77oLc75inlMSNMRA/a5GZdr5PEOa2tXk4D72Xa4niVN8FxT2bDFoasllgmJ6pD/kmLcb5Yzc1KIaGbrzfl2GLVRGGSRbOC35jHb8XOwxCvd93fG3A=; 20:Pu0pWWJ5nOFDgdns2a2GD5kAz6zT9NhQ86lY0V0cy1IFnXboiQnk56WrIwAXRdPJfGP8MEGkvrpn7ZrVeGi+T9QFzzE/wtCSIBv9odGfi4zPMihFjTLxt0GFnJvZfDIWOfpJ3u3m9sH6QaorMeDlPdSOxBbhSxZMW/VZIA9OVTf4BifPIH7+mxyTwtRQ3gTOaqsou6cCtyk3/9f2rvtP1fvO7q2QNGN4FUGZLg7A6tLQ+KuV9mgmNXh1yvyfRCACsY20p0emMY5N4B89buM4xgoj0Yg2nKTGnadd90oJ8kzl1hwKftbPCs+HMMkc4JNHTuCFIR1NRBXiW117ZMQIbuChHB9XjC/m/XkJr05HsX7KKIdhjHkIUMnX2vNviFpAgm/yoQTxGIGpjs/YLCelJtKaLInJM3X0HkQtC2ql12umNgAVO1aFGQ41SJKZQxsinaY5eFskixJy0zSf8XVH7uhHlkLh4x8Lq1XjkSskqpPVmceUt0KK3/OgNmnMydaixAhytCy+DLLRIViOJOixKvPZNynXEjBJAjv707cNIfHadR5aAaJyDKkseyakirIMRaab7kEzl0lflVa6GSG1aAkLJEhC8DJUnA8Z7AAqeP0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148); SRVR:BN6PR07MB3092; BCL:0; PCL:0; RULEID:; SRVR:BN6PR07MB3092; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 4:mbRnRI+au5s9U/3dwOBTN3MKPnU1eyJ2mURRO4crNcQTGz+8VeXfh+JbqQsl6O/NEQsh4psPbhI+q0mynlr3bfusZBNZM7xMdxrNo7eqTwcInZw0LSikAahopAM1tXgx9ylgutGz+r5glk5RnR2+D3iwfH76U7efCmd7c4GifYgugUmnW/x3oRgbw8eRsXyJbhSv+2CLYrMKUqjjLTV7KzGBJ21iRgHQoPWOg0elbWdkFtuMnZisyngCXWerMFi/Z9EDlwRqh/xrOlIDATeHjNhydy6ZChTdRM7XbsOpRcVa6ofcyHpcfXC5Krf/wBojs9abjGaVlvsZ5FeWJO84LqAWnEumIbGwlP4f1TPhbre3SEW+13e0zfznyEowH6h3iQm50Lfzsd7TzJKrffiqMN7REN6VRRKmpL9bt0kjwEh86BFzBeYO6NiKcMUWy7AI+2sehlWuhFH5rZtlMLVpguRTcoM9/6be6FY6IzB4rxzEmaq6xBVCo6QloO6UbLin6PFfrCj2rfBcRAPhp0rMNpYRBlzO77KOjP0PSkvl876F48d4Hw0+dhJg+VJdZYzahxi9CCTF/5RdwGgfpkDfKgN7acUSSJNZoIeKIxAnn7v93/WdAln9sfn089vcBuWeowBdJ/u3mCNRZVxhXRTZZdvkmxxAFTmhnhJwinGOf4QGEt47KfNdxgCaR4kpliyQm5RgRPSDJmbo1aNONllpqwT5cdNfPyyAZs+FlbUJDnbcLx9SBGQAqj+5NdgRldFhk7esRJ6j/OxgqBaJM3mxNA== X-Forefront-PRVS: 031763BCAF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(979002)(6069001)(6009001)(39850400002)(39450400003)(39410400002)(39400400002)(39840400002)(5003940100001)(6666003)(42882006)(4326008)(53936002)(6486002)(6506006)(68736007)(48376002)(6512007)(189998001)(2906002)(42186005)(50466002)(66066001)(3846002)(7736002)(1076002)(5009440100003)(6116002)(36756003)(50226002)(81166006)(8676002)(47776003)(33646002)(478600001)(38730400002)(25786009)(575784001)(50986999)(5660300001)(107886003)(110136004)(72206003)(305945005)(110426004)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3092; H:localhost.localdomain; FPR:; SPF:None; MLV:ovr; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3092; 23:dDrUiCUY30cP2aIVf4rfCxbhMXVrT3s8V9y6Qde3b?= =?us-ascii?Q?fuyRh0hs0RrfShiC0JDLNcJl3Cyx4wvdwfcL80Z9Z/fZjoaA9x99+ilXuelG?= =?us-ascii?Q?zh54NoepkAGZ200LrO6gZncavVIvZNZs7o9SNcUVGjlNeVQTjTnMNn9sx5UC?= =?us-ascii?Q?d9AWGzCWahMIi+GIzEUsa04BSNT14t/BZosVTPqnW7Eq+TGAY+RkRTZ75PEn?= =?us-ascii?Q?bbIn99V0vS7PsQVwB6Ndyi2ha7zUWyVtQCOyR+eYDp+dW0t+6R73FEIKeuRn?= =?us-ascii?Q?d/HiOI06+goa0NAVlrjNlZEWQjbNfuhgUoLTu7b3Sk5tXF//kyi69JIe3o0M?= =?us-ascii?Q?fI8llquN4UB1rcTD2R5Rr9Kfi3e28Ce12ONErTvP0SrnWYZSNZzc/LNUc8Fw?= =?us-ascii?Q?aA0BVF4iDB2EX2o5Vb88G6GLmVknMSePKBC1dsJ9b0XWYaTo9lmnLrEC1qGv?= =?us-ascii?Q?YCh3eOmT293LjzOfALV+jZ6Ru4eEmyz8hkteJ1Y1tpkt8dsmRxgFsdSr1rhm?= =?us-ascii?Q?5Jnm3kdykGpSYWXv/ZCDnyPo6DbnaSPobAiswjUIJFn98sFoDcqmLsyEMKFy?= =?us-ascii?Q?Z+YMsm7Hp0VWisco6wk9iu7AF0HZNgtNKYxmx9wY2WQRmyXMGif4WSrZ6amQ?= =?us-ascii?Q?R6E41AdTz/SMulxrsVwfbRXLoJrJYPgLBIXihWwlayZebYv7YenZc9Mhrcow?= =?us-ascii?Q?tmqp1TDaIXnvu0vBhw8XIYxj/13bWnWdrHXxPZmf+ehfWmH7n+ut1uiAELej?= =?us-ascii?Q?3o8RylaGuiCYCbwTNk2DKO9LPEESKL6ZJZ9vgV1guIo1QqakTvbjUdvDqUm1?= =?us-ascii?Q?8PFRiwXflXAXt1yXByt74Yd+5wqHZO5mZbG5Nj6JfCrth0sQIasjhxo8FgYO?= =?us-ascii?Q?BftLnifvi/jdky4Z/+kRerC0SOdMA79j/pE+bAKtw26CPlm4Fzsdr/ob1Iu9?= =?us-ascii?Q?VfL3pAhzylCvmDUee4yrPf3lTEXf7AExZ8Of034nbKGDkfLF/4UmeJjASN/H?= =?us-ascii?Q?ZcqTlolgXY+9XX2mAzgYde6tH7sJNjfqxMvC5OsYEv3jt3TiqgYtL94vkyLR?= =?us-ascii?Q?2aMGF8qmjiwILMiePE0nTF1PWQbHlaO2QbWXR/oMlL84d4wTfU+mQlwvOru6?= =?us-ascii?Q?QssQMtWTBgi4mGmG2l3ZvpZ5iyyhzdvVyzg1aVpA29FGFbNfLBawcgVAtKux?= =?us-ascii?Q?Cv8KRdHtuNlwbp0MbsM/DsQWAICMiYPqjK8de1W5x4GwZdLummhO1v1rAyik?= =?us-ascii?Q?Qhs0UUA56IJJQZ9P2M=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 6:/xtdJWzho/xP14c3OeepN0VnDKurMprLITLmUhCATnuVVbWmBE9c9rOGxk0V6vHzph6EflQOwNc2zjudOg3FNTayiRbLRv12q7TM0MnomBY+zA9LeWyPPe/lUj0dd57XHKwP+IszY5t+kaTWtXxFs0fGyX4+O9npV+BACAmoillCFioDARsO1nYYYDf8FjSXEuW0ovNGfYgJDNT3P0mZf07Lb4RuGkvGBUwUMI/11Xl9JkvURMaX0zCrYs44hc/fsIYvtzqzOX3E2Vle8N4ZIi0ANHd0+X79882D2G36kDffzIMHom05/ItslNRx2JHPcT9X5Wph8FAdgfYf+j23K1Mm98jiSRSaM1+RZ2q0274Zx1cNmxpU/MW5d2oD9XOnZRT8/pCGo/GtnWABccb5tOYcIf0XlyTZhHWPEpZ2ILyjJKHP0qTR/2G6PHnSY1BiBH/te+aXXHpz66Pp5WshJOtAHhaAt1vkWXoHfH8Bk4VWr0RUCqAkwTrs8ONSwY8bMyCi9HwoBgbKOvf5Q8qzMg==; 5:sZXmW7o+QxdNLOauWvY853Jkbo5FfSjEA4e0v0tpZmVOkgV2sIfGGlV/8iBLrzptQntplT/LQEMybGPJQsVUECbCWA+dWdz0fucAfAZ5p3zxTLN7URSkjitmP+Ct+ntHridV1LcLVhm8tKtp3djz7g==; 24:rV75WemaGft3s/iNnepR2LUebs3znxW15rAos2OMN+zgn6A8mPi2+WaL7zN/vJelYZ6kFfsPzkoFRREI4FYrD5O6y2ByEMoj5c5FT4GVlaQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 7:e/zBjnzNE8k3pmyZB4ESrLIzHbCrFUM2cEZrJMRH8C2x8TnS7R0eMoS8H6dTtfabGORLoVsDxMUq0fyKwj1rwoDGyHIlpg2HlSrFig5I6/p54h2qctDj0EhflEvJg3atI1KO6mvoJGJRaIa3VHcec5iUN4RcG6sdlabF+By8RxNtrZbKCsS0RYpUGI5PtRZRppxuCnP/I0tqVOixIwt/5lI2dRUvz/m5O3CTeBqqllnE2wJ83N91+SjS+xdMWOmRFrQ97pcsoHIryraAI/xc1cB7+YuELSlbXJgww0tVyZG/Qpx1C/OS9a+gYXFCYRhBtnAXQU+5dnj7OMYKDNqiWQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2017 16:11:37.5616 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3092 Subject: [dpdk-dev] [RFC] eal/memory: introducing an option to set iova as va 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: Wed, 24 May 2017 16:11:41 -0000 Some NPU hardware like OCTEONTX follows push model to get the packet from the pktio device. Where packet allocation and freeing done by the HW. Since HW can operate only on IOVA with help of SMMU/IOMMU, When packet receives from the Ethernet device, It is the IOVA address(which is PA in existing scheme). Mapping IOVA as PA is expensive on those HW, where every packet needs to be converted to VA from PA/IOVA. This patch proposes the scheme where the user can set IOVA as VA by using an eal command line argument. That helps to avoid costly lookup for VA in SW by leveraging the SMMU translation feature. Signed-off-by: Santosh Shukla --- lib/librte_eal/bsdapp/eal/eal_memory.c | 6 ++++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 7 +++++++ lib/librte_eal/common/eal_common_options.c | 6 ++++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 2 ++ lib/librte_eal/common/include/rte_memory.h | 3 +++ lib/librte_eal/linuxapp/eal/eal_memory.c | 12 ++++++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 7 +++++++ 8 files changed, 44 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/eal_memory.c b/lib/librte_eal/bsdapp/eal/eal_memory.c index 3614da8db..6c8c2c96e 100644 --- a/lib/librte_eal/bsdapp/eal/eal_memory.c +++ b/lib/librte_eal/bsdapp/eal/eal_memory.c @@ -47,6 +47,12 @@ #define EAL_PAGE_SIZE (sysconf(_SC_PAGESIZE)) +int __rte_unused +rte_mem_is_iova_as_va(void) +{ + return internal_config.iova_va; +} + /* * Get physical address of any mapped virtual address in the current process. */ diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index 2e48a7366..6e020ca7f 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -193,3 +193,10 @@ DPDK_17.05 { vfio_get_group_no; } DPDK_17.02; + +DPDK_17.08 { + global: + + rte_mem_is_iova_as_va; + +} DPDK_17.05; diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index f470195f3..164123ef0 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_AS_VA, 0, NULL, OPT_IOVA_AS_VA_NUM }, {0, 0, NULL, 0 } }; @@ -876,6 +877,10 @@ eal_parse_common_option(int opt, const char *optarg, conf->no_pci = 1; break; + case OPT_IOVA_AS_VA_NUM: + conf->iova_va = 1; + break; + case OPT_NO_HPET_NUM: conf->no_hpet = 1; break; @@ -1083,5 +1088,6 @@ 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_AS_VA" Use va addr as iova\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..6293ed0aa 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 */ + volatile unsigned iova_va; /**< use va addr as iova */ 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..50f98edea 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_AS_VA "iova-va" + OPT_IOVA_AS_VA_NUM, OPT_LONG_MAX_NUM }; diff --git a/lib/librte_eal/common/include/rte_memory.h b/lib/librte_eal/common/include/rte_memory.h index 4aa5d1f77..c6c57e138 100644 --- a/lib/librte_eal/common/include/rte_memory.h +++ b/lib/librte_eal/common/include/rte_memory.h @@ -258,6 +258,9 @@ rte_mem_phy2mch(int32_t memseg_id __rte_unused, const phys_addr_t phy_addr) } #endif +int +rte_mem_is_iova_as_va(void); + #ifdef __cplusplus } #endif diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c index ebe068334..d7a373ba2 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memory.c +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c @@ -109,6 +109,12 @@ int rte_xen_dom0_supported(void) } #endif +int +rte_mem_is_iova_as_va(void) +{ + return internal_config.iova_va; +} + /** * @file * Huge page mapping under linux @@ -169,6 +175,9 @@ rte_mem_virt2phy(const void *virtaddr) int page_size; off_t offset; + if (rte_mem_is_iova_as_va()) + return (uintptr_t)virtaddr; + /* when using dom0, /proc/self/pagemap always returns 0, check in * dpdk memory by browsing the memsegs */ if (rte_xen_dom0_supported()) { @@ -480,6 +489,9 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, } else { hugepg_tbl[i].final_va = virtaddr; + + if (rte_mem_is_iova_as_va()) + hugepg_tbl[i].physaddr = (uintptr_t)virtaddr; } if (orig) { diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map index 670bab3a5..b0ba2233f 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -198,3 +198,10 @@ DPDK_17.05 { vfio_get_group_no; } DPDK_17.02; + +DPDK_17.08 { + global: + + rte_mem_is_iova_as_va; + +} DPDK_17.05; -- 2.11.0