Split page tables

Bahadir Balban bahadir at l4dev.org
Tue Jan 12 14:15:08 EST 2010


Catalin Marinas wrote:
> Hi Bahadir,
> 
> (good to see you around :-))
> 

Good to see you too, Catalin.

> You can configure a 2:2 split and if you want you can set TTBR1 to the
> kernel TTBR but I don't think you'd gain much. You only save about 2K of
> the user TTBR but since we allocate a 1 x 4K page pgd, there isn't any
> difference. Note the translation table entries for the kernel would
> contain either level 1 section entries or entries pointing to level 2
> tables which would be shared between all the pgd tables. I think the
> only gain is probably a memcpy of the kernel pgd into the user pgd
> during process creation.
> 

I understand that level 2 tables are already shared on global mappings.
After taking a glance in pgtable.h, I see that there are 8-byte pgd 
entries and extra linux tables to make it fit for linux requirements. 
But still, it seems like instead of 16KB level1 tables per-space, a 2:2 
split would need 8KB level1 table per space which results in 8KB savings 
per-space. Am I missing something?

That said, with linux pte duplicates on every 2nd level table, it might 
not be a significant gain. Perhaps you had done the correlation long ago 
- but extra bits from tex remap and access flag is not enough to support 
linux bits directly on the hardware pte?


Thanks,

--
Bahadir



More information about the linux-arm-kernel mailing list