From: Yonatan Nachum <ynachum@amazon.com>
To: <jgg@nvidia.com>, <leon@kernel.org>, <linux-rdma@vger.kernel.org>
Cc: <mrgolin@amazon.com>, <sleybo@amazon.com>, <matua@amazon.com>,
<gal.pressman@linux.dev>, Yonatan Nachum <ynachum@amazon.com>
Subject: [PATCH for-next v2 0/2] RDMA/efa: Add AH cache for AH reuse
Date: Tue, 12 May 2026 06:11:19 +0000 [thread overview]
Message-ID: <20260512061121.2177521-1-ynachum@amazon.com> (raw)
Changelog:
v2:
* Zero-initialize AH cache key on cache lookup.
v1: https://lore.kernel.org/all/20260510083035.458081-1-ynachum@amazon.com/
-------------------------------------------------------------------------
New EFA devices don't support the creation of multiple AHs to the same
remote on the same PD. To overcome this limitation, introduce an AH
cache that manages AH reuse transparently.
The cache uses an rhashtable keyed by (PD, GID) to track active address
handles with refcounts. On create AH, the driver returns an existing AH
number if one is already cached, or creates a new one and caches it. On
destroy AH, the driver only issues the device destroy command when the
last reference is dropped.
A per-entry mutex serializes concurrent device commands on the same
cache entry, preventing create-before-destroy races on the device.
Yonatan Nachum (2):
RDMA/efa: Add initialization of AH cache rhashtable
RDMA/efa: Add AH cache handling on create and destroy AH
drivers/infiniband/hw/efa/Makefile | 4 +-
drivers/infiniband/hw/efa/efa_ah_cache.c | 154 +++++++++++++++++++++++
drivers/infiniband/hw/efa/efa_ah_cache.h | 41 ++++++
drivers/infiniband/hw/efa/efa_com.c | 12 +-
drivers/infiniband/hw/efa/efa_com.h | 5 +-
drivers/infiniband/hw/efa/efa_com_cmd.c | 27 ++++
drivers/infiniband/hw/efa/efa_com_cmd.h | 1 +
drivers/infiniband/hw/efa/efa_verbs.c | 9 +-
8 files changed, 245 insertions(+), 8 deletions(-)
create mode 100644 drivers/infiniband/hw/efa/efa_ah_cache.c
create mode 100644 drivers/infiniband/hw/efa/efa_ah_cache.h
--
2.50.1
next reply other threads:[~2026-05-12 6:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-12 6:11 Yonatan Nachum [this message]
2026-05-12 6:11 ` [PATCH for-next v2 1/2] RDMA/efa: Add initialization of AH cache rhashtable Yonatan Nachum
2026-05-12 6:11 ` [PATCH for-next v2 2/2] RDMA/efa: Add AH cache handling on create and destroy AH Yonatan Nachum
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=20260512061121.2177521-1-ynachum@amazon.com \
--to=ynachum@amazon.com \
--cc=gal.pressman@linux.dev \
--cc=jgg@nvidia.com \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=matua@amazon.com \
--cc=mrgolin@amazon.com \
--cc=sleybo@amazon.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