svn commit: r330052 - head/sys/powerpc/booke

Justin Hibbits jhibbits at FreeBSD.org
Tue Feb 27 04:38:28 UTC 2018


Author: jhibbits
Date: Tue Feb 27 04:38:27 2018
New Revision: 330052
URL: https://svnweb.freebsd.org/changeset/base/330052

Log:
  Increase the size of a reservation granule for TLB locks
  
  A reservation granule on PowerPC is a cache line.
  
  On e500mc and derivatives a cacheline size is 64 bytes, not 32.  Allocate
  the maximum size permitted, but only utilize the size that is needed.  On
  e500v1 and e500v2 the reservation granule will still be 32 bytes.

Modified:
  head/sys/powerpc/booke/booke_machdep.c
  head/sys/powerpc/booke/trap_subr.S

Modified: head/sys/powerpc/booke/booke_machdep.c
==============================================================================
--- head/sys/powerpc/booke/booke_machdep.c	Tue Feb 27 04:23:03 2018	(r330051)
+++ head/sys/powerpc/booke/booke_machdep.c	Tue Feb 27 04:38:27 2018	(r330052)
@@ -372,7 +372,7 @@ booke_init(u_long arg1, u_long arg2)
 	return (ret);
 }
 
-#define RES_GRANULE 32
+#define RES_GRANULE cacheline_size
 extern uintptr_t tlb0_miss_locks[];
 
 /* Initialise a struct pcpu. */

Modified: head/sys/powerpc/booke/trap_subr.S
==============================================================================
--- head/sys/powerpc/booke/trap_subr.S	Tue Feb 27 04:23:03 2018	(r330051)
+++ head/sys/powerpc/booke/trap_subr.S	Tue Feb 27 04:38:27 2018	(r330052)
@@ -82,7 +82,7 @@
 /* Get the per-CPU data structure */
 #define GET_CPUINFO(r) mfsprg0 r
 
-#define RES_GRANULE	32
+#define RES_GRANULE	64
 #define RES_LOCK	0	/* offset to the 'lock' word */
 #ifdef __powerpc64__
 #define RES_RECURSE	8	/* offset to the 'recurse' word */


More information about the svn-src-head mailing list