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

Troy Benjegerdes
2005-04-11T16:39:02Z

On Mon, Apr 11, 2005 at 08:34:19AM -0700, 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().

Is there a check in the kernel that the memory is actually mlock()ed?

What if a malicious (or broken) application does ibv_reg_mr() but
doesn't lock the memory? Does the IB card get a physical address for a
page that might get swapped out?

> Troy> The old mellanox drivers used to have a hack to call
> Troy> 'sys_mlock', and promiscuously lock memory any old userspace
> Troy> application asked for. What is the API for the new uverbs
> Troy> memory registration, and how will things like memory hotplug
> Troy> and NUMA page migration be able to unpin pages locked by a
> Troy> user program?
>
> The API for uverbs memory registration is ibv_reg_mr(), and right now
> the memory is pinned and that's it.
>
> - R.