Re: [PATCH] core remove PageReserved

From: Nick Piggin
Date: Fri Nov 04 2005 - 02:56:50 EST


Dave Jones wrote:
On Sat, Oct 29, 2005 at 10:02:22PM -0700, Linux Kernel wrote:
> tree 835836cb527ec9bd525f93eb7e016f3dfb8c8ae2
> parent f9c98d0287de42221c624482fd4f8d485c98ab22
> author Nick Piggin <nickpiggin@xxxxxxxxxxxx> Sun, 30 Oct 2005 08:16:12 -0700
> committer Linus Torvalds <torvalds@xxxxxxxxxxx> Sun, 30 Oct 2005 11:40:39 -0700
> > [PATCH] core remove PageReserved
> > Remove PageReserved() calls from core code by tightening VM_RESERVED
> handling in mm/ to cover PageReserved functionality.
> > PageReserved special casing is removed from get_page and put_page.
> > All setting and clearing of PageReserved is retained, and it is now flagged
> in the page_alloc checks to help ensure we don't introduce any refcount
> based freeing of Reserved pages.
> > MAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being
> deprecated. We never completely handled it correctly anyway, and is be
> reintroduced in future if required (Hugh has a proof of concept).

We've got one user reporting that he's getting the following
message..

"program ddcprobe is using MAP_PRIVATE, PROT_WRITE mmap of VM_RESERVED memory"
since this cset.

So what should happen here, does that app need changing? Or do we just
need to get Hugh's changes merged?


Thanks for reporting this.

Can the app use MAP_SHARED? Or PROT_READ and copy the mapped page to
its own private one before modifying it?

It is likely to only be very specific userspace drivers and stuff
that would ever do this... but if they become a real problem then
Hugh's patch would be able to solve it. Though I'd like to try to
avoid relying on that if possible.

Perhaps the nice thing to do would be to include Hugh's patch *and*
display the warning message, and remove the functionality in a
later release.

--
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/