Re: [PATCH 2.6.21] cramfs: add cramfs Linear XIP
From: Carsten Otte
Date: Thu Jun 14 2007 - 09:58:08 EST
Jared Hulbert wrote:
Nick Piggin wrote:
> The question is, why is that not enough (I haven't looked at these
> patches enough to work out if there is anything more they provide).
I think, it just takes trying things out. From reading the code, I
think this should work well for the filemap_xip code with no struct page.
Also, we need eliminate nopage() to get rid of the struct page.
Unfortunately I don't find time to try this out for now, and on 390 we
can live with struct page for the time being. In contrast to the
embedded platforms, the mem_mep array gets swapped out to disk by our
Can you help me understand the comment about nopage()? Do you mean
set xip_file_vm_ops.nopage to NULL?
Yes, but not without replacement. Today, the page table entry for xip
mappings is created like this:
__handle_mm_fault calls handle_pte_fault, which calls do_no_page [all
in mm/memory.c]. do_no_page does call the ->nopage operation, and
creates a page table entry. The ->nopage operation is set to
xip_file_nopage() [mm/filemap_xip.c], which calls the get_xip_page
address space operation. For ext2, this is implemented in
In this process, the struct page entry in mem_map is looked up in
ext2_get_xip_page(), returned to xip_file_nopage, then returned to
An alternative approach, which does not need to have struct page at
hand, would be to use the nopfn vm operations struct. That one would
have to rely on get_xip_pfn. The current path would then be
deprecated. If you're interrested in using the later for xip without
struct page, I would volounteer to go ahead and implement this?
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/