hugetlbfs for ppc440 - kernel BUG -- follow up

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Jul 18 13:01:26 EST 2007


On Tue, 2007-07-17 at 21:18 -0500, Satya wrote:
> the calling sequence is :
> 
> __handle_mm_fault -> hugetlb_fault -> huge_pte_alloc() ->
> pte_alloc_map()
> 
> where -> stands for 'calls'.
> 
> hugetlb_fault() calls hugetlb_no_page() after returning from
> huge_pte_alloc().
> 
> [huge_pte_alloc() is an arch specific call back implemented in the
> patch referred to in my earlier posts]

Ok, so I think the problem might be there. If you look at other
implementations of hugetlbfs, such as x86, there is no need to do any
mapping in huge_pte_alloc(). Only the PTE pages can be mapped/unmapped
and the huge pages are stored at the PMD level. You may want to do
something similar, and if you need a PTE level for huge pages
specifically, then you could do your own allocations there that don't
require a mapping.

Ben.






More information about the Linuxppc-dev mailing list