Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation

Roland Dreier
2005-04-12T00:22:52Z

Roland> Yes, because the kernel may go through and unmap pages
Roland> from userspace while trying to swap. Since we have the
Roland> page locked in the kernel, the physical page won't go
Roland> anywhere, but userspace might end up with a different page
Roland> mapped at the same virtual address.

Andrew> That shouldn't happen. If get_user_pages() has elevated
Andrew> the refcount on a page then the following can happen:

...

Andrew> IOW: while the page has an elevated refcount from
Andrew> get_user_pages(), that physical page is 100% pinned.
Andrew> Once you've done the set_page_dirty+put_page(), the page
Andrew> is again under control of the VM.

Hmm... I've never tested it first hand but Libor assures me there is a
something like what I said. Libor, did I get the explanation right?

- R.