Re: Nick's core remove PageReserved broke vmware...

From: Nick Piggin
Date: Tue Nov 01 2005 - 19:36:06 EST


Petr Vandrovec wrote:
Hello Nick,
what's the reason behind disallowing get_user_pages() on VM_RESERVED regions? vmmon uses VM_RESERVED on its 'vma' as otherwise some kernels used by SUSE complained loudly about mismatch between PageReserved() and VM_RESERVED flags.


Hi Petr,

The reason is that VM_RESERVED indicates that the core vm is not allowed
to touch any 'struct page' through this mapping, which get_user_pages
would do.

I'll remove it from vmmon for >= 2.6.14 kernels as that bogus test never made to Linux kernel, but I cannot find any reason why get_user_pages() should not work on VM_RESERVED (or VM_IO for that matter) user pages. Can you show me reasoning behind that decision ?

The reasoning behind the decision was so VM_RESERVED is usable for a
complete replacement to PageReserved. For example mappings through
/dev/mem should not touch the page count.

You may be able to go a step further and clear PageReserved from your
pages as well, and thus have a working driver without special casing
for both kernels.

Thanks,
Nick

--
SUSE Labs, Novell Inc.

Send instant messages to your online friends http://au.messenger.yahoo.com -
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/