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

Arjan van de Ven
2005-04-22T18:13:10Z

On Fri, 2005-04-22 at 12:55 -0500, Timur Tabi wrote:
> Arjan van de Ven wrote:
> > On Mon, 2005-04-18 at 11:09 -0500, Timur Tabi wrote:
> >
> >>Roland Dreier wrote:
> >>
> >>> Troy> How is memory pinning handled? (I haven't had time to read
> >>> Troy> all the code, so please excuse my ignorance of something
> >>> Troy> obvious).
> >>>
> >>>The userspace library calls mlock() and then the kernel does
> >>>get_user_pages().
> >>
> >>Why do you call mlock() and get_user_pages()? In our code, we only call mlock(), and the
> >>memory is pinned.
> >
> >
> > this is a myth; linux is free to move the page about in physical memory
> > even if it's mlock()ed!!
>
> Can you tell me when Linux actually does this? I know in theory it can happen, but I've
> never seen it. Does the code to implement moving of data from one physical page to
> another even exist in any version of Linux?

hot(un)plug memory.

>
> Also, what would be the point? What reason would there be to move some data from one
> physical page to another, while keeping the same virtual address?

so that you can hot unplug the dimm in question.

I guess that's a bit of a high end though though... so maybe you don't
care about it.