On 5/17/23 13:38, Jason Gunthorpe wrote: > On Fri, Apr 28, 2023 at 12:13:22PM -0500, Bob Pearson wrote: >> Replace tasklets by work queues for the three main rxe tasklets: >> rxe_requester, rxe_completer and rxe_responder. >> >> Rebased to current for-next branch with changes, below, applied. >> >> Link: https://lore.kernel.org/linux-rdma/20230329193308.7489-1-rpearsonhpe@xxxxxxxxx/ >> Signed-off-by: Ian Ziemba <ian.ziemba@xxxxxxx> >> Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> >> Reviewed-by: Daisuke Matsuda <matsuda-daisuke@xxxxxxxxxxx> >> Tested-by: Daisuke Matsuda <matsuda-daisuke@xxxxxxxxxxx> >> --- >> v8: >> Corrected a soft cpu lockup by testing return value from task->func >> for all task states. >> Removed WQ_CPU_INTENSIVE flag from alloc_workqueue() since documentation >> shows that this has no effect if WQ_UNBOUND is set. >> Removed work_pending() call in __reserve_if_idle() since by design >> a task cannot be pending and idle at the same time. >> Renamed __do_task() to do_work() per a comment by Diasuke Matsuda. >> v7: >> Adjusted so patch applies after changes to rxe_task.c. >> v6: >> Fixed left over references to tasklets in the comments. >> Added WQ_UNBOUND to the parameters for alloc_workqueue(). This shows >> a significant performance improvement. >> v5: >> Based on corrected task logic for tasklets and simplified to only >> convert from tasklets to workqueues and not provide a flexible >> interface. >> --- >> drivers/infiniband/sw/rxe/rxe.c | 9 ++- >> drivers/infiniband/sw/rxe/rxe_task.c | 108 +++++++++++++++------------ >> drivers/infiniband/sw/rxe/rxe_task.h | 6 +- >> 3 files changed, 75 insertions(+), 48 deletions(-) > > Applied to for-next, thanks > > Jason Thanks!! Bob