Thread (14 messages) 14 messages, 6 authors, 2002-10-23

Re: [patch] generic nonlinear mappings, 2.5.44-mm2-D0

From: Andrew Morton <hidden>
Date: 2002-10-22 19:17:42
Also in: lkml

Christoph Hellwig wrote:
On Tue, Oct 22, 2002 at 07:57:00PM +0200, Ingo Molnar wrote:
quoted
the attached patch (ontop of 2.5.44-mm2) implements generic (swappable!)
nonlinear mappings and sys_remap_file_pages() support. Ie. no more
MAP_LOCKED restrictions and strange pagefault semantics.

to implement this i added a new pte concept: "file pte's". This means that
upon swapout, shared-named mappings do not get cleared but get converted
into file pte's, which can then be decoded by the pagefault path and can
be looked up in the pagecache.

the normal linear pagefault path from now on does not assume linearity and
decodes the offset in the pte. This also tests pte encoding/decoding in
the pagecache case, and the ->populate functions.
Ingo,

what is the reason for that interface?  It looks like a gross performance
hack for misdesigned applications to me, kindof windowsish..
So that evicted pages in non-linear mappings can be reestablished
at fault time by the kernel, rather than by delegation to userspace
via SIGBUS.


We seem to have lost a pte_page_unlock() from fremap.c:zap_pte()?
I fixed up the ifdef tangle in there within the shpte-ng patch
and then put the pte_page_unlock() back.

I also added a page_cache_release() to the error path in filemap_populate(),
if install_page() failed.

The 2TB file size limit for mmap on non-PAE is a little worrisome.
I wonder if we can only instantiate the pte_file() bit if the
mapping is using MAP_POPULATE?  Seems hard to do.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help