> On May 9, 2022, at 12:04 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Sat, May 07, 2022 at 10:46:28AM -0700, Song Liu wrote: >> Busy kernel threads may block the transition of livepatch. Call >> klp_try_switch_task from __cond_resched to make the transition easier. > > What will a PREEMPT=y kernel do? How is it not a problem there, and if > it is, this will not help that. > > That is; I don't think this can be right. I guess on PREEMPT=y kernel, we can simply preempt the long running kernel thread and check the transition? In this case (PREEMPT=n), we see a long running kernel thread could not finish the transition. It calls cond_resched() and gets rescheduled (moves among different cores). However, it never finishes the transition, because live patch doesn’t get a chance to check the stack. Does this answer the question? Thanks, Song