From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Santosh.Shukla@cavium.com>
Received: from NAM03-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam03on0056.outbound.protection.outlook.com [104.47.40.56])
 by dpdk.org (Postfix) with ESMTP id 35D2C1B1C6
 for <dev@dpdk.org>; Sun,  8 Oct 2017 14:41:18 +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=p1i1qzs7xtByzQnOHGgtwBZymcgEwELdr0pxQgAQK0U=;
 b=E1gQDTbyFec8JcDAAqpr4evHMZrqC1Djs733agMCq4wc8QIJjuCPLG7Pg0JSpSbN3E9ferEaYSX186gq9jHlmjhVQ4qQT6Eop/WKcEOMYsIH753xudlaJk5fzZu0kwK6fPY9TpGpreCYdK3il8DFjQYTf0I8rpf8Q80zdvZUozo=
Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Santosh.Shukla@cavium.com; 
Received: from localhost.localdomain (14.140.2.178) by
 MWHPR07MB3103.namprd07.prod.outlook.com (10.172.95.9) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id
 15.20.77.7; Sun, 8 Oct 2017 12:41:14 +0000
From: Santosh Shukla <santosh.shukla@caviumnetworks.com>
To: olivier.matz@6wind.com,
	dev@dpdk.org
Cc: thomas@monjalon.net, jerin.jacob@caviumnetworks.com,
 hemant.agrawal@nxp.com, Santosh Shukla <santosh.shukla@caviumnetworks.com>
Date: Sun,  8 Oct 2017 18:10:08 +0530
Message-Id: <20171008124011.1577-8-santosh.shukla@caviumnetworks.com>
X-Mailer: git-send-email 2.14.1
In-Reply-To: <20171008124011.1577-1-santosh.shukla@caviumnetworks.com>
References: <20170831063719.19273-1-santosh.shukla@caviumnetworks.com>
 <20171008124011.1577-1-santosh.shukla@caviumnetworks.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [14.140.2.178]
X-ClientProxiedBy: BMXPR01CA0045.INDPRD01.PROD.OUTLOOK.COM (10.174.214.31) To
 MWHPR07MB3103.namprd07.prod.outlook.com (10.172.95.9)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 421fa417-c849-4118-8f74-08d50e49de1f
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);
 SRVR:MWHPR07MB3103; 
X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3103;
 3:Sh5j9Zf2IGJb1A2DhIEvKZ0GEyWVlSZaaXFlJyPlbdlYp3DVv1FAXZ7U2AN8T1Oae3OS8aezU9BP8tnhV8ThFhPRiHVIMhP7woVAjoYsMECAX9YjoaCAXmHDzzelxNgRHbtTLy62DQdvetgqCqVVyZO1goJq90d8CoOwD6K/OmD+lZ2iG8UguxYwvQ6doQlZDCWS7Cl03gVso/K1AjhEoJ6/n3giDMXIu47Xhv65bG/JklrZ8kPHEJTVGBDsvfUi;
 25:DYJY5ZMPURNPzGoenwByupBifK+ooPgfw7v+1gC9BNXRrNy60dNVfFxJfPieWPa1/iGdUpjUN7PWVdcWbfF2kF20Ktw/HnFQvkQRpstJ+vucokBWZp/DfIWisCwxHhyV4B5aVxx5sAigruCimjxGgaBfFD5LGuVsed9TYzv+LYbYiVCiKYnljxJNOvooN8KmjZgikZI+eTIGcdLml67POPlpQ/Z9YKfodlbp7zz6Aijtztrrk5As9NYSqOGe+5Z+0hSfnQYrBH4MbCW+KQoQ8On4Ew9y65SdEojOaCeYmQqdGAhH0jNdvdJOaSWliF/nzQcISdTJG8ZzNA2c9hVLIA==;
 31:9Z6MPmccQt4NJ30BNP5atU//jVvsIm1xo+iqLZF6bokbXVgY8vbkPfdTlN+bubran0LhcWnEvKdXuqAD12btQhsY2+hDOyzr2ltrrt9v21aH85HaFa3YX4acTW4DjXcA8toUxVkGz/knxYyLDYlNQWzIypa9HrQ4Ow76/CSkJRYLlf6q51oSrTRCmeapIDrX34t0rr+UaG1xNQLYageQSOUdGAN0Ga3aQKV1GWL7l4M=
