Re: [PATCH] Check for compound pages in set_page_dirty()



On Thu, 26 Jul 2007, Hugh Dickins wrote:

We would need to redirect all of the page state determinations and changes
to the head page anyways. So the memory.c code would have to deal with two
struct page pointers: One to the head where the state is kept and one to
the tail page that contains the actual chunk of data we are interested in.
The tail page pointer is only used for address determinations.

VM functions that manipulate the state of a page (like set_page_dirty)
could rely on only getting page heads.

Maybe. Sounds ugly. "would": so your patches remain just an RFC?

The large blocksize patch currently does not support mmap. I just have
some patches here that implement some of that using the approach that I
described.

And without mmap support we never have to use references to tail pages
anyways.

We could avoid references to tail pages if we would not allow the mapping
of 4k subsections of larger pages but instead require that a compound page
always be mapped in its entirety. That would keep the necessary changes to
memory.c minimal but would cause trouble for applications that expect to
be able to map 4k chunks.

If we want to support transparent use of 2M pages then we need to do this
anyways but at that point we can still have a single large "pte" (well
really a pmd that we treat as a pte).

If we f.e. require an order 3 page to be mapped in one go then we would
have to install 8 ptes at once. If we allow mapping of 4k sections that we
can have mm/memory.c deal with one pte at a time.




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



Relevant Pages

  • Re: Still more linked list magic :-)
    ... I agree that "head" should ... tail was associated. ... tail's target from becoming undefined, ... As soon as it introduces pointers ...
    (comp.lang.fortran)
  • Re: [PATCH] Check for compound pages in set_page_dirty()
    ... (though it would put those compound tests into the bio code that ... to the head page anyways. ... struct page pointers: One to the head where the state is kept and one to ... the tail page that contains the actual chunk of data we are interested in. ...
    (Linux-Kernel)
  • Re: [PATCH] Check for compound pages in set_page_dirty()
    ... (though it would put those compound tests into the bio code that ... to the head page anyways. ... struct page pointers: One to the head where the state is kept and one to ... the tail page that contains the actual chunk of data we are interested in. ...
    (Linux-Kernel)
  • Re: Python Doc Problem Example: os.path.split
    ... I was working on a program where i needed to split a path into dirname, ... > Split the pathname path into a pair, (head, tail) where tail is the ... > last pathname component and head is everything leading up to that. ... > tail part will never contain a slash; if path ends in a slash, ...
    (comp.unix.programmer)
  • Re: Using a link list over an array.
    ... compile (p->data is a void *) so you have not shown us some key ... int cmp ... head = list_sort; ... list_type *tail; ...
    (comp.lang.c)