public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Bob Pearson <rpearsonhpe@gmail.com>
To: jgg@nvidia.com, zyjzyj2000@gmail.com, leon@kernel.org,
	jhack@hpe.com, ian.ziemba@hpe.com, matsuda-daisuke@fujitsu.com,
	lizhijian@fujitsu.com, haris.phnx@gmail.com,
	linux-rdma@vger.kernel.org
Cc: Bob Pearson <rpearsonhpe@gmail.com>
Subject: [PATCH for-next v2 18/18] RDMA/rxe: Add parameters to control task type
Date: Fri, 21 Oct 2022 15:01:19 -0500	[thread overview]
Message-ID: <20221021200118.2163-19-rpearsonhpe@gmail.com> (raw)
In-Reply-To: <20221021200118.2163-1-rpearsonhpe@gmail.com>

Add modparams to control the task types for req, comp, and resp
tasks.

It is expected that the work queue version will take the place of
the tasklet version once this patch series is accepted and moved
upstream. However, for now it is convenient to keep the option of
easily switching between the versions to help benchmarking and
debugging.

Signed-off-by: Ian Ziemba <ian.ziemba@hpe.com>
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
---
 drivers/infiniband/sw/rxe/rxe_qp.c   | 6 +++---
 drivers/infiniband/sw/rxe/rxe_task.c | 8 ++++++++
 drivers/infiniband/sw/rxe/rxe_task.h | 4 ++++
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/infiniband/sw/rxe/rxe_qp.c b/drivers/infiniband/sw/rxe/rxe_qp.c
index 50f6b8b8ad9d..673d52271062 100644
--- a/drivers/infiniband/sw/rxe/rxe_qp.c
+++ b/drivers/infiniband/sw/rxe/rxe_qp.c
@@ -238,9 +238,9 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp,
 
 	skb_queue_head_init(&qp->req_pkts);
 
-	rxe_init_task(&qp->req.task, qp, rxe_requester, RXE_TASK_TYPE_TASKLET);
+	rxe_init_task(&qp->req.task, qp, rxe_requester, rxe_req_task_type);
 	rxe_init_task(&qp->comp.task, qp, rxe_completer,
-			(qp_type(qp) == IB_QPT_RC) ? RXE_TASK_TYPE_TASKLET :
+			(qp_type(qp) == IB_QPT_RC) ? rxe_comp_task_type :
 						     RXE_TASK_TYPE_INLINE);
 
 	qp->qp_timeout_jiffies = 0; /* Can't be set for UD/UC in modify_qp */