X-MS-TrafficTypeDiagnostic: MWHPR07MB3103:
X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3103;
 20:8ecH4atsDEmnUMFMklDvWB5oIvCtF9lTQxgD/AUGdZx/rrunjo4NJLPQVRTWMilVUDFfdY4s6aXEycnrJLZaHh6tBRwyxrVvoEddTeOlaMpNpWdVNwrwoyEovubpcbbvH0be7K/Sb2Dgy23zC9DA7Pmh/6rVfAKBJfXdxJ4UgH5WjGlXl01LDQtbDIDt2oZwdWbKI9/ZnNdy0hhgw4RlJZ5VHXuR+MmwQr6hjS6hKZrcER8Flv2e1XEHPIQoEEU6KeN6hJTxRKS6FygxcBjvuFdshsS44M1MYaWY4NEqPonXR80ca6qTHp33lJxFm/KZHBQesbqvEcCTiLeGKfzo5/+/7GrG0jTG2Fqs2pcZ7iR8R3sV9HmjPFyK0QHARogVn1Et/OvCfT+500BjB4XV/wC5clx5ltf1Y3fqVG7VI2rsLdcemTYer76mwOc0QCOCGWyOWUa8QGIxdLTZrmYGgoVtRcpQi3nzKVloec48i791KTLDGNDXgk/0icd+T5xcPf2KkHt6sf/OQyOYOlDbpEh20JWR9szWCY4pGoodZO+VeC9SBb2MQ1ls/WbCspcPljpbEr5QzxI9yebLAEJ7m242hMdhAhXdTzlloyJLyJI=;
 4:IAkLu+7XG6Fdt6upSg/cQQmYjR6+A/4mJu0esdUIw9bgDwbqLiEpHYs5O4TKCbwM1Q51CCcTsvXREOyNeG7k3I+LFVq0dBFnBjUml5gqIViXnH0h+pZTqEljcNTwk4DG0BU5e3u/7uq9dgxaFKcnMnCt/Ifjy2DiZVjFrq9jTyjhAsqu24lWY9P3kh+Bz7BQTPL7MXzK+f3w+me00n1XVRIK+8fHLLC9Re0foa63IM4XwoDyedjqEOYajDRLH9M0
X-Exchange-Antispam-Report-Test: UriScan:;
X-Microsoft-Antispam-PRVS: <MWHPR07MB310339815C7C11B1B17ACFC2EA770@MWHPR07MB3103.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(93006095)(10201501046)(6041248)(20161123562025)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:MWHPR07MB3103; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:MWHPR07MB3103; 
X-Forefront-PRVS: 0454444834
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(6009001)(6069001)(376002)(346002)(189002)(199003)(3846002)(16526018)(1076002)(6512007)(2950100002)(33646002)(478600001)(97736004)(107886003)(50466002)(25786009)(106356001)(8936002)(48376002)(36756003)(4326008)(5660300001)(50226002)(105586002)(305945005)(5009440100003)(16586007)(6666003)(189998001)(72206003)(66066001)(76176999)(81156014)(6486002)(5003940100001)(8656003)(68736007)(47776003)(316002)(53936002)(7736002)(81166006)(50986999)(2906002)(42882006)(575784001)(6116002)(8676002)(101416001)(6506006)(110426004);
 DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3103; 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; MWHPR07MB3103;
 23:GifaYGy8VcamA1fO+xPjkWoMcsC/4ak5adPgoCXoh?=
 =?us-ascii?Q?ZOdfBOXUi4OCzbVYorZx5ji8C5BR7VqC+2nR6OhPd8+wbFH7JzyW9UwG+Ehe?=
 =?us-ascii?Q?U0AlWcibajLRutVmQaOyc03SxU/RaMUVEo24Y+jK0GOMiWQr3Rd0FIMcRpH2?=
 =?us-ascii?Q?stKTR6TAqfXCiFwBwsWimNYP5yZiUFvCvmEJqxWdaXPmh+9B/rQIvA6bnH3f?=
 =?us-ascii?Q?jpqTHVKUniVIb/V1BXs6APpFiRp2Z5JyXte7ZKLkOTl2ZVbmQRaMIDXiDb2U?=
 =?us-ascii?Q?viVUz2nvJtT8KqUm4C7Thu4KT+MVH6bDQ7gubTx7v40vOMpxyt/dsSB3LqiI?=
 =?us-ascii?Q?iJNz/YHwBBSCxzwEa5j6MD5B0ySX3440WTV29l6RU0VbsIjlqQgH+k9o2Lkq?=
 =?us-ascii?Q?v1C4d9WKhVXOIN+elNKPTfF8aCcwwgCyM4oF2clxGVG9stSlRxDp7UXcBzyX?=
 =?us-ascii?Q?NGcBun1lhBes+DaSkvueYxpAcFYEnoBuAhPTVYKkFevMfm6tUzZeE6OZnlPE?=
 =?us-ascii?Q?kXKR2ByYKzJRTMb1RUC+B5wIUALczlpiF2g3zTpKtmr91fpQuCWSFxAMAKtG?=
 =?us-ascii?Q?rmmmY8XhlT72HxAXIZnireTQyIAm842yvI8M9uTi7B0mR6OjDobFfDg45rQC?=
 =?us-ascii?Q?qE37tKWUFfMLav9Br5r4EcYa8ftGJWi6uVaPk1GbQSH6EUiSvykiSWE40KuX?=
 =?us-ascii?Q?WFy3b/TbgIDjc+Il2v9fRcUZqQ6EOeClyScpvHiLHHh12TVxYxEEZNAvAUcW?=
 =?us-ascii?Q?A54sgYJwUOkn1FWs+eu47yrGDJYUxmbbC2lJAoTshxRyag0ijrCU0tqv2Atg?=
 =?us-ascii?Q?aRufDhYSkI0yI50tOGps2rEDZ5s+bQt7afStkCuYktGP5PXc+NjtDgbeSt3a?=
 =?us-ascii?Q?hJoVVydWqRRq2did/H1MPhj2uG0FnerRhMKcxC5KbxaHWmKcsgS4KHiiIXUl?=
 =?us-ascii?Q?ukRGjWDqFAldKfx8ca1G2APnhPNa8Gga3NaiqXHU5udtrX/thl1B4T7Nh+iZ?=
 =?us-ascii?Q?pi26yyZCpmoz3N7WHcnM65JdLr9OoqVcbOaRmWyahA6jggcSEpkxuZKdLnQ1?=
 =?us-ascii?Q?agZsP1q3eOk2lBYcsljfZKwQ973QzxXI0dM5TJU46fkQ65YbcUllpCm0sCct?=
 =?us-ascii?Q?NSJKYivStN4Qw1PkKADSC46gK6BHYzmM6yprXsZov2DpI+PB5Y0jG70Ak3oQ?=
 =?us-ascii?Q?Luwc0y9U/A4KXEmhFLP8qVsKIJInYdA3f+FMa+jgTUv3tWuykY6ZeLQ7Q=3D?=
 =?us-ascii?Q?=3D?=
