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>,
Firas Jahjah <firasj@amazon.com>
Subject: [PATCH for-next 2/2] RDMA/efa: Expose new extended max inline buff size
Date: Sun, 15 Feb 2026 12:04:51 +0000 [thread overview]
Message-ID: <20260215120451.18053-3-ynachum@amazon.com> (raw)
In-Reply-To: <20260215120451.18053-1-ynachum@amazon.com>
Add new extended max inline query and report the new value to userspace.
Reviewed-by: Firas Jahjah <firasj@amazon.com>
Reviewed-by: Michael Margolin <mrgolin@amazon.com>
Signed-off-by: Yonatan Nachum <ynachum@amazon.com>
---
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 14 +++++++++++++-
drivers/infiniband/hw/efa/efa_com_cmd.c | 15 +++++++++++++++
drivers/infiniband/hw/efa/efa_com_cmd.h | 3 ++-
drivers/infiniband/hw/efa/efa_verbs.c | 3 ++-
include/uapi/rdma/efa-abi.h | 5 +++--
5 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h b/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
index 5bbc765b6e3f..93e5ffe900e9 100644
--- a/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
+++ b/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
@@ -42,6 +42,7 @@ enum efa_admin_aq_feature_id {
EFA_ADMIN_HW_HINTS = 5,
EFA_ADMIN_HOST_INFO = 6,
EFA_ADMIN_EVENT_QUEUE_ATTR = 7,
+ EFA_ADMIN_QUEUE_ATTR_2 = 8,
};
/* QP transport type */
@@ -751,7 +752,11 @@ struct efa_admin_feature_queue_attr_desc_1 {
/* Maximum number of WQEs per Send Queue */
u32 max_sq_depth;
- /* Maximum size of data that can be sent inline in a Send WQE */
+ /*
+ * Maximum size of data that can be sent inline in a Send WQE
+ * (deprecated by
+ * efa_admin_feature_queue_attr_desc_2::inline_buf_size_ex)
+ */
u32 inline_buf_size;
/* Maximum number of buffer descriptors per Recv Queue */
@@ -805,6 +810,11 @@ struct efa_admin_feature_queue_attr_desc_1 {
u16 max_tx_batch;
};
+struct efa_admin_feature_queue_attr_desc_2 {
+ /* Maximum size of data that can be sent inline in a Send WQE */
+ u16 inline_buf_size_ex;
+};
+
struct efa_admin_event_queue_attr_desc {
/* The maximum number of event queues supported */
u32 max_eq;
@@ -874,6 +884,8 @@ struct efa_admin_get_feature_resp {
struct efa_admin_feature_queue_attr_desc_1 queue_attr_1;
+ struct efa_admin_feature_queue_attr_desc_2 queue_attr_2;
+
struct efa_admin_event_queue_attr_desc event_queue_attr;
struct efa_admin_hw_hints hw_hints;
diff --git a/drivers/infiniband/hw/efa/efa_com_cmd.c b/drivers/infiniband/hw/efa/efa_com_cmd.c
index 592c420e4473..63c7f07806a8 100644
--- a/drivers/infiniband/hw/efa/efa_com_cmd.c
+++ b/drivers/infiniband/hw/efa/efa_com_cmd.c
@@ -505,6 +505,21 @@ int efa_com_get_device_attr(struct efa_com_dev *edev,
result->max_tx_batch = resp.u.queue_attr_1.max_tx_batch;
result->min_sq_depth = resp.u.queue_attr_1.min_sq_depth;
+ if (efa_com_check_supported_feature_id(edev, EFA_ADMIN_QUEUE_ATTR_2)) {
+ err = efa_com_get_feature(edev, &resp,
+ EFA_ADMIN_QUEUE_ATTR_2);
+ if (err) {
+ ibdev_err_ratelimited(
+ edev->efa_dev,
+ "Failed to get queue attributes2 %d\n", err);
+ return err;
+ }
+
+ result->inline_buf_size_ex = resp.u.queue_attr_2.inline_buf_size_ex;
+ } else {
+ result->inline_buf_size_ex = result->inline_buf_size;
+ }
+
err = efa_com_get_feature(edev, &resp, EFA_ADMIN_NETWORK_ATTR);
if (err) {
ibdev_err_ratelimited(edev->efa_dev,
diff --git a/drivers/infiniband/hw/efa/efa_com_cmd.h b/drivers/infiniband/hw/efa/efa_com_cmd.h
index 3ac2686abba1..ef15b3c38429 100644
--- a/drivers/infiniband/hw/efa/efa_com_cmd.h
+++ b/drivers/infiniband/hw/efa/efa_com_cmd.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
/*
- * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#ifndef _EFA_COM_CMD_H_
@@ -127,6 +127,7 @@ struct efa_com_get_device_attr_result {
u32 max_cq;
u32 max_cq_depth; /* cqes */
u32 inline_buf_size;
+ u32 inline_buf_size_ex;
u32 max_mr;
u32 max_pd;
u32 max_ah;
diff --git a/drivers/infiniband/hw/efa/efa_verbs.c b/drivers/infiniband/hw/efa/efa_verbs.c
index 22d3e25c3b9d..85c3a7dd4335 100644
--- a/drivers/infiniband/hw/efa/efa_verbs.c
+++ b/drivers/infiniband/hw/efa/efa_verbs.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
/*
- * Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#include <linux/dma-buf.h>
@@ -1994,6 +1994,7 @@ int efa_alloc_ucontext(struct ib_ucontext *ibucontext, struct ib_udata *udata)
resp.cmds_supp_udata_mask |= EFA_USER_CMDS_SUPP_UDATA_CREATE_AH;
resp.sub_cqs_per_cq = dev->dev_attr.sub_cqs_per_cq;
resp.inline_buf_size = dev->dev_attr.inline_buf_size;
+ resp.inline_buf_size_ex = dev->dev_attr.inline_buf_size_ex;
resp.max_llq_size = dev->dev_attr.max_llq_size;
resp.max_tx_batch = dev->dev_attr.max_tx_batch;
resp.min_sq_wr = dev->dev_attr.min_sq_depth;
diff --git a/include/uapi/rdma/efa-abi.h b/include/uapi/rdma/efa-abi.h
index 98b71b9979f8..13225b038124 100644
--- a/include/uapi/rdma/efa-abi.h
+++ b/include/uapi/rdma/efa-abi.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
/*
- * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#ifndef EFA_ABI_USER_H
@@ -44,7 +44,8 @@ struct efa_ibv_alloc_ucontext_resp {
__u32 max_llq_size; /* bytes */
__u16 max_tx_batch; /* units of 64 bytes */
__u16 min_sq_wr;
- __u8 reserved_a0[4];
+ __u16 inline_buf_size_ex;
+ __u8 reserved_b0[2];
};
struct efa_ibv_alloc_pd_resp {
--
2.47.3
prev parent reply other threads:[~2026-02-15 12:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-15 12:04 [PATCH for-next 0/2] RDMA/efa: Expose extended max inline buffer size Yonatan Nachum
2026-02-15 12:04 ` [PATCH for-next 1/2] RDMA/efa: Rename admin queue attributes struct name for extendability Yonatan Nachum
2026-02-15 12:04 ` Yonatan Nachum [this message]
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=20260215120451.18053-3-ynachum@amazon.com \
--to=ynachum@amazon.com \
--cc=firasj@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