@@ -288,7 +288,7 @@ static int rxe_qp_init_resp(struct rxe_dev *rxe, struct rxe_qp *qp,
 
 	skb_queue_head_init(&qp->resp_pkts);
 
-	rxe_init_task(&qp->resp.task, qp, rxe_responder, RXE_TASK_TYPE_TASKLET);
+	rxe_init_task(&qp->resp.task, qp, rxe_responder, rxe_resp_task_type);
 
 	qp->resp.opcode		= OPCODE_NONE;
 	qp->resp.msn		= 0;
diff --git a/drivers/infiniband/sw/rxe/rxe_task.c b/drivers/infiniband/sw/rxe/rxe_task.c
index 9b8c9d28ee46..4568c4a05e85 100644
--- a/drivers/infiniband/sw/rxe/rxe_task.c
+++ b/drivers/infiniband/sw/rxe/rxe_task.c
@@ -6,6 +6,14 @@
 
 #include "rxe.h"
 
+int rxe_req_task_type = RXE_TASK_TYPE_TASKLET;
+int rxe_comp_task_type = RXE_TASK_TYPE_TASKLET;
+int rxe_resp_task_type = RXE_TASK_TYPE_TASKLET;
+
+module_param_named(req_task_type, rxe_req_task_type, int, 0664);
+module_param_named(comp_task_type, rxe_comp_task_type, int, 0664);
+module_param_named(resp_task_type, rxe_resp_task_type, int, 0664);
+
 static struct workqueue_struct *rxe_wq;
 
 int rxe_alloc_wq(void)
diff --git a/drivers/infiniband/sw/rxe/rxe_task.h b/drivers/infiniband/sw/rxe/rxe_task.h
index d1156b935635..5a2ac7ada05b 100644
--- a/drivers/infiniband/sw/rxe/rxe_task.h
+++ b/drivers/infiniband/sw/rxe/rxe_task.h
@@ -7,6 +7,10 @@
 #ifndef RXE_TASK_H
 #define RXE_TASK_H
 
+extern int rxe_req_task_type;
+extern int rxe_comp_task_type;
+extern int rxe_resp_task_type;
+
 struct rxe_task;
 
 struct rxe_task_ops {
-- 
2.34.1


  parent reply	other threads:[~2022-10-21 20:03 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-21 20:01 [PATCH v2 00/18] Implement work queues for rdma_rxe Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 01/18] RDMA/rxe: Remove redundant header files Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 02/18] RDMA/rxe: Remove init of task locks from rxe_qp.c Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 03/18] RDMA/rxe: Removed unused name from rxe_task struct Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 04/18] RDMA/rxe: Split rxe_run_task() into two subroutines Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 05/18] RDMA/rxe: Make rxe_do_task static Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 06/18] RDMA/rxe: Rename task->state_lock to task->lock Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 07/18] RDMA/rxe: Make task interface pluggable Bob Pearson
2022-10-25  8:02   ` Daisuke Matsuda (Fujitsu)
2022-10-25 14:16     ` Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 08/18] RDMA/rxe: Split rxe_drain_resp_pkts() Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 09/18] RDMA/rxe: Simplify reset state handling in rxe_resp.c Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 10/18] RDMA/rxe: Handle qp error " Bob Pearson
2022-10-21 21:22   ` kernel test robot
2022-10-21 20:01 ` [PATCH for-next v2 11/18] RDMA/rxe: Cleanup comp tasks in rxe_qp.c Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 12/18] RDMA/rxe: Remove __rxe_do_task() Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 13/18] RDMA/rxe: Make tasks schedule each other Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 14/18] RDMA/rxe: Implement disable/enable_task() Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 15/18] RDMA/rxe: Replace TASK_STATE_START by TASK_STATE_IDLE Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 16/18] RDMA/rxe: Replace task->destroyed by task state INVALID Bob Pearson
2022-10-21 20:01 ` [PATCH for-next v2 17/18] RDMA/rxe: Add workqueue support for tasks Bob Pearson
2022-10-21 20:01 ` Bob Pearson [this message]
2022-10-25  9:35   ` [PATCH for-next v2 18/18] RDMA/rxe: Add parameters to control task type Daisuke Matsuda (Fujitsu)
2022-10-25 11:18     ` Jason Gunthorpe
2022-10-25 14:31       ` Bob Pearson
2022-10-25 16:27         ` Jason Gunthorpe
2022-10-25 14:49     ` Bob Pearson
2022-10-26  7:07       ` Daisuke Matsuda (Fujitsu)
2022-10-28 17:04 ` [PATCH v2 00/18] Implement work queues for rdma_rxe Jason Gunthorpe
2022-10-28 18:16   ` Bob Pearson
2022-10-28 18:17     ` Jason Gunthorpe
2022-10-28 18:58       ` Bob Pearson
2022-10-28 19:16         ` Jason Gunthorpe
2022-10-28 19:29           ` Pearson, Robert B

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=20221021200118.2163-19-rpearsonhpe@gmail.com \
    --to=rpearsonhpe@gmail.com \
    --cc=haris.phnx@gmail.com \
    --cc=ian.ziemba@hpe.com \
    --cc=jgg@nvidia.com \
    --cc=jhack@hpe.com \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=lizhijian@fujitsu.com \
    --cc=matsuda-daisuke@fujitsu.com \
    --cc=zyjzyj2000@gmail.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