powerpc8xx: Further optimisation of TLB handling
cover powerpc8xx: Further optimisation of TLB handling
This patchset provides a further optimisation of TLB handling in the 8xx. Main changes are based on:
- Using processor handling of PGD/PTE Validity bits instead of testing ourselves the entries validity
- Aligning PGD address to allow direct bit manipulation
- Not saving registers like CR when not needed
It also adds support to any TASK_SIZE
Patchset:
01 - powerpc/8xx: remove remaining unnecessary code in FixupDAR 02 - powerpc/8xx: remove tests on PGDIR entry validity 03 - powerpc32: Use kmem_cache memory for PGDIR
04 - powerpc/8xx: Take benefit of aligned PGDIR
05 - powerpc/8xx: Optimise access to swapper_pg_dir
06 - powerpc/8xx: Remove duplicated code in set_context() 07 - powerpc/8xx: macro for handling CPU15 errata
08 - powerpc/8xx: Handle CR out of exception PROLOG/EPILOG 09 - powerpc/8xx: dont save CR in SCRATCH registers
10 - powerpc/8xx: Use SPRG2 instead of DAR for saving r3 11 - powerpc/8xx: Add support for TASK_SIZE greater than 0x80000000
All changes have been successfully tested on MPC885
--- arch/powerpc/include/asm/page.h | 8 +++---- arch/powerpc/include/asm/pgtable-ppc32.h | 37 +++++++++++++++++++++----------- arch/powerpc/include/asm/pgtable.h | 17 ++++++++------- arch/powerpc/include/asm/pte-8xx.h | 1 + arch/powerpc/include/asm/pte-common.h | 3 +++ arch/powerpc/kernel/head_8xx.S | 3 --- arch/powerpc/mm/pgtable_32.c | 14 ++++++++++++ 7 files changed, 56 insertions(+), 27 deletions(-)
Quoted 22 lines · Christophe Leroy
This patchset provides a further optimisation of TLB handling in the 8xx. Main changes are based on:
- Using processor handling of PGD/PTE Validity bits instead of testing ourselves the entries validity
- Aligning PGD address to allow direct bit manipulation
- Not saving registers like CR when not neededIt also adds support to any
TASK_SIZEPatchset:
01 - powerpc/8xx: remove remaining unnecessary code in FixupDAR 02 - powerpc/8xx: remove tests on PGDIR entry validity 03 - powerpc32: Usekmem_cachememory for PGDIR
04 - powerpc/8xx: Take benefit of aligned PGDIR
05 - powerpc/8xx: Optimise access toswapper_pg_dir
06 - powerpc/8xx: Remove duplicated code inset_context()07 - powerpc/8xx: macro for handling CPU15 errata
08 - powerpc/8xx: Handle CR out of exception PROLOG/EPILOG 09 - powerpc/8xx: dont save CR in SCRATCH registers
10 - powerpc/8xx: Use SPRG2 instead of DAR for saving r3 11 - powerpc/8xx: Add support forTASK_SIZEgreater than0x80000000
Quoted 4 lines
All changes have been successfully tested on MPC885
Signed-off-by Christophe Leroy <[email protected]>Tested-by Christophe Leroy <[email protected]>
Sorry, forget than one, my finger slipped and I resent a very old one already applied
Christophe