On 10/29, Oleg Nesterov wrote: > > In this case I confused again. Let's forget about get_user_pages() under > spin_lock(), pretend it works. > > Two engines, E1 and E2, the tracee sleeps in utrace_resume()->utrace_stop(). > > E1 does utrace_control(UTRACE_RESUME), E2 does > utrace_control(UTRACE_SINGLESTEP). > How this can work? > > If E2 calls utrace_control() first, the subsequent UTRACE_RESUME does > user_disable_single_step(), and (in general) E2 has no chance to re-assert > SINGLESTEP.
Looks like, 26fefca "sticky resume action" fixes this... Oleg.