Re: [PATCH 2.6.21] cramfs: add cramfs Linear XIP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
hypervisor.

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 ext2_get_xip_page (fs/ext2/xip.c). 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 do_no_page. 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?

so long,
Carsten
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux