Linux-RDMA Archive mirror
 help / color / mirror / Atom feed
From: Konstantin Taranov <kotaranov@linux.microsoft.com>
To: kotaranov@microsoft.com, sharmaajay@microsoft.com,
	longli@microsoft.com, jgg@ziepe.ca, leon@kernel.org
Cc: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH rdma-next v2 0/5] RDMA/mana_ib: Implement RNIC CQs
Date: Fri, 26 Apr 2024 06:12:35 -0700	[thread overview]
Message-ID: <1714137160-5222-1-git-send-email-kotaranov@linux.microsoft.com> (raw)

From: Konstantin Taranov <kotaranov@microsoft.com>

This patch series implements creation and destruction of CQs
which can be used with RC QPs.

Patches with RC QPs will be sent in the next patch series.

To create a CQ for RNIC, mana_ib requires creation of EQs
within mana_ib device. An EQ of mana ethernet cannot be used.

To make the implementation of create_cq cleaner, this series
also introduces a helper to remove CQ callbacks.

Mana ethernet and mana_ib CQs are different entities which are
created in different isolation zones (ethernet vs rnic).
As a result, RNIC cannot use ethenet CQs and ethernet cannot
use RNIC CQs.
That is why, we use existing udata request for creation of
ethernet CQs. If the request has an extra flag, then we create
an RNIC CQ. The kernel-level CQs will be RNIC CQs (in future
patches).

To preserve backward and forward compatibility with RDMA-CORE,
we will make the following changes to mana provider in RDMA-CORE:

The rdma-core will request RNIC CQs by default, with the proposed
request format and the special flag.
If the mana has installed an allocator with manadv_set_context_attr,
then the rdma-core understands that this is a DPDK use-case and
requests an ethernet CQ, by not setting the flag.

If the user has a new RDMA-core and an old kernel, then the user can
detect it as the response to create RNIC cq will not have queue id.

If the user has an old RDMA-core, then the flags will be 0 and ethernet
CQ will be created (as expected by the user).

v1->v2:
1) removed patch that replace cqe with buf_size
2) added aditional check of queue id in the remove cb helper
3) removed buf_size from uapi request and added flags instead. It seems
to be a better proposal that will not require to increase the ABI version.

Konstantin Taranov (5):
  RDMA/mana_ib: create EQs for RNIC CQs
  RDMA/mana_ib: create and destroy RNIC cqs
  RDMA/mana_ib: introduce a helper to remove cq callbacks
  RDMA/mana_ib: boundary check before installing cq callbacks
  RDMA/mana_ib: implement uapi for creation of rnic cq

 drivers/infiniband/hw/mana/cq.c      | 74 +++++++++++++++++++----
 drivers/infiniband/hw/mana/main.c    | 88 +++++++++++++++++++++++++++-
 drivers/infiniband/hw/mana/mana_ib.h | 34 +++++++++++
 drivers/infiniband/hw/mana/qp.c      | 26 ++------
 include/uapi/rdma/mana-abi.h         | 12 ++++
 5 files changed, 200 insertions(+), 34 deletions(-)

-- 
2.43.0


             reply	other threads:[~2024-04-26 13:12 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-26 13:12 Konstantin Taranov [this message]
2024-04-26 13:12 ` [PATCH rdma-next v2 1/5] RDMA/mana_ib: create EQs for RNIC CQs Konstantin Taranov
2024-04-26 13:12 ` [PATCH rdma-next v2 2/5] RDMA/mana_ib: create and destroy RNIC cqs Konstantin Taranov
2024-04-26 13:12 ` [PATCH rdma-next v2 3/5] RDMA/mana_ib: introduce a helper to remove cq callbacks Konstantin Taranov
2024-04-26 13:12 ` [PATCH rdma-next v2 4/5] RDMA/mana_ib: boundary check before installing " Konstantin Taranov
2024-04-26 13:12 ` [PATCH rdma-next v2 5/5] RDMA/mana_ib: implement uapi for creation of rnic cq Konstantin Taranov
2024-04-29 18:08   ` Long Li
2024-05-01 14:01     ` Konstantin Taranov
2024-05-02 17:05       ` Long Li
2024-05-02 17:04   ` Long Li
2024-05-05 12:29 ` [PATCH rdma-next v2 0/5] RDMA/mana_ib: Implement RNIC CQs 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=1714137160-5222-1-git-send-email-kotaranov@linux.microsoft.com \
    --to=kotaranov@linux.microsoft.com \
    --cc=jgg@ziepe.ca \
    --cc=kotaranov@microsoft.com \
    --cc=leon@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=longli@microsoft.com \
    --cc=sharmaajay@microsoft.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).