On 11/12/20 9:44 AM, Xiaoguang Wang wrote: > If IORING_SETUP_SQPOLL is enabled, sqes are either handled in sq thread > task context or in io worker task context. If current task context is sq > thread, we don't need to check whether should wake up sq thread. > > io_iopoll_req_issued() calls wq_has_sleeper(), which has smp_mb() memory > barrier, before this patch, perf shows obvious overhead: > Samples: 481K of event 'cycles', Event count (approx.): 299807382878 > Overhead Comma Shared Object Symbol > 3.69% :9630 [kernel.vmlinux] [k] io_issue_sqe > > With this patch, perf shows: > Samples: 482K of event 'cycles', Event count (approx.): 299929547283 > Overhead Comma Shared Object Symbol > 0.70% :4015 [kernel.vmlinux] [k] io_issue_sqe > > It shows some obvious improvements. Applied, thanks. -- Jens Axboe