hi, I have questions about below code comments, which was included in patch "io_uring: add submission polling", ------------------------------------------------------------ /* * Drop cur_mm before scheduling, we can't hold it for * long periods (or over schedule()). Do this before * adding ourselves to the waitqueue, as the unuse/drop * may sleep. */ if (cur_mm) { unuse_mm(cur_mm); mmput(cur_mm); cur_mm = NULL; } prepare_to_wait(&ctx->sqo_wait, &wait, TASK_INTERRUPTIBLE); ------------------------------------------------------------- Stefano submited a patch "io_uring: prevent sq_thread from spinning when it should stop", I understand what issue Stefano fixed, but don't understand below comments. Can anyone help to explain why we need to rop cur_mm before scheduling, or why we can't hold it for long periods (or over schedule()), and if we unuse/drop mm after adding ourselves to the waitqueue, what issue will happen when unuse/drop sleeps, thanks. Regards, Xiaoguang Wang