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

Timur Tabi
2005-04-22T17:56:45Z

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?

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?

--
Timur Tabi
Staff Software Engineer
timur.tabi@ammasso.com

One thing a Southern boy will never say is,
"I don't think duct tape will fix it."
-- Ed Smylie, NASA engineer for Apollo 13