From: Edward Srouji <edwards@nvidia.com>
To: Jason Gunthorpe <jgg@ziepe.ca>, Leon Romanovsky <leon@kernel.org>,
"Saeed Mahameed" <saeedm@nvidia.com>,
Tariq Toukan <tariqt@nvidia.com>, Mark Bloch <mbloch@nvidia.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Cc: <linux-kernel@vger.kernel.org>, <linux-rdma@vger.kernel.org>,
<netdev@vger.kernel.org>,
Michael Guralnik <michaelgur@nvidia.com>,
"Edward Srouji" <edwards@nvidia.com>,
Yishai Hadas <yishaih@nvidia.com>
Subject: [PATCH rdma-next v4 04/11] RDMA/core: Add FRMR pools statistics
Date: Thu, 26 Feb 2026 15:52:09 +0200 [thread overview]
Message-ID: <20260226-frmr_pools-v4-4-95360b54f15e@nvidia.com> (raw)
In-Reply-To: <20260226-frmr_pools-v4-0-95360b54f15e@nvidia.com>
From: Michael Guralnik <michaelgur@nvidia.com>
Count for each pool the number of FRMR handles popped and held by user
MRs.
Also keep track of the max value of this counter.
Next patches will expose the statistics through netlink.
Signed-off-by: Michael Guralnik <michaelgur@nvidia.com>
Reviewed-by: Yishai Hadas <yishaih@nvidia.com>
Signed-off-by: Edward Srouji <edwards@nvidia.com>
---
drivers/infiniband/core/frmr_pools.c | 12 ++++++++++--
drivers/infiniband/core/frmr_pools.h | 3 +++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/core/frmr_pools.c b/drivers/infiniband/core/frmr_pools.c
index 7bfa001b2c731df2de24ebc61cfc8e419ae0de5d..6a3d1cc75cb0d305ce125a0da1e31d530252514c 100644
--- a/drivers/infiniband/core/frmr_pools.c
+++ b/drivers/infiniband/core/frmr_pools.c
@@ -310,19 +310,24 @@ static int get_frmr_from_pool(struct ib_device *device,
if (pool->inactive_queue.ci > 0) {
handle = pop_handle_from_queue_locked(
&pool->inactive_queue);
- spin_unlock(&pool->lock);
} else {
spin_unlock(&pool->lock);
err = pools->pool_ops->create_frmrs(device, &pool->key,
&handle, 1);
if (err)
return err;
+ spin_lock(&pool->lock);
}
} else {
handle = pop_handle_from_queue_locked(&pool->queue);
- spin_unlock(&pool->lock);
}
+ pool->in_use++;
+ if (pool->in_use > pool->max_in_use)
+ pool->max_in_use = pool->in_use;
+
+ spin_unlock(&pool->lock);
+
mr->frmr.pool = pool;
mr->frmr.handle = handle;
@@ -374,6 +379,9 @@ int ib_frmr_pool_push(struct ib_device *device, struct ib_mr *mr)
if (pool->queue.ci == 0)
schedule_aging = true;
ret = push_handle_to_queue_locked(&pool->queue, mr->frmr.handle);
+ if (ret == 0)
+ pool->in_use--;
+
spin_unlock(&pool->lock);
if (ret == 0 && schedule_aging)
diff --git a/drivers/infiniband/core/frmr_pools.h b/drivers/infiniband/core/frmr_pools.h
index a20323e03e3f446856dda921811e2359232e0b82..814d8a2106c2978a1a1feca3ba50420025fca994 100644
--- a/drivers/infiniband/core/frmr_pools.h
+++ b/drivers/infiniband/core/frmr_pools.h
@@ -42,6 +42,9 @@ struct ib_frmr_pool {
struct delayed_work aging_work;
struct ib_device *device;
+
+ u32 max_in_use;
+ u32 in_use;
};
struct ib_frmr_pools {
--
2.49.0
next prev parent reply other threads:[~2026-02-26 13:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-26 13:52 [PATCH rdma-next v4 00/11] RDMA/core: Introduce FRMR pools infrastructure Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 01/11] RDMA/mlx5: Move device async_ctx initialization Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 02/11] IB/core: Introduce FRMR pools Edward Srouji
2026-02-26 14:11 ` Leon Romanovsky
2026-02-26 17:39 ` Edward Srouji
2026-02-26 18:28 ` Leon Romanovsky
2026-02-26 13:52 ` [PATCH rdma-next v4 03/11] RDMA/core: Add aging to " Edward Srouji
2026-02-26 13:52 ` Edward Srouji [this message]
2026-02-26 13:52 ` [PATCH rdma-next v4 05/11] RDMA/core: Add pinned handles " Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 06/11] RDMA/mlx5: Switch from MR cache " Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 07/11] net/mlx5: Drop MR cache related code Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 08/11] RDMA/nldev: Add command to get FRMR pools Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 09/11] RDMA/core: Add netlink command to modify FRMR aging Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 10/11] RDMA/nldev: Add command to set pinned FRMR handles Edward Srouji
2026-02-26 13:52 ` [PATCH rdma-next v4 11/11] RDMA/nldev: Expose kernel-internal FRMR pools in netlink Edward Srouji
2026-03-02 13:57 ` [PATCH rdma-next v4 00/11] RDMA/core: Introduce FRMR pools infrastructure Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260226-frmr_pools-v4-4-95360b54f15e@nvidia.com \
--to=edwards@nvidia.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jgg@ziepe.ca \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=mbloch@nvidia.com \
--cc=michaelgur@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
--cc=yishaih@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox