From patchwork Thu Aug 31 06:37:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 28117 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 CFC6D37A6; Thu, 31 Aug 2017 08:38:24 +0200 (CEST) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0081.outbound.protection.outlook.com [104.47.33.81]) by dpdk.org (Postfix) with ESMTP id AFACF7CAB for ; Thu, 31 Aug 2017 08:38:19 +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=cCLgS2S89da0zxlJSpzzWkqrqwyDRLH7A+4HHGdFjpE=; b=Ys9ZT8D70ehvk9L+FsFfMJfg2S07EhqA+UT7G2OzoBCbLQMyC1aNQSD/tBjRvwXqOFQmmtlgXrwbEklE5bZWm+GyQ5NL9CkOrAjQk2gQMl/k9yFekrvM+i+y8md+I2e1SOZWDKxeqbkvqVjtyFPmqE5qhz5dX+hZnXMsG76ttTA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (111.93.218.67) by MWHPR07MB3104.namprd07.prod.outlook.com (10.172.95.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Thu, 31 Aug 2017 06:38:15 +0000 From: Santosh Shukla To: dev@dpdk.org, olivier.matz@6wind.com Cc: jerin.jacob@caviumnetworks.com, john.mcnamara@intel.com, thomas@monjalon.net, hemant.agrawal@nxp.com, Santosh Shukla Date: Thu, 31 Aug 2017 12:07:16 +0530 Message-Id: <20170831063719.19273-8-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170831063719.19273-1-santosh.shukla@caviumnetworks.com> References: <20170824132903.32057-1-santosh.shukla@caviumnetworks.com> <20170831063719.19273-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM (10.174.144.157) To MWHPR07MB3104.namprd07.prod.outlook.com (10.172.95.10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 93a29538-5629-458a-e6c4-08d4f03add6f 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:MWHPR07MB3104; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3104; 3:6TuVuocULKf21Zk/vUw2QlK6R+H5KuuFd7y7pFbaJG1c0lpFYEVbF5qVzcoX+tp/6dKara05ZIuHRYwxSSn6I+7Fmc9f9sj7UD/dOOKz1U+FHZ1sr5hKMSIkKQm3HJkZJyExPVnkl4sSMRUXVdcrJNa/W0Dpm3EQa/5HgY5EPv/SQyVccWEOU32ZQx6N1MP/olH3qvJl/Udpisfl+IHIyN5Wiy3+lrco/w3jPjxqOBlfiari9AZ1hxPWMIESFMJ1; 25:O8W02xsYWLOjmijmUS7E7XiSZlWU9Du2JHiu0dp9OcrajWD63gpXhj2jX1WxvAiNpPmUidkvT5vLEPZUeMZa1UfL6OPYXfYN1DNLlfJxVaFkL83eIpVW1sFhqeRjKEHNXSYLSiLP2jf7t0xkULi9SOlLxYn0yNZwcvAwzRu5lctybc7JueH81RZjZmiw58yHFj3G0Rt6fZzg2bnvbe9zSYguVPDDuPCGmNS4PKfphVtt2/XqpcaJalFfcpQdEDdzAQxd0RZqYnYfDHyfjCYr3w7/hxAxdArHEVADMSHUn7sa/tnlcKtFuaDBv6AQyAk55Kp/i1Wx3NxGZJfauXunTg==; 31:osUDgi3aaINRh4vDCBqgE9JMRjGep72sZgFNdP/SeM5J94gTxmdrNvHNECj1fgnj6ikATbuQdCawgtarlIa5jkk7jVIMIqnBuDcQO93gTFmLU8mU8m8FmKa7dlAAO4TxG6OAujarrHlIbJdN3onNR/Iw/LYKd4j94lyjVUogbLvDzGSHULrB5Tm1owTeQ255AnTisHJhGMbKvb6jZ6yKhWh6A9Llhh/zAwTg7hf/jq4= X-MS-TrafficTypeDiagnostic: MWHPR07MB3104: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3104; 20:YJZl1gZbUYeuXIP+paFtg7oqES52D3ANBffmH4B8B6BAynM9E/7W3BKXPVA4Ni4DLesFtAxjevQ2tFkk+tni0PiXIbT+gQLwv8bGtDb/1rnYTwyC9hvoxNImvj7sNWMaMrewYg5hmpl1PFmYvuJhLiYdLR49I1BvyENVyjrq+Is5ZB/9ys3OijRXxnTEy+93Nu6ymMeMSpGJrzYs4UFcnYm5NQ0HVhIUFuuagrU6fIQVfSp9UgpNtghNuW8S++zqya0avJpenESW7qiRyexbJFOsf5VcibDJJ47R5NkmB6CZ4S2bFWUEy/QCsV8GmIilq7LSbK2J5H5Hsdjp7X0IpnRb0SYIvRLGGXvgfqUKNbg8S/yABh/uPPhf9obj4bQvjQzGnm/dkIVdAUydJnEZx1w6AJZYvuV4Z38D6MHrv11gFSxM9ETUn5wEnkL6Wk90eGzC0Lqn24KAaKbaIX/mQg8hbt437huFHLtssHtwm2cAeUUYAoiw3ZL1F1XntlpXD+VYFtXyynM90+OEHUhrryhxnuQwC5aaHpMAfwxu6ZYAi5qqjdZi0jxWlF3HSN98ZSdEBKUMg7AJ8R4EB43UXmBvdU9ZOLdnNBFq0sYfSnM=; 4:C+Amdnfii4WomG5RSLvRBxtWeaFYyrol3ij4dfekzHp8lDaFD7rV6YG4cGtS+rwhDj8rNdPIoNRzMCEhbk82LlJw4/leNgxg2RZLC/MQRjZVY+Qp6Cz9yCiPsxeBpY+BnPbuIY+Jhkt83zwEqqSnt1H56NzldAVTCt4M8HvLicOp09z+mN9XA8Rs3O2c3f5yp+wOYqpj4cVmiLk/bQbpeJakzlVC7G5W9sxgWrV5sq5FKhougLFDPjIN0Bz1HBHS X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(3002001)(6041248)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR07MB3104; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR07MB3104; X-Forefront-PRVS: 04163EF38A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(199003)(189002)(66066001)(6486002)(33646002)(50226002)(47776003)(6506006)(68736007)(36756003)(50986999)(101416001)(4326008)(76176999)(189998001)(25786009)(50466002)(48376002)(7736002)(5003940100001)(6512007)(105586002)(8656003)(478600001)(2906002)(110136004)(107886003)(305945005)(53936002)(8676002)(42186005)(5009440100003)(72206003)(42882006)(2950100002)(575784001)(1076002)(97736004)(81166006)(81156014)(8936002)(3846002)(6116002)(5660300001)(106356001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3104; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; MWHPR07MB3104; 23:xjhhWHl+l4pHWglY9jVJWRMKi8Pak1p4frmZiQrak?= Pwo8+2YQAcfjDGtrnDa/xwUbbUmjO3hBGBJMcBA+BGQdj7quPkGr7IcMGFmJzHAXbtg3/+B31Kq7Y107qGdb07cJrlYPM2jeoFgTGEjR0bQtN+md3d1sLeMlwZfN+qQemm4dNOSejbrfzp99B+B+0LZEW+KeHugEc3j1zvURtHc2eHjBpAGvjIocdWuJiDRD0LorfbpWgHyXHYcZQOZUgBZpSsc5VGRqUB8UH41ZHhRzTqIEsJ/yPfBrZdyjuHhwKN82v4z1V4ohoFSSHKopsS64Tafj8rWhvQLzYVNvTclyvUvxojCEddNLtDB5PoXWko78TYL77uos6QANuJi1iVA/+K8+Ktlw1OzxFjV9epPZBmh6V8ZMx6ZRJoRoA7NQ8Zs6jbq/6N3D7/b4Z6mu92SQg2U/MQJZXDrPRm5s5KSUDJoJNuxb35GwblMkbtokoJMavm17v+2ya6zAm5sTxYUpvC/x8pg+MUdFwJKbUhnU3CWUNIDq30/wDcKK7w5g0nt2/2cExI4rd05svMs3g2gs27iA9xgyPBQlSmeni+aMaK9F+DDicT5ANMQ0QsGJhuFR5oKI5pYDUGCd3M757hROBwlAE1dK8qFo9JEi4WDp2qQxHBeHBBuEEnVkPVSNa4pw96B9upgX3C2O0ubuNIXAOsmKcGahgLrNAthqso9e+R+lJ52Poei7BcWkSCgYAxSkTbRjxQucfkZghHPFlz0RsdpZm0E7AoA1vmUv86SWXgqDHlcvBWCepSPTAB7zU6FT8FadPifCu0iUeriyEZp5WeOZCdjJI/63gI4T6AOrrXNlK2l9rKyxhkUAya2WeoTuZuEaxavMAIeMN5OxmrvzA0m7Y5VmqQRbW0920gC2rJCNc7DVE7rfWUgC9otKLthrb4XWivtEwFufotbZXCzfoCTqF8giDnZLLkDzpCmlx5vH5ldbrFotRhRjsLRXgAtCkknu3BrRRT4FHg7AZDDgsCLi5XwoV+JqCzjnIwZyos86/iZbwglcgejMZlG61w+IrgMbfJ4KzuZGoj0MtxJxwvikrJeh/kT3L/tg5qpiZfpeBSgol7HbJCGOcD6RpAltDI69hCjXWyftjIeGNL6 X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3104; 6:EtKmWxm392UkY0+l/qkBTviMy5htigNIqzO+C3CGRuae+Qm/rTN7fKRsXRdU5KQi87NXgScXwoYfef6jQ6bmfeSRCHT6D+sU+So2K2pxBdy4K6ZvQcJEwJqmukI2KzdlZ1QlXT0CbxVwnOyN+v43mcSM2JNNJwTobXRpPWoc4tV2CL0T7FMCw8gXnX7v+t930gFGZtwPeHxnoQVo7DuC09kLV9+JGxWexScpslSXBFovNejnju0FeIOt7N1GxMPqoPYa09uUkNWonMgnlL6RE8HpZhJmrNxOqWenkjlWwqzB/TJZuxSbSUnhLcO76bESEDtyLel0Xc1/llHZtrJG+w==; 5:DNZ7nWuUsbpGRdolqQRiCVLbip+xvKTKN7y4lNgSmn/sHl4j5Q+znFUqhwyYzZI5OXKCWlcIJVk6DjpQgS93MMisRuTEUYGLq2y5LS5ASRqqExBnFnlWlsPOJLrw8t1e55qs0PuJltxxIe4rBydH6A==; 24:nKps3jMN+POnQg8wm2pZryHlxj+Xph+hUKofxSb9B7wuesNg+xI2OZpSwHu2sMAdZEBucoYdybih9ttsvtzCW+7msoUf3V1wy9eP9aOC4VY=; 7:d87syRN4Q3adsD26RRsQAOQZm2zt0gFwPnzzY369ixBj4TrtOqnVu5BgeiP09LU2YwKhXEGFPqPnD8sqxe9bgGb+PGfJ+MWlLoeU8MNnIcTNmH6o1kqUsD+eaxP+/bKSeY20P8L8KJme8Tt6uk/IeHhwWmTV+wCO7Ygy6SnvmohpVwlhNBmMjT1X3Wxxn19M7M+wjUNNiyttjqrT+yWLF5zDeuWX9/NE38ssGeaS7Ew= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2017 06:38:15.3543 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3104 Subject: [dpdk-dev] [PATCH v2 07/10] mempool/octeontx: implement pool get count 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" Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- v1 --> v2: - Use new api octeontx_fpa_bufpool_gpool() so to get pool-id. drivers/mempool/octeontx/octeontx_fpavf.c | 27 +++++++++++++++++++++++++ drivers/mempool/octeontx/octeontx_fpavf.h | 2 ++ drivers/mempool/octeontx/rte_mempool_octeontx.c | 12 ++++++++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/drivers/mempool/octeontx/octeontx_fpavf.c b/drivers/mempool/octeontx/octeontx_fpavf.c index 44253b09e..e4a0a7f42 100644 --- a/drivers/mempool/octeontx/octeontx_fpavf.c +++ b/drivers/mempool/octeontx/octeontx_fpavf.c @@ -483,6 +483,33 @@ octeontx_fpa_bufpool_block_size(uintptr_t handle) return FPA_CACHE_LINE_2_OBJSZ(res->sz128); } +int +octeontx_fpa_bufpool_free_count(uintptr_t handle) +{ + uint64_t cnt, limit, avail; + uint8_t gpool; + uintptr_t pool_bar; + + if (unlikely(!octeontx_fpa_handle_valid(handle))) + return -EINVAL; + + /* get the gpool */ + gpool = octeontx_fpa_bufpool_gpool(handle); + + /* Get pool bar address from handle */ + pool_bar = handle & ~(uint64_t)FPA_GPOOL_MASK; + + cnt = fpavf_read64((void *)((uintptr_t)pool_bar + + FPA_VF_VHAURA_CNT(gpool))); + limit = fpavf_read64((void *)((uintptr_t)pool_bar + + FPA_VF_VHAURA_CNT_LIMIT(gpool))); + + avail = fpavf_read64((void *)((uintptr_t)pool_bar + + FPA_VF_VHPOOL_AVAILABLE(gpool))); + + return RTE_MIN(avail, (limit - cnt)); +} + uintptr_t octeontx_fpa_bufpool_create(unsigned int object_size, unsigned int object_count, unsigned int buf_offset, char **va_start, diff --git a/drivers/mempool/octeontx/octeontx_fpavf.h b/drivers/mempool/octeontx/octeontx_fpavf.h index 28440e810..471fe711a 100644 --- a/drivers/mempool/octeontx/octeontx_fpavf.h +++ b/drivers/mempool/octeontx/octeontx_fpavf.h @@ -139,6 +139,8 @@ int octeontx_fpa_bufpool_destroy(uintptr_t handle, int node); int octeontx_fpa_bufpool_block_size(uintptr_t handle); +int +octeontx_fpa_bufpool_free_count(uintptr_t handle); static __rte_always_inline uint8_t octeontx_fpa_bufpool_gpool(uintptr_t handle) diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx.c b/drivers/mempool/octeontx/rte_mempool_octeontx.c index 9477469f0..d2859a818 100644 --- a/drivers/mempool/octeontx/rte_mempool_octeontx.c +++ b/drivers/mempool/octeontx/rte_mempool_octeontx.c @@ -149,13 +149,23 @@ octeontx_fpavf_dequeue(struct rte_mempool *mp, void **obj_table, return 0; } +static unsigned int +octeontx_fpavf_get_count(const struct rte_mempool *mp) +{ + uintptr_t pool; + + pool = (uintptr_t)mp->pool_id; + + return octeontx_fpa_bufpool_free_count(pool); +} + static struct rte_mempool_ops octeontx_fpavf_ops = { .name = "octeontx_fpavf", .alloc = octeontx_fpavf_alloc, .free = octeontx_fpavf_free, .enqueue = octeontx_fpavf_enqueue, .dequeue = octeontx_fpavf_dequeue, - .get_count = NULL, + .get_count = octeontx_fpavf_get_count, .get_capabilities = NULL, .update_range = NULL, };