From: Leon Romanovsky <leon@kernel.org>
To: Bob Pearson <rpearsonhpe@gmail.com>
Cc: jgg@nvidia.com, zyjzyj2000@gmail.com,
matsuda-daisuke@fujitsu.com, lizhijian@fujitsu.com,
linux-rdma@vger.kernel.org, jenny.hack@hpe.com,
ian.ziemba@hpe.com
Subject: Re: [PATCH for-next 15/16] RDMA/rxe: Add workqueue support for tasks
Date: Tue, 18 Oct 2022 11:59:54 +0300 [thread overview]
Message-ID: <Y05rCgMya/D7VBV9@unreal> (raw)
In-Reply-To: <20221018043345.4033-16-rpearsonhpe@gmail.com>
On Mon, Oct 17, 2022 at 11:33:46PM -0500, Bob Pearson wrote:
> Add a third task type RXE_TASK_TYPE_WORKQUEUE to rxe_task.c.
Why do you need an extra type and not instead of RXE_TASK_TYPE_TASKLET?
>
> Signed-off-by: Ian Ziemba <ian.ziemba@hpe.com>
> Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> ---
> drivers/infiniband/sw/rxe/rxe.c | 9 ++-
> drivers/infiniband/sw/rxe/rxe_task.c | 84 ++++++++++++++++++++++++++++
> drivers/infiniband/sw/rxe/rxe_task.h | 10 +++-
> 3 files changed, 101 insertions(+), 2 deletions(-)
<...>
> +static struct workqueue_struct *rxe_wq;
> +
> +int rxe_alloc_wq(void)
> +{
> + rxe_wq = alloc_workqueue("rxe_wq", WQ_MEM_RECLAIM |
> + WQ_HIGHPRI | WQ_CPU_INTENSIVE |
> + WQ_SYSFS, WQ_MAX_ACTIVE);
Are you sure that all these flags can be justified? WQ_MEM_RECLAIM?
> +
> + if (!rxe_wq)
> + return -ENOMEM;
> +
> + return 0;
> +}
<...>
> +static void work_sched(struct rxe_task *task)
> +{
> + if (!task->valid)
> + return;
> +
> + queue_work(rxe_wq, &task->work);
> +}
> +
> +static void work_do_task(struct work_struct *work)
> +{
> + struct rxe_task *task = container_of(work, typeof(*task), work);
> +
> + if (!task->valid)
> + return;
How can it be that submitted task is not valid? Especially without any
locking.
> +
> + do_task(task);
> +}
Thanks
> +
next prev parent reply other threads:[~2022-10-18 9:00 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-18 4:33 [PATCH for-next 00/16] Implement work queues for rdma_rxe Bob Pearson
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 [this message]
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=Y05rCgMya/D7VBV9@unreal \
--to=leon@kernel.org \
--cc=ian.ziemba@hpe.com \
--cc=jenny.hack@hpe.com \
--cc=jgg@nvidia.com \
--cc=linux-rdma@vger.kernel.org \
--cc=lizhijian@fujitsu.com \
--cc=matsuda-daisuke@fujitsu.com \
--cc=rpearsonhpe@gmail.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;
as well as URLs for NNTP newsgroup(s).