• Xuan Zhuo's avatar
    io_uring: fix io_sq_thread no schedule when busy · b772f07a
    Xuan Zhuo authored
    When the user consumes and generates sqe at a fast rate,
    io_sqring_entries can always get sqe, and ret will not be equal to -EBUSY,
    so that io_sq_thread will never call cond_resched or schedule, and then
    we will get the following system error prompt:
    
    rcu: INFO: rcu_sched self-detected stall on CPU
    or
    watchdog: BUG: soft lockup-CPU#23 stuck for 112s! [io_uring-sq:1863]
    
    This patch checks whether need to call cond_resched() by checking
    the need_resched() function every cycle.
    Suggested-by: default avatarJens Axboe <axboe@kernel.dk>
    Signed-off-by: default avatarXuan Zhuo <xuanzhuo@linux.alibaba.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    b772f07a
io_uring.c 194 KB