• Wenwen Chen's avatar
    io_uring: unlock sqd->lock before sq thread release CPU · 533ab73f
    Wenwen Chen authored
    The sq thread actively releases CPU resources by calling the
    cond_resched() and schedule() interfaces when it is idle. Therefore,
    more resources are available for other threads to run.
    
    There exists a problem in sq thread: it does not unlock sqd->lock before
    releasing CPU resources every time. This makes other threads pending on
    sqd->lock for a long time. For example, the following interfaces all
    require sqd->lock: io_sq_offload_create(), io_register_iowq_max_workers()
    and io_ring_exit_work().
    
    Before the sq thread releases CPU resources, unlocking sqd->lock will
    provide the user a better experience because it can respond quickly to
    user requests.
    
    Signed-off-by: Kanchan Joshi<joshi.k@samsung.com>
    Signed-off-by: Wenwen Chen<wenwen.chen@samsung.com>
    Link: https://lore.kernel.org/r/20230525082626.577862-1-wenwen.chen@samsung.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    533ab73f
sqpoll.c 9.55 KB