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

From: Roland Dreier
Date: Tue Apr 26 2005 - 10:35:34 EST


Andrew> umm, how about we

Andrew> - force the special pages into a separate vma

Andrew> - run get_user_pages() against it all

Andrew> - use RLIMIT_MEMLOCK accounting to check whether the user
Andrew> is allowed to do this thing

Andrew> - undo the RMLIMIT_MEMLOCK accounting in ->release

Andrew> This will all interact with user-initiated mlock/munlock
Andrew> in messy ways. Maybe a new kernel-internal vma->vm_flag
Andrew> which works like VM_LOCKED but is unaffected by
Andrew> mlock/munlock activity is needed.

Andrew> A bit of generalisation in do_mlock() should suit?

Yes, it seems that modifying do_mlock() to something like

int do_mlock(unsigned long start, size_t len,
unsigned int set, unsigned int clear)

and then exporting a function along the lines of

int do_mem_pin(unsigned long start, size_t len, int on)

that sets/clears (VM_LOCKED_KERNEL | VM_DONTCOPY) according to the on
flag.

Seem reasonable? If so I can code this up.

- R.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/