Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Aug 2019 03:42:16 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r351065 - in head/sys/powerpc: booke include
Message-ID:  <201908150342.x7F3gGOG033449@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhibbits
Date: Thu Aug 15 03:42:15 2019
New Revision: 351065
URL: https://svnweb.freebsd.org/changeset/base/351065

Log:
  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

Modified:
  head/sys/powerpc/booke/pmap.c
  head/sys/powerpc/include/vmparam.h

Modified: head/sys/powerpc/booke/pmap.c
==============================================================================
--- head/sys/powerpc/booke/pmap.c	Thu Aug 15 02:30:44 2019	(r351064)
+++ head/sys/powerpc/booke/pmap.c	Thu Aug 15 03:42:15 2019	(r351065)
@@ -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);
 	

Modified: head/sys/powerpc/include/vmparam.h
==============================================================================
--- head/sys/powerpc/include/vmparam.h	Thu Aug 15 02:30:44 2019	(r351064)
+++ head/sys/powerpc/include/vmparam.h	Thu Aug 15 03:42:15 2019	(r351065)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201908150342.x7F3gGOG033449>