On Wed, Sep 15, 2021 at 09:50:41AM -0700, Andy Lutomirski wrote: > What's the precise problem? The code would be roughly: > > if (try_pin_the_page) { > write it; > unpin; > } else { > do nothing -- .fault will fill in the correct contents. > } > > The time this takes is nondeterministic, but it's bounded and short. You can't do this from sched_submit_work(), you might already hold mmap_sem. Hence the suggestion to, for UMCG registered threads, pin the page(s) on syscall-enter and unpin on either schedule() or syscall-return.