[$] Explicit pinning of user-space pages The saga of
get_user_pages() — and the problems it causes within
the kernel — has been extensively chronicled here; see
the LWN kernel
index for the full series. In short,
get_user_pages() is used
to pin user-space pages in memory for some sort of manipulation outside of
the owning process(es); that manipulation can sometimes surprise other
parts of the kernel that think they have exclusive rights to the pages in
question.
This
patch series from John Hubbard does not solve all of the problems, but
it does create some infrastructure that may make a solution easier to come
by.