From: Bob Pearson <rpearsonhpe@gmail.com>
To: jgg@nvidia.com, zyjzyj2000@gmail.com,
matsuda-daisuke@fujitsu.com, lizhijian@fujitsu.com,
leon@kernel.org, linux-rdma@vger.kernel.org, jenny.hack@hpe.com,
ian.ziemba@hpe.com
Cc: Bob Pearson <rpearsonhpe@gmail.com>
Subject: [PATCH for-next 00/16] Implement work queues for rdma_rxe
Date: Mon, 17 Oct 2022 23:33:30 -0500 [thread overview]
Message-ID: <20221018043345.4033-1-rpearsonhpe@gmail.com> (raw)
This patch series implements work queues as an alternative for
the main tasklets in the rdma_rxe driver. The first few patches
perform some cleanups of the current tasklet code followed by a
patch that makes the internal API for task execution pluggable and
implements an inline and a tasklet based set of functions.
The remaining patches cleanup the qp reset and error code in the
three tasklets and modify the locking logic to prevent making
multiple calls to the tasklet scheduling routine. Finally after
this preparation the work queue equivalent set of functions is
added and module parameters are implemented to allow tuning the
task types.
The advantages of the work queue version of deferred task execution
is mainly that the work queue variant has much better scalability
and overall performance than the tasklet variant. The tasklet
performance saturates with one connected queue pair and stays constant.
The work queue performance is slightly better for one queue pair but
scales up with the number of connected queue pairs. The perftest
microbenchmarks in local loopback mode (not a very realistic test
case) can reach approximately 100Gb/sec with work queues compared to
about 16Gb/sec for tasklets.
This patch series is derived from an earlier patch set developed by
Ian Ziemba at HPE which is used in some Lustre storage clients attached
to Lustre servers with hard RoCE v2 NICs.
Bob Pearson (16):
RDMA/rxe: Remove init of task locks from rxe_qp.c
RDMA/rxe: Removed unused name from rxe_task struct
RDMA/rxe: Split rxe_run_task() into two subroutines
RDMA/rxe: Make rxe_do_task static
RDMA/rxe: Rename task->state_lock to task->lock
RDMA/rxe: Make task interface pluggable
RDMA/rxe: Simplify reset state handling in rxe_resp.c
RDMA/rxe: Split rxe_drain_resp_pkts()
RDMA/rxe: Handle qp error in rxe_resp.c
RDMA/rxe: Cleanup comp tasks in rxe_qp.c
RDMA/rxe: Remove __rxe_do_task()
RDMA/rxe: Make tasks schedule each other
RDMA/rxe: Implement disable/enable_task()
RDMA/rxe: Replace TASK_STATE_START by TASK_STATE_IDLE
RDMA/rxe: Add workqueue support for tasks
RDMA/rxe: Add parameters to control task type
drivers/infiniband/sw/rxe/rxe.c | 9 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 35 ++-
drivers/infiniband/sw/rxe/rxe_net.c | 4 +-
drivers/infiniband/sw/rxe/rxe_qp.c | 87 +++----
drivers/infiniband/sw/rxe/rxe_req.c | 10 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 75 ++++--
drivers/infiniband/sw/rxe/rxe_task.c | 354 ++++++++++++++++++++------
drivers/infiniband/sw/rxe/rxe_task.h | 76 +++---
drivers/infiniband/sw/rxe/rxe_verbs.c | 8 +-
9 files changed, 451 insertions(+), 207 deletions(-)
base-commit: 9abf2313adc1ca1b6180c508c25f22f9395cc780
--
2.34.1
next reply other threads:[~2022-10-18 4:36 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-18 4:33 Bob Pearson [this message]
2022-10-18 4:33 ` [PATCH for-next 01/16] RDMA/rxe: Remove init of task locks from rxe_qp.c Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 02/16] RDMA/rxe: Removed unused name from rxe_task struct Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 03/16] RDMA/rxe: Split rxe_run_task() into two subroutines Bob Pearson
2022-10-18 4:33 ` [PATCH 04/16] for-next RDMA/rxe: Make rxe_do_task static Bob Pearson
2022-10-19 9:39 ` matsuda-daisuke
2022-10-18 4:33 ` [PATCH for-next 05/16] RDMA/rxe: Rename task->state_lock to task->lock Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 06/16] RDMA/rxe: Make task interface pluggable Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 07/16] RDMA/rxe: Simplify reset state handling in rxe_resp.c Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 08/16] RDMA/rxe: Split rxe_drain_resp_pkts() Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 09/16] RDMA/rxe: Handle qp error in rxe_resp.c Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 10/16] RDMA/rxe: Cleanup comp tasks in rxe_qp.c Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 11/16] RDMA/rxe: Remove __rxe_do_task() Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 12/16] RDMA/rxe: Make tasks schedule each other Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 13/16] RDMA/rxe: Implement disable/enable_task() Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 14/16] RDMA/rxe: Replace TASK_STATE_START by TASK_STATE_IDLE Bob Pearson
2022-10-18 4:33 ` [PATCH for-next 15/16] RDMA/rxe: Add workqueue support for tasks Bob Pearson
2022-10-18 8:59 ` Leon Romanovsky
2022-10-18 15:18 ` Bob Pearson
2022-10-18 17:52 ` Leon Romanovsky
2022-10-20 9:28 ` matsuda-daisuke
2022-10-18 4:33 ` [PATCH for-next 16/16] RDMA/rxe: Add parameters to control task type Bob Pearson
2022-10-18 9:02 ` Leon Romanovsky
2022-10-18 15:22 ` Bob Pearson
2022-10-18 17:55 ` Leon Romanovsky
2022-10-20 15:02 ` [PATCH for-next 00/16] Implement work queues for rdma_rxe haris iqbal
2022-10-21 2:46 ` matsuda-daisuke
2022-10-21 3:40 ` Bob Pearson
2022-10-21 6:02 ` Bob Pearson
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=20221018043345.4033-1-rpearsonhpe@gmail.com \
--to=rpearsonhpe@gmail.com \
--cc=ian.ziemba@hpe.com \
--cc=jenny.hack@hpe.com \
--cc=jgg@nvidia.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.