[Cbe-oss-dev] [PATCH] 64K support for Kexec

Luke Browning lukebr at linux.vnet.ibm.com
Sat Apr 7 22:25:14 EST 2007


On Sat, 2007-04-07 at 14:16 +1000, Benjamin Herrenschmidt wrote:
> On Fri, 2007-04-06 at 23:58 -0300, Luke Browning wrote:
> > This patch decodes the page size from the pte. This code is used by
> > kexec, which walks the hash table and issues a tlbie for each 
> > valid entry. The page size is encoded in the virtual address that
> > is passed to the tlbie instruction.
> > 
> > Signed-off-by: Luke Browning <lukebrowning at us.ibm.com>
> 
> Patch got wrapped/damaged by your mailer... Also, I haven't looked too
> closely but are you sure slot2va is ok for non-4K page sizes ?
> 
> It doesn't seem to me ...
> 
> 	if (! (hpte_v & HPTE_V_LARGE)) {
> 		unsigned long vpi, pteg;
> 
> 		pteg = slot / HPTES_PER_GROUP;
> 		if (hpte_v & HPTE_V_SECONDARY)
> 			pteg = ~pteg;
> 
> 		vpi = ((va >> 28) ^ pteg) & htab_hash_mask;
> 
> 		va |= vpi << PAGE_SHIFT;
> 	}
> 
> The if () will clearly make sure it does nothing for large pages :-)
> While shifting avpn by 23 bits might be enough for a 16M page, I think
> we need to do something for 64K pages or we'll be missing 8 bits of the
> va...

Will have to investigate this when i get back from vacation in a week.
I thought that 23 bit shift was enough.

Luke




More information about the cbe-oss-dev mailing list