From patchwork Sun Oct 8 12:40:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 29890 X-Patchwork-Delegate: thomas@monjalon.net 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 D38031B1A6; Sun, 8 Oct 2017 14:41:19 +0200 (CEST) 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 ; 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 To: olivier.matz@6wind.com, dev@dpdk.org Cc: thomas@monjalon.net, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, Santosh Shukla 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 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: 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?= ZOdfBOXUi4OCzbVYorZx5ji8C5BR7VqC+2nR6OhPd8+wbFH7JzyW9UwG+EheU0AlWcibajLRutVmQaOyc03SxU/RaMUVEo24Y+jK0GOMiWQr3Rd0FIMcRpH2stKTR6TAqfXCiFwBwsWimNYP5yZiUFvCvmEJqxWdaXPmh+9B/rQIvA6bnH3fjpqTHVKUniVIb/V1BXs6APpFiRp2Z5JyXte7ZKLkOTl2ZVbmQRaMIDXiDb2UviVUz2nvJtT8KqUm4C7Thu4KT+MVH6bDQ7gubTx7v40vOMpxyt/dsSB3LqiIiJNz/YHwBBSCxzwEa5j6MD5B0ySX3440WTV29l6RU0VbsIjlqQgH+k9o2Lkqv1C4d9WKhVXOIN+elNKPTfF8aCcwwgCyM4oF2clxGVG9stSlRxDp7UXcBzyXNGcBun1lhBes+DaSkvueYxpAcFYEnoBuAhPTVYKkFevMfm6tUzZeE6OZnlPEkXKR2ByYKzJRTMb1RUC+B5wIUALczlpiF2g3zTpKtmr91fpQuCWSFxAMAKtGrmmmY8XhlT72HxAXIZnireTQyIAm842yvI8M9uTi7B0mR6OjDobFfDg45rQCqE37tKWUFfMLav9Br5r4EcYa8ftGJWi6uVaPk1GbQSH6EUiSvykiSWE40KuXWFy3b/TbgIDjc+Il2v9fRcUZqQ6EOeClyScpvHiLHHh12TVxYxEEZNAvAUcWA54sgYJwUOkn1FWs+eu47yrGDJYUxmbbC2lJAoTshxRyag0ijrCU0tqv2AtgaRufDhYSkI0yI50tOGps2rEDZ5s+bQt7afStkCuYktGP5PXc+NjtDgbeSt3ahJoVVydWqRRq2did/H1MPhj2uG0FnerRhMKcxC5KbxaHWmKcsgS4KHiiIXUlukRGjWDqFAldKfx8ca1G2APnhPNa8Gga3NaiqXHU5udtrX/thl1B4T7Nh+iZpi26yyZCpmoz3N7WHcnM65JdLr9OoqVcbOaRmWyahA6jggcSEpkxuZKdLnQ1agZsP1q3eOk2lBYcsljfZKwQ973QzxXI0dM5TJU46fkQ65YbcUllpCm0sCctNSJKYivStN4Qw1PkKADSC46gK6BHYzmM6yprXsZov2DpI+PB5Y0jG70Ak3oQLuwc0y9U/A4KXEmhFLP8qVsKIJInYdA3f+FMa+jgTUv3tWuykY6ZeLQ7Q== 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 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 --- 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, };