From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0054.outbound.protection.outlook.com [104.47.33.54]) by dpdk.org (Postfix) with ESMTP id 27849199B8 for ; Thu, 7 Sep 2017 17:31:36 +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=KazjMiTwN9NQgnO3AYcFfiBUroKjznDjKcNaCSuL3xM=; b=guBohuHA73GT+VeV6aokSvICFJ3xueaxG0/PUWfY1ackCQ40QiFfWH9KVp23burNwIVFVI1sXueWg8Al0l4f9B3Y80LuVyk2ZwHXjSI+3UpQFxhBuwJ6sALlG49+a6n7qVmyPhWkTPI72yD+LDuwTGqvd2Yjukz5fTQ+of1wTqQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (14.140.2.178) by MWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Thu, 7 Sep 2017 15:31:32 +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: Thu, 7 Sep 2017 21:00:37 +0530 Message-Id: <20170907153042.30890-4-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170907153042.30890-1-santosh.shukla@caviumnetworks.com> References: <20170906112834.32378-1-santosh.shukla@caviumnetworks.com> <20170907153042.30890-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: BM1PR01CA0072.INDPRD01.PROD.OUTLOOK.COM (10.174.208.140) To MWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c67e7614-3d7a-4b15-1cac-08d4f60585c4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR07MB3101; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 3:yv9ekjAcHD22428bmJ2pFhS+3b+Zsq0aCZjsolWS39rt2RauRfdZ/Gdgh4OjbElj4WxcJmjlyIdtL6HJ8qZ+Iq/xJsLoD+6q76dxNPPXFGCERQC24e6aV61nOhs00W0GU1Hsf64bve3INYsh6VjgR5CTlwDJNc7+D4VndrJqfAqIR/fC0bBVur/vrG0YuHn+m+DkeElnH09w5pxNON+JIozZuqsSrY1ZdzrKZ/nSv2uNQhJysOTS4gr9nQ/aBLIZ; 25:TYZ+guRm5YbCb3PBDtck7kqnLz/xZAnkQHHqhxwjDmdYbbMY+DM8rUPO5LPxMComGZe5nMlTlcxbjkoRaQdefijnEmzIjvL2krB8goUURZobvTHlGOOiEJmAoe+J9sRY04S6KWqgfvt2U8iESQUZhwcovHiSMcLiQ1qqjXaJL/s47QeNZ4P8z/TRrGRndwaiFMlLipSyH9C/9sGVYKjiAJg7bLTth1lkVsRJLRc4IbCG8RzYp6BwLAciHZiAgYtKsFfM3fsbjJuQTcqwhZcRnF9HaoAIyDA0hzwVJ8WY+by/3P3fO0KzvrL72irMlBAYqJDpAKKP1b+vLG0IsZBCNQ==; 31:n8YmL/2mvNQJ0VzzOLdWIip2Kp/Iy6TeqVNUT/2RVc0akO1pIIcRCYzxFNwPd6X3n3CqPHrMikTsnbaa9P8s/GwLrCpbpMfzGIht+beeows/UuKvjIWszaWNhojCHVvSPlWo1aM5akFx/Fn4szQkKDhK+kdxiY9apz4/mD334ulud8VWpgDRjabR1cnyWwy4trZ2FXw+cyb798dLxe1qWNeZJpkqmUfyRJeolQH6V8o= X-MS-TrafficTypeDiagnostic: MWHPR07MB3101: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 20:YrjRCIHqy2/nOn1Qo+gOez1JpuswL3Eoht2RS0rjE9iUh4FoE3j/a0Th1TVuiRrkSK9c9ypYUXaukUNsNi8zDSMg8JJGevKWO15whDNErLQxAJIW0Gkb+sfbbIupOXduWQrYfGW6nQXGqxy/erGuycriw1eVou4k9b6VNboDxq3kyUlOn7qrpvG/gqdphrdrE5zVukqNnXv0fU57GxnmF3ctPzGi7g2Ja4clXADQducfqHNYtO5mAQtXT4p9NKvdeakXEUpGqYByFjoI0TuKPzbz6AvVrJ5l5Ibm7rNJSWZqfjNH4jurY9x6B8iBhF/I9dd62LZTtNRg5qfCSOEpSc9PJNwm1NF4d0XuQyRKuS5qQmkcGFpWLxrCJV/Oib/oD80nOgYAbbu6mqDxQk26mGB9/C2RFluPUZZm6bxzWxLyVt21X/nmh+T6s4hIgHeiENaIXYJSwOj4dItp95OVEaU6SxQaNJN7InS/Ph8tnRtFBwulIOUQsglybPHfm5YV6hwu5X8xN3AJZZqhq2yvEibZfAhoXBNdCE2RSEjdKBM77NS/9igi+KbZjphYnTVl2On+9DMOVFsEx6YhOvHIzU49NEqKFH1Co/H/syZMURQ=; 4:aBFfCZq3TzdQ3HNcXKeqs2iU4OCF8dKHavV+7RVdPFGx/dtF+T3F3YWjF7yRCrDSF0JjsgLBVme86JNUk3Ps1YGcqAn6bAUl63eRRK3qFy3zrTlGNTne/rEOXKLEKL/jwnI8DJ9AZt7I3zitT7O9p8FIJVMF3ChL6bqdcjQbbQLwoXtKoHdQY6bBePg+DD+SPjRzdZ5G49AkQQtQoolDUuzYMT+YgmgilxXYsfqnvHlFmZ2h/LgPy2GoGX5BnWjLok69hEZiIB3fGMnLuDdW1QFLQeS1EUvFlv7RiZa6Gi0= X-Exchange-Antispam-Report-Test: UriScan:(131327999870524); 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)(100000703101)(100105400095)(93006095)(3002001)(10201501046)(6041248)(20161123555025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR07MB3101; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR07MB3101; X-Forefront-PRVS: 04238CD941 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(6009001)(189002)(199003)(25786009)(5660300001)(966005)(50986999)(76176999)(42186005)(106356001)(105586002)(4326008)(33646002)(8656003)(66066001)(53376002)(53936002)(36756003)(107886003)(110136004)(8936002)(50226002)(305945005)(6306002)(8676002)(7736002)(5003940100001)(1076002)(6512007)(47776003)(81156014)(3846002)(50466002)(6116002)(5009440100003)(101416001)(68736007)(48376002)(97736004)(81166006)(189998001)(2906002)(72206003)(6506006)(2950100002)(42882006)(478600001)(6486002)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3101; 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; MWHPR07MB3101; 23:HaJyFcN1N6YF2vXIileJPsfdX7Ijdddg/hOHIGBYa?= =?us-ascii?Q?nNjBosz0ZpuCzdmWCi4PCmYMHf9ZnjOxYdfYv0JGOBBwBi9B/WZgw2KN3j2w?= =?us-ascii?Q?BYVotC0xzvy8GP7hqOTTLnU1c3VqDyBlDMSBiHJvg4FYhHvHgM0G4mPE6iy4?= =?us-ascii?Q?9rAmBm02OT5JfKR84a1nhfXoXsOl0zyPsbGnKSlaOBgbm8WXHVb5H/DR6Lm5?= =?us-ascii?Q?+IivszItYem7ihJemMNUJaazbL4HQmL0QEX52vBdTIKCrx1bNbaiBw+nOQuh?= =?us-ascii?Q?yybbkiQEO3c03g9Ww7vJyPtdKokZRTZFxWEnHdmT7VTIdNpMydVoYhl2F0n+?= =?us-ascii?Q?3d1KHt7u7Vjdb9JOwsrW6WQcCGEz8CnH6l1fnXCWHTUHEQy7ISiIDYDvvoM8?= =?us-ascii?Q?MwRI5DKDclnilzuAp31hmRg/XpcSwxxl0j/cOAgEjmE7fG70mVAP7fAPRDP9?= =?us-ascii?Q?1RyEhSHQcvsRk3qcDZ2vUvpQBIyBlYKl+0KkcK8AYpt5rIJHhtM4H4wd0iZR?= =?us-ascii?Q?oedSYyH5FjW6KlG6PX3HlzwLG/R2s+/HUahuMAY001YgKY3jVBpBVSm+7p7g?= =?us-ascii?Q?n3CczMUOMME7YDpiAa9YCLvUFkLitnO2KAqFbj+rXdv2ioCfbZyJdM2Unxef?= =?us-ascii?Q?0EdgQoqaraL16q/dSyqvlD1WcnHTis/Xfn7lX4yWxJNKTGML8/YAwcJbQSEv?= =?us-ascii?Q?OgdVoEy0/eP4fsGiJ8Qo9VFIZB5xfjqHdfLH9HBJl4uEoiPyx6X3Fu7hVPp1?= =?us-ascii?Q?af5L1voUN56UjDilnPS1/rmOfZfOXbDOgWayYMoLc7rO18zFSYg9CAuARqWt?= =?us-ascii?Q?379QIwd020tVvF7Cf3FOmViFiX6DKYtZIeioj6DmO5ZyNshICgJAHtu+sUMR?= =?us-ascii?Q?wsgqmw3VpcKibm847yo5ZAMi/KMN2nQtBdGPGWgYK4tEa+8siTfa4MbSNI2p?= =?us-ascii?Q?fQlRAKzqvZYHBDmetR4T+4672ODzQcHdNI5sAfLAkMQ7Q9/UG5mEwqHOz5Du?= =?us-ascii?Q?D5sLN6zAV1MwH3nC8KvXod7FPDByVGO6NboFMzh/zsHIytf7N5HODs693Q5g?= =?us-ascii?Q?rEScT57E3l8LWqsuMwY5i2Ruy2fOUdqYHZewEuEiMnzYpBV0Mgw35bFSM7VM?= =?us-ascii?Q?H782BB8gTUh0qKb7TutJA+9B8LL5LGroyZkz01lm9NdVU71xE5yZG5Zu9IWC?= =?us-ascii?Q?G7a5Ej0ZAsch/E=3D?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 6:9qa56wCTczDnuSR2VCmKcw6X4n9dJ3gv1yseRMobqV3GMxZ18kKmZcLJf3pfyLwQob2dUI/7aciXMUH67veIPiSpJ/lWVDJ2HQVNsjLTZ6QG80Vibn2pb3zqcmHZ3cGhmVOCMVVkPtczJQQtOYp06+nRsOb17x6knwmCsi9GxrK2T3RBterxSZrplAbKAuEmD4SkFSPTp5JjpKNgQ9ypkSMF56s80cxZ63QFNgzXwBhSNgxQA/hCCIBJaNTTty2fVyJNP72RUrfIFWWjmV1r0eDWBT7IJ6ki/XPjRJxHl2ljQFaBG6XPtFC66BNg2yIULOR9pjow0afHnJfSQwAPZQ==; 5:2/vUWF5wgLwZ1Vs6Dubx/EJwXswT+72FwUGTP+isGeNHXsfQn/v22+UKbd3xm8RLzObF/QrThVOk9J+VeinYx6kEKu3ijtyp0zb444UuhgwcPFR86M0/+7ojsXcu8jy/Lu8Yr88JWT4HxREVehCQGQ==; 24:zOVm7rs1gj+hlPfaicQnoFTBuBu+FsjozUDaOx18UhN6HZIzFb5QSFdEkg0D6UypIX9hBFYtJdbz05ZM8KdvISXbY8LS5jx9K51R0Vof6us=; 7:TvGVi7khkPUN5VeAuZzrrT/urngl5DbNdz6Pd07DcQpNgh/iJinHTrX04AgGJeZQYpE2F/1PUim5XL/OxM5EOjflGRtEEAahplyBSZ8Yclh/WHoWN3BsQ0PuyyhG9bFD+78xjdP/5L9jKO4PlFJaWopK/CDe18hudLlvQMHOUwLbBaaH2PiGGhXlB8a0D0ysipgrfSOZIqUnzrcjT6RNm338Tr1ktZeuxomFkMgpnog= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2017 15:31:32.3073 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3101 Subject: [dpdk-dev] [PATCH v6 3/8] mempool: add flags arg in xmem size and usage 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: Thu, 07 Sep 2017 15:31:36 -0000 xmem_size and xmem_usage need to know the status of mempool flags, so add 'flags' arg in _xmem_size/usage() api. Following patch will make use of that. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- v5 --> v6: - Fix 'flags' typo (Suggested by Olivier). v4 --> v5: - Removed 'mp' param and replaced with 'flags' param for xmem_size/_usage api. (suggested by Olivier) Refer [1]. [1] http://dpdk.org/dev/patchwork/patch/27596/ drivers/net/xenvirt/rte_mempool_gntalloc.c | 7 ++++--- lib/librte_mempool/rte_mempool.c | 11 +++++++---- lib/librte_mempool/rte_mempool.h | 8 ++++++-- test/test/test_mempool.c | 7 ++++--- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/drivers/net/xenvirt/rte_mempool_gntalloc.c b/drivers/net/xenvirt/rte_mempool_gntalloc.c index 73e82f808..7f7aecdc1 100644 --- a/drivers/net/xenvirt/rte_mempool_gntalloc.c +++ b/drivers/net/xenvirt/rte_mempool_gntalloc.c @@ -79,7 +79,7 @@ _create_mempool(const char *name, unsigned elt_num, unsigned elt_size, unsigned cache_size, unsigned private_data_size, rte_mempool_ctor_t *mp_init, void *mp_init_arg, rte_mempool_obj_cb_t *obj_init, void *obj_init_arg, - int socket_id, unsigned flags) + int socket_id, unsigned int flags) { struct _mempool_gntalloc_info mgi; struct rte_mempool *mp = NULL; @@ -114,7 +114,7 @@ _create_mempool(const char *name, unsigned elt_num, unsigned elt_size, pg_shift = rte_bsf32(pg_sz); rte_mempool_calc_obj_size(elt_size, flags, &objsz); - sz = rte_mempool_xmem_size(elt_num, objsz.total_size, pg_shift); + sz = rte_mempool_xmem_size(elt_num, objsz.total_size, pg_shift, flags); pg_num = sz >> pg_shift; pa_arr = calloc(pg_num, sizeof(pa_arr[0])); @@ -162,7 +162,8 @@ _create_mempool(const char *name, unsigned elt_num, unsigned elt_size, * Check that allocated size is big enough to hold elt_num * objects and a calcualte how many bytes are actually required. */ - usz = rte_mempool_xmem_usage(va, elt_num, objsz.total_size, pa_arr, pg_num, pg_shift); + usz = rte_mempool_xmem_usage(va, elt_num, objsz.total_size, pa_arr, + pg_num, pg_shift, flags); if (usz < 0) { mp = NULL; i = pg_num; diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 237665c65..005240042 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -238,7 +238,8 @@ rte_mempool_calc_obj_size(uint32_t elt_size, uint32_t flags, * Calculate maximum amount of memory required to store given number of objects. */ size_t -rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, uint32_t pg_shift) +rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, uint32_t pg_shift, + __rte_unused unsigned int flags) { size_t obj_per_page, pg_num, pg_sz; @@ -264,7 +265,7 @@ rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, uint32_t pg_shift) ssize_t rte_mempool_xmem_usage(__rte_unused void *vaddr, uint32_t elt_num, size_t total_elt_sz, const phys_addr_t paddr[], uint32_t pg_num, - uint32_t pg_shift) + uint32_t pg_shift, __rte_unused unsigned int flags) { uint32_t elt_cnt = 0; phys_addr_t start, end; @@ -543,7 +544,8 @@ rte_mempool_populate_default(struct rte_mempool *mp) total_elt_sz = mp->header_size + mp->elt_size + mp->trailer_size; for (mz_id = 0, n = mp->size; n > 0; mz_id++, n -= ret) { - size = rte_mempool_xmem_size(n, total_elt_sz, pg_shift); + size = rte_mempool_xmem_size(n, total_elt_sz, pg_shift, + mp->flags); ret = snprintf(mz_name, sizeof(mz_name), RTE_MEMPOOL_MZ_FORMAT "_%d", mp->name, mz_id); @@ -600,7 +602,8 @@ get_anon_size(const struct rte_mempool *mp) pg_sz = getpagesize(); pg_shift = rte_bsf32(pg_sz); total_elt_sz = mp->header_size + mp->elt_size + mp->trailer_size; - size = rte_mempool_xmem_size(mp->size, total_elt_sz, pg_shift); + size = rte_mempool_xmem_size(mp->size, total_elt_sz, pg_shift, + mp->flags); return size; } diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index bf65d62fe..85eb770dc 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -1476,11 +1476,13 @@ uint32_t rte_mempool_calc_obj_size(uint32_t elt_size, uint32_t flags, * by rte_mempool_calc_obj_size(). * @param pg_shift * LOG2 of the physical pages size. If set to 0, ignore page boundaries. + * @param flags + * The mempool flags. * @return * Required memory size aligned at page boundary. */ size_t rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, - uint32_t pg_shift); + uint32_t pg_shift, unsigned int flags); /** * Get the size of memory required to store mempool elements. @@ -1503,6 +1505,8 @@ size_t rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, * Number of elements in the paddr array. * @param pg_shift * LOG2 of the physical pages size. + * @param flags + * The mempool flags. * @return * On success, the number of bytes needed to store given number of * objects, aligned to the given page size. If the provided memory @@ -1511,7 +1515,7 @@ size_t rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, */ ssize_t rte_mempool_xmem_usage(void *vaddr, uint32_t elt_num, size_t total_elt_sz, const phys_addr_t paddr[], uint32_t pg_num, - uint32_t pg_shift); + uint32_t pg_shift, unsigned int flags); /** * Walk list of all memory pools diff --git a/test/test/test_mempool.c b/test/test/test_mempool.c index 47dc3ac5f..a225e1209 100644 --- a/test/test/test_mempool.c +++ b/test/test/test_mempool.c @@ -474,7 +474,7 @@ test_mempool_same_name_twice_creation(void) } /* - * BAsic test for mempool_xmem functions. + * Basic test for mempool_xmem functions. */ static int test_mempool_xmem_misc(void) @@ -485,10 +485,11 @@ test_mempool_xmem_misc(void) elt_num = MAX_KEEP; total_size = rte_mempool_calc_obj_size(MEMPOOL_ELT_SIZE, 0, NULL); - sz = rte_mempool_xmem_size(elt_num, total_size, MEMPOOL_PG_SHIFT_MAX); + sz = rte_mempool_xmem_size(elt_num, total_size, MEMPOOL_PG_SHIFT_MAX, + 0); usz = rte_mempool_xmem_usage(NULL, elt_num, total_size, 0, 1, - MEMPOOL_PG_SHIFT_MAX); + MEMPOOL_PG_SHIFT_MAX, 0); if (sz != (size_t)usz) { printf("failure @ %s: rte_mempool_xmem_usage(%u, %u) " -- 2.14.1