powerpc/pmap: Enable UMA_MD_SMALL_ALLOC for 64-bit booke
The only thing blocking UMA_MD_SMALL_ALLOC from working on 64-bit booke powerpc was a missing check in pmap_kextract(). Adding DMAP handling into pmap_kextract(), we can now use UMA_MD_SMALL_ALLOC. This should improve performance and stability a bit, since DMAP is always mapped in TLB1, so this relieves pressure on TLB0. MFC after: 3 weeks
This commit is contained in:
parent
504f5e294e
commit
141a0ab012
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=351065
@ -1958,6 +1958,11 @@ mmu_booke_kextract(mmu_t mmu, vm_offset_t va)
|
||||
vm_paddr_t p = 0;
|
||||
int i;
|
||||
|
||||
#ifdef __powerpc64__
|
||||
if (va >= DMAP_BASE_ADDRESS && va <= DMAP_MAX_ADDRESS)
|
||||
return (DMAP_TO_PHYS(va));
|
||||
#endif
|
||||
|
||||
if (va >= VM_MIN_KERNEL_ADDRESS && va <= VM_MAX_KERNEL_ADDRESS)
|
||||
p = pte_vatopa(mmu, kernel_pmap, va);
|
||||
|
||||
|
@ -133,6 +133,11 @@
|
||||
|
||||
#else /* Book-E */
|
||||
|
||||
/* Use the direct map for UMA small allocs on powerpc64. */
|
||||
#ifdef __powerpc64__
|
||||
#define UMA_MD_SMALL_ALLOC
|
||||
#endif
|
||||
|
||||
#define KERNBASE 0x04000100 /* start of kernel physical */
|
||||
#ifndef __powerpc64__
|
||||
#define VM_MIN_KERNEL_ADDRESS 0xc0000000
|
||||
|
Loading…
Reference in New Issue
Block a user