From patchwork Mon Sep 11 15:18:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 28595 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D419C1B1A2; Mon, 11 Sep 2017 17:19:23 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0058.outbound.protection.outlook.com [104.47.42.58]) by dpdk.org (Postfix) with ESMTP id 7DCE51B19C for ; Mon, 11 Sep 2017 17:19: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=SaMP2fNz/d00/+ShPU5fbTHnwzkM8fzJaAv/nFY93aM=; b=b7y+jEo30PibMmHLdMEKF0BQwXI65H7ULh2wIB8Trk1zyDRLQykSbmS8laljPNnnl8nMkPkgFfDSbLd7S8aVZrNy0dRiml+0lgSfompIupHyagVs5JWg4wpVm46J0/2aZ3DQmPC/SXJXzZNiQWXotO/UmMuCIy7nEUAvEn7eBSs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (111.93.218.67) by DM5PR07MB3100.namprd07.prod.outlook.com (10.172.85.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9; Mon, 11 Sep 2017 15:19:17 +0000 From: Santosh Shukla To: olivier.matz@6wind.com, dev@dpdk.org Cc: thomas@monjalon.net, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, Santosh Shukla Date: Mon, 11 Sep 2017 20:48:36 +0530 Message-Id: <20170911151837.25092-2-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170911151837.25092-1-santosh.shukla@caviumnetworks.com> References: <20170815080717.9413-1-santosh.shukla@caviumnetworks.com> <20170911151837.25092-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0011.INDPRD01.PROD.OUTLOOK.COM (10.174.214.149) To DM5PR07MB3100.namprd07.prod.outlook.com (10.172.85.10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c2b68d3-53d4-4fc2-67dd-08d4f92879ed 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:DM5PR07MB3100; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100; 3:xMmbNsbUlhLnTdXL21wS6i/1DVTuzACjgXUwrATZFqIRTUMutRly5i5WPo44L8XCViMzVG5nhT67f0HNzSo0dQ8r8PqIVT1aDZYkMllFPuMbJ6DKm6vVbaQ0h9Xop6y+bxFflQvnqGlTOPJTFVR6GyTiebWNXvTf/NtHC046px3gztvZNOQWCi4WsNfvNC9qURmNVdDEJlyP9aFSeWq/4d4cKkxzllz0IvGguQORHjLdlXoCA4A1bFVQlV85tF+H; 25:tY466ovXpLIRWaxfpDxPMQK42hG/Fi76TQpghYjTimARPvVrIj42ADvo8XW1xqkoa5rrt42/XoqKFH+Sgu3AhVOianWe4cxcTKt/Oc/8vB2GUbrMNySfibdSeuQPZlojRoWaZchcYz3PZWIgQGadfRa6VAJPZEF+Ne+s0ny3wAu20bjsWR2osOKbDtusDBaqtDYCYGJxOP8d8JKd0NoakvnhjRsoSTouG4H3UMG2DJmlVLKtghFUQ55nnGmXrkxpmaMbnH95duFTfhdMxHvluNhHbOoile+vlkgTqpGxtsKLxCLdMqbcSIGxgZKwgJsFGi2bSo880dAPiK+/56qMtg==; 31:xGEuTtXuaRGZHPE7Qq4UXJjBJPAy3N7asl1NCF8OBhW8aU4NYpH5mCzlJydyHogW99EQcIkK9mZIKMWefOdkHh8nwDmIQ0E1SNGMZt9DFnPdV4omoufrdYJyDBqm7jUKTdFb5eDl21HG0JlOZM4EbYc6rcRz6fz6FNierXlx5CwMrcuzkjOlo3tJJdTdaCFusUxym+DXki2Iahyo8AWZg5c9ObrkqJoDKY4IwqYG77s= X-MS-TrafficTypeDiagnostic: DM5PR07MB3100: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100; 20:Y2S21q5Cxvkjf/FPSvtZVxCvdJKCeA1rTOCIbXmcCa1tvwjbpLGm1dmNdhzTHXInDxXtRwT4XrmSPAvr8UYl7ag02f8XUsn4PnfoMBghSB0IwF4Mgla1RSI/VgrqqqLRxm0lYkHy+ZJnXe4ckJWnm8BLuGoS1mYz8mjScPBx4gN5STkzpqQvKNmcPfq184Wd+in7+F8ux5MJwsYtyEg93Oi0lrZ4eYuw6qp6nTvGSOZ8kvcmDFtm5LrkYtY4XQEr1t27heh6W/gyhYaHwwwc18YrXklzWW+lzaQXFICvktUCv2SPvuygOgKRd5Z++UCoAZcKPhVCJFxFFrcYvfUJLhfCFqwNYVdA+xIHS23mm7I1dpNZrXqzzyGuL7weuxvRr5xsbkatE8IaUEBygByvypJbzhIudRZsJJFyJ0vQSZY3p6EcjQJOAjP+D5/2EPH+P4PlNCIUWsvMU3oVQ40IIFMFE9VaAZTovGruSH0TmLPD//OAjVf7MUYMXDe61cdsyaac15c7tX9seu85Zs7Y/k3+p7SjmzsFLNESgG6f5Nrk5e2F//5jPPgjLCf9zFwxZW/O+Yp0dspXuG0s1I86TEiAEzw1IclPL+FAzjLhEag=; 4:lMrwPqUJ6QaUHICxUheSUGdTNGUgDbh/thxE9BNe5jNEIJnSaObFjNJyM2d29GAi64rxyZS398g+6VD3DflMsCBHTnQ1BBEoN/LSIBx2GDi+V9gSyvWPER9lbpcyEEbnIMNec3CvG8sBhvDnz4g6xtszmBn3bt/xyE9UubN7sl0yKdpI0SJY/3bvQjGXGGVlkqpBdnoW+HKBKyGa53m+hNuXoEr1kA/pN+NxjUBdF13ZLub2bPoADg0tU5NvkerfrvUNhN/V5RQ64zlQ1VVaq+tS3paIxVA9HwV6bfcYJ0o= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(3002001)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR07MB3100; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR07MB3100; X-Forefront-PRVS: 04270EF89C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(6009001)(189002)(199003)(47776003)(5660300001)(81156014)(81166006)(575784001)(6512007)(7736002)(8936002)(8676002)(50226002)(305945005)(97736004)(66066001)(42186005)(101416001)(76176999)(36756003)(50986999)(6506006)(6486002)(105586002)(106356001)(68736007)(2950100002)(33646002)(42882006)(6666003)(1076002)(5003940100001)(5009440100003)(6116002)(3846002)(50466002)(48376002)(2906002)(8656003)(25786009)(478600001)(72206003)(53936002)(107886003)(189998001)(110136004)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3100; 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; DM5PR07MB3100; 23:fjfgZcwp6rspYdjNuQgOCyPx+hSrATUwJwo+bpS11?= pXmplcfE/ncv6/p4hrBoUHAJjvlEonVWakwjrHkgWopdSOZU1zhx10Kdh6P+I9tupf22E1X6pHAB0XPFVeQhPe3hAj9nMhvhf97qNYHuLt8nM33EajL12Mr3Ak2HWjgI0BHjn3MvcYqG8wyV/u+iCEO50hSGe2Wlxyif0ZK3YOV+IiGbbbR9Md3KPIY+oSJ4nSXojyLlLt4Rv1FWxKg4ofC60Rso3ZnS71/9/GNK9lvBfOaa2M+eTa7doObReKvHDcbIlOog3h6R9J+A2mGszJysvMoA7Vjl7/uj9d5Sn9vY6zHJs20OP9oay2dM9nKXDM7kCmY790Pr646RzChe7Bh+wAu706A8/NbeCES0tlcLY4ltdFnQGDFETAiObQVAQuQo/jHWn3w5Hc6U+Jd+kdjpzl8CuSGhh4ijZOV5S3RwmuhPB+9qVL3jYN0wDW+Pwe4p0bFJ/7ICLip+U1/jd/zsNwXn4HMB7+VGlTCSL69eM1o/adcmiCfRSIKX9ZvcS8OVJDXH2TmWi09uCcT2j/z3eUQuW3H9KeeB42hzDBr5o+Z6XcLpWeNBHojfHz0nIDvzPNu5E0tqodGG44ZLCujtHjlV1jBA5wHYNyyizEblm5qcTwjYXYWIVOCZI5/T6WQlTqC9Nua34Ct4p4Z4Nh9ZBvRt6GKbx9S/AOktcAc3S4o1LL1XYieymQq4l/XY6EYTTt8Mb4TcffzZF6SUHKqtfRUq5irvPoOJVzsL6tf9XDP8JJeYjtOin7B1ub/CyyA7Y6FCXk/ZeefoeX837/+FzxSd2NnS+qFsJ/3nQIrRa/UQqDreRU/0O/VIUxM5aMNpOrUJgxFvi2z7vRExJv8pY7gXogFXRhRV9xtZJDaeoxeEi3ocq1V4tmcvr1A+RnVFKTfIS2PSpBxUfm+5b2y8HSMPQAEd4jHBZ4GQJYMPn0GE2nTlyAXmtozPtYlTg3AxkuwL2xheHeYf2zIw9fm5qXauVUpGbkHE+7xFW4XCHQdv/vv3z1LpmKGxv5iSEZotRESX5XRIDTjH7Tz9la+08DXt1eSChrmJhHH3cAsgflIewgC5um1ETrQKGqnm0XDVjwMycYEFW9gwQsknQtTpEz3EsfXD+lrrXx5KfNAkw== X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100; 6:XX+bDaIg6CDACc193a/mOOa3CU7BK+R4TLBpU/PoRjVbvlEdr2Laq0ZTtT0lHVfhHXeqqdla/2atO1UeGG5cskDDbf38+UlQl/7SJ8AFgvQvRhEP6jbGlCMEpSYdTh0mkT9PV+615hjzNZf3EPPCZWwGmtkG3Fif4oaHUm00CMZs5caQYqZWtYttthvIdGrcfV5Ez8peHoUE3vq6DJSHMn/TBivgLAq/QGAq22b0UuUYnPK7c2wzRxhAKxGVyvDuQNrfDKRSd87TJetSaeg8EjPXB54rBj+o5Xc/nx/WPNS2CM/Ix+vTfj3DKmYM4D6FxcGYAE2/I8tIy23nApWrOQ==; 5:NYV1WmtOOwtwCtqZdQIzWTnaUjVfq7FY2lUrN5YbU0RNv/Fd2tBEVqgXHaSoUjVjI5V8VkPUEQ4n+Re1smHX1q56lI+eBT6pn8Xokq5kk29rgGbqzuZZNhg1KTROmnRr/PRra2lRI5Gdc/WFfkDzvg==; 24:63cyUd4JTMkB5K+fFtxqQRQdD71Zx+GXX3iR9b83LZ4w8Ni9Ikr4bpSf8MCHwScdt7YV4p+eN1K3K7AW+KeoK2wgO+jU6VGKRhjJhlezPis=; 7:co4MVOrdLza569GGGui9fncyrfLlZERrBnNn3WCcxyaEJmR7B9slSnQaNviWDjdKXyvrvtaXoWiJ3jPnyEnN3uj/9PM0vaduu7nETZXnEIoa+I0WF4mO8s9pwnAQf/+n6PSfwzEwtfjcWz8l21m1NMUpQwyNN7hBd18qXjVTvJRpRgA1loDg0OymnK469eJ089e9sXxgjOmt2KDUASC75u62/iD8sBPCZHuS2gQFGOQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Sep 2017 15:19:17.8817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3100 Subject: [dpdk-dev] [PATCH v4 1/2] eal: allow user to override default pool handle 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" DPDK has support for both sw and hw mempool and currently user is limited to use ring_mp_mc pool. In case user want to use other pool handle, need to update config RTE_MEMPOOL_OPS_DEFAULT, then build and run with desired pool handle. Introducing eal option to override default pool handle. Now user can override the RTE_MEMPOOL_OPS_DEFAULT by passing pool handle to eal `--mbuf-pool-ops=""`. Signed-off-by: Santosh Shukla Acked-by: Hemant Agrawal --- v3 --> v4: - Removed RTE_MBUF_XX_POOL_NAMESIZE macro. (Suggested by Olivier) - Replaced char * with const char * for 'mbuf_pool_name' var. (Olivier) - Added eal arg info in release guide. doc/guides/freebsd_gsg/build_sample_apps.rst | 3 +++ doc/guides/linux_gsg/build_sample_apps.rst | 3 +++ doc/guides/testpmd_app_ug/run_app.rst | 4 ++++ lib/librte_eal/bsdapp/eal/eal.c | 10 ++++++++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 7 +++++++ lib/librte_eal/common/eal_common_options.c | 3 +++ lib/librte_eal/common/eal_internal_cfg.h | 2 +- lib/librte_eal/common/eal_options.h | 2 ++ lib/librte_eal/common/include/rte_eal.h | 9 +++++++++ lib/librte_eal/linuxapp/eal/eal.c | 11 +++++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 7 +++++++ lib/librte_mbuf/rte_mbuf.c | 5 +++-- 12 files changed, 63 insertions(+), 3 deletions(-) diff --git a/doc/guides/freebsd_gsg/build_sample_apps.rst b/doc/guides/freebsd_gsg/build_sample_apps.rst index 9faa0e6e5..bd69aa9f5 100644 --- a/doc/guides/freebsd_gsg/build_sample_apps.rst +++ b/doc/guides/freebsd_gsg/build_sample_apps.rst @@ -163,6 +163,9 @@ Other options, specific to Linux and are not supported under FreeBSD are as foll * ``--huge-dir``: The directory where hugetlbfs is mounted. +* ``mbuf-pool-ops``: + Pool ops name for mbuf to use. + * ``--file-prefix``: The prefix text used for hugepage filenames. diff --git a/doc/guides/linux_gsg/build_sample_apps.rst b/doc/guides/linux_gsg/build_sample_apps.rst index 0cc5fd173..7cba22e2a 100644 --- a/doc/guides/linux_gsg/build_sample_apps.rst +++ b/doc/guides/linux_gsg/build_sample_apps.rst @@ -157,6 +157,9 @@ The EAL options are as follows: * ``--huge-dir``: The directory where hugetlbfs is mounted. +* ``mbuf-pool-ops``: + Pool ops name for mbuf to use. + * ``--file-prefix``: The prefix text used for hugepage filenames. diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst index e8303f3ba..61138957c 100644 --- a/doc/guides/testpmd_app_ug/run_app.rst +++ b/doc/guides/testpmd_app_ug/run_app.rst @@ -110,6 +110,10 @@ See the DPDK Getting Started Guides for more information on these options. Specify the directory where the hugetlbfs is mounted. +* ``mbuf-pool-ops``: + + Pool ops name for mbuf to use. + * ``--proc-type`` Set the type of the current process. diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index 5fa598842..150d3ccc4 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -112,6 +112,13 @@ struct internal_config internal_config; /* used by rte_rdtsc() */ int rte_cycles_vmware_tsc_map; +/* Return mbuf pool name */ +const char * +rte_eal_mbuf_default_mempool_ops(void) +{ + return internal_config.mbuf_pool_name; +} + /* Return a pointer to the configuration structure */ struct rte_config * rte_eal_get_configuration(void) @@ -385,6 +392,9 @@ eal_parse_args(int argc, char **argv) continue; switch (opt) { + case OPT_MBUF_POOL_OPS_NUM: + internal_config.mbuf_pool_name = optarg; + break; case 'h': eal_usage(prgname); exit(EXIT_SUCCESS); diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index aac6fd776..172a28bbf 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -237,3 +237,10 @@ EXPERIMENTAL { rte_service_unregister; } DPDK_17.08; + +DPDK_17.11 { + global: + + rte_eal_mbuf_default_mempool_ops; + +} DPDK_17.08; diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index 1da185e59..cf49db990 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -98,6 +98,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_MBUF_POOL_OPS, 1, NULL, OPT_MBUF_POOL_OPS_NUM}, {0, 0, NULL, 0 } }; @@ -220,6 +221,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->mbuf_pool_name = RTE_MBUF_DEFAULT_MEMPOOL_OPS; } static int @@ -1309,5 +1311,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_MBUF_POOL_OPS" Pool ops name for mbuf to use\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..00c3bd227 100644 --- a/lib/librte_eal/common/eal_internal_cfg.h +++ b/lib/librte_eal/common/eal_internal_cfg.h @@ -82,7 +82,7 @@ struct internal_config { volatile enum rte_intr_mode vfio_intr_mode; const char *hugefile_prefix; /**< the base filename of hugetlbfs files */ const char *hugepage_dir; /**< specific hugetlbfs directory to use */ - + const char *mbuf_pool_name; /**< mbuf pool name */ unsigned num_hugepage_sizes; /**< how many sizes on this system */ struct hugepage_info hugepage_info[MAX_HUGEPAGE_SIZES]; }; diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h index 439a26104..9c893aa2d 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_MBUF_POOL_OPS "mbuf-pool-ops" + OPT_MBUF_POOL_OPS_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 0e7363d77..1a719cc6b 100644 --- a/lib/librte_eal/common/include/rte_eal.h +++ b/lib/librte_eal/common/include/rte_eal.h @@ -287,6 +287,15 @@ static inline int rte_gettid(void) return RTE_PER_LCORE(_thread_id); } +/** + * Get default pool name for mbuf + * + * @return + * returns default pool name. + */ +const char * +rte_eal_mbuf_default_mempool_ops(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..a44454129 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -121,6 +121,13 @@ struct internal_config internal_config; /* used by rte_rdtsc() */ int rte_cycles_vmware_tsc_map; +/* Return mbuf pool name */ +const char * +rte_eal_mbuf_default_mempool_ops(void) +{ + return internal_config.mbuf_pool_name; +} + /* Return a pointer to the configuration structure */ struct rte_config * rte_eal_get_configuration(void) @@ -610,6 +617,10 @@ eal_parse_args(int argc, char **argv) internal_config.create_uio_dev = 1; break; + case OPT_MBUF_POOL_OPS_NUM: + internal_config.mbuf_pool_name = optarg; + break; + default: if (opt < OPT_LONG_MIN_NUM && isprint(opt)) { RTE_LOG(ERR, EAL, "Option %c is not supported " diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map index 3a8f15406..5b48fcd37 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -242,3 +242,10 @@ EXPERIMENTAL { rte_service_unregister; } DPDK_17.08; + +DPDK_17.11 { + global: + + rte_eal_mbuf_default_mempool_ops; + +} DPDK_17.08; diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index 26a62b8e1..e1fc90ef3 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -157,6 +157,7 @@ rte_pktmbuf_pool_create(const char *name, unsigned n, { struct rte_mempool *mp; struct rte_pktmbuf_pool_private mbp_priv; + const char *mp_name; unsigned elt_size; int ret; @@ -176,8 +177,8 @@ rte_pktmbuf_pool_create(const char *name, unsigned n, if (mp == NULL) return NULL; - ret = rte_mempool_set_ops_byname(mp, - RTE_MBUF_DEFAULT_MEMPOOL_OPS, NULL); + mp_name = rte_eal_mbuf_default_mempool_ops(); + ret = rte_mempool_set_ops_byname(mp, mp_name, NULL); if (ret != 0) { RTE_LOG(ERR, MBUF, "error setting mempool handler\n"); rte_mempool_free(mp);