On 9/12/22 02:58, matsuda-daisuke@xxxxxxxxxxx wrote: > On Mon, Sep 12, 2022 12:09 AM Bart Van Assche wrote: >> On 9/11/22 00:10, Yanjun Zhu wrote: >>> I also implemented a workqueue for rxe. IMO, can we add a variable to >>> decide to use tasklet or workqueue? >>> >>> If user prefer using tasklet, he can set the variable to use >>> tasklet. And the default is tasklet. Set the variable to another >>> value to use workqueue. > > That's an interesting idea, but I am not sure how users specify it. > IIRC, tasklets are generated when rdma link is added, typically by > executing ' rdma link add' command. I don't think we can add > an device specific option to the utility(iproute2/rdma). > >> >> I'm in favor of removing all uses of the tasklet mechanism because of >> the disadvantages of that mechanism. See also: >> * "Eliminating tasklets" (https://lwn.net/Articles/239633/). >> * "Modernizing the tasklet API" (https://lwn.net/Articles/830964/). >> * Sebastian Andrzej Siewior's opinion about tasklets >> (https://lore.kernel.org/all/YvovfXMJQAUBsvBZ@xxxxxxxxxxxxx/). > > I am also in favor of using workqueues alone not only because of the > disadvantages above but also to avoid complexity. I would like to know > if there is anybody who will bothered by the change especially in terms > of performance. > > Thanks, > Daisuke > >> >> Thanks, >> >> Bart. > The HPE patch set for work queues (I should send it in) kept the ability to run tasklets or work queues. The reason was that the change was motivated by a benchmarking exercise and we found that the performance of tasklets was noticeably better for one IO stream but for 2 or more IO streams work queues were better because we could place the work on separate cpus. Tasklets have a tendency to bunch up on the same cpu. I am interested in how Matsuda got better/same performance for work queues. Bob