X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3103;
 6:boOhR7ibmyxmYXmZ0VZfTbVWRH9HkfV3AGV2wqu2kPOnHc9vFhO+qcG9OGJMRUTmehlK/mt6QZvphWUjt+QOdYH2tPU8LdUr9k1lXijvuVjPiDWuqxHFQSYW6BSukKw3O9FhgnR3uC5xniOwJ+vZ1GFuuLuTqwQvChH/JBbXXU2KbmNYNhRdfm9tMcI+TJhUX5Q1kCtzgDQNGKkHKL+7kAIaVK6fR6hWa5epp46vRczdTUqJ1k0Ejz2lMVNYs3FJYFm+z0dsdifZ3NJyJginuKyuhcmmev8JsBTJGykJdz48s2e+bnhenUZvZP07/hNTr9M1/lZe9mUWpRRxwa+vPw==;
 5:zMC8nVufV/+395NLQOEHUn44Rg9mk8XHP9MHdmnvdYVKdg9Yc2Kk9iqBMXprFDww34CAbxKqKd2Gf+du9L5AMySAJNbZdmhmg/ZTYqHtlnUb12+rcgMvgJy1zRAuqYBr70iR9hMHLGAOQjygDG9U6Q==;
 24:rrVKiZj2TDVgSzMZzviNE7ugggq1lxDmkDk0jdDK2NK8p49pKF3iQ5SV2bwcL1jEI+EztnKqeyvZbV+icNj8zmj+3NQFDJ0GZB0pda7bz98=;
 7:62oW+1wbJA1mgbdcEeVPW4jwr7FzceKzU4ziZxWnimcg9sLx22QDzGRNlPvNCjClNJYtZmgUFNPEa868YjS585IqqFXT2UK43UB90xR/p8G5FPGcI0dp4up3kAxnH6g/hwo77wuzh0vGkYjCpwiHBh1n13Zlg/zuMT8Sx1z5bIBn4Wky/MyX5TETubk0GALEfLjGQ4COFayrniWMRUnrWe8s54mn+YyHH9qmIHuuW2s=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2017 12:41:14.0117 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3103
Subject: [dpdk-dev] [PATCH v3 07/10] mempool/octeontx: add support for get
	count
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Sun, 08 Oct 2017 12:41:18 -0000

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 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 10264a6bf..42d93b833 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,
 	.register_memory_area = NULL,
 };
-- 
2.14.1