[Fwd: [RFC][PATCH] flush_hash_page]

Joel Schopp jschopp at austin.ibm.com
Tue Sep 14 06:10:03 EST 2004


htab_initialize calls create_pte_mapping on every lmb, with large set to 
true if it is supported.  create_pte_mapping calls 
pSeries_lpar_hpte_insert, which calls H_ENTER, which creates a hardware 
page table entry.  This leads me to believe that all physical memory 
gets initialized with large ptes.  I'm sure I'm wrong, but I just don't 
see the rest of the code.

>>+	if (cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE)
>>+		large = 1;
>>+
> 
> 
> First of all, if you do that, doesn't it assume that all ptes that are
> passed in are large pages?  I don't think that's correct.  

I have a hard time with that assumption myself, I was hoping by 
proposing the wrong answer somebody would be able to help me with the 
right one.

> 
> Also, think about how huge pages are implemented in Linux.  Do huge
> pages really even get Linux ptes, or just pmds that act like ptes?  

We need to be clear in our language to differ between hardware page 
table entries and Linux page table entries.

> 
> That reminds me.  Anton, I don't see ppc64 setting up the Linux
> pagetable for the kernel mappings anywhere.  Did I just miss them?
> 
> -- Dave
> 
> 



More information about the Linuxppc64-dev mailing list