Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Nov 2013 01:32:01 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r257487 - in head/sys/ia64: ia64 include
Message-ID:  <201311010132.rA11W17l054176@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Fri Nov  1 01:32:01 2013
New Revision: 257487
URL: http://svnweb.freebsd.org/changeset/base/257487

Log:
  Use LOG2_ID_PAGE_SIZE again for the identity mapping in regions 6 & 7.
  Make the default translation size the same as the PBVM page size to
  avoid inserting overlapping translations in the TC. That generally is
  very bad.

Modified:
  head/sys/ia64/ia64/machdep.c
  head/sys/ia64/ia64/mp_machdep.c
  head/sys/ia64/include/param.h

Modified: head/sys/ia64/ia64/machdep.c
==============================================================================
--- head/sys/ia64/ia64/machdep.c	Fri Nov  1 00:45:08 2013	(r257486)
+++ head/sys/ia64/ia64/machdep.c	Fri Nov  1 01:32:01 2013	(r257487)
@@ -716,8 +716,8 @@ ia64_init(void)
 	 * handlers. Here we just make sure that they have the largest
 	 * possible page size to minimise TLB usage.
 	 */
-	ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (PAGE_SHIFT << 2));
-	ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (PAGE_SHIFT << 2));
+	ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (LOG2_ID_PAGE_SIZE << 2));
+	ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (LOG2_ID_PAGE_SIZE << 2));
 	ia64_srlz_d();
 
 	/* Initialize/setup physical memory datastructures */

Modified: head/sys/ia64/ia64/mp_machdep.c
==============================================================================
--- head/sys/ia64/ia64/mp_machdep.c	Fri Nov  1 00:45:08 2013	(r257486)
+++ head/sys/ia64/ia64/mp_machdep.c	Fri Nov  1 01:32:01 2013	(r257487)
@@ -208,8 +208,8 @@ ia64_ap_startup(void)
 	ia64_ap_state.as_trace = 0x100;
 
 	ia64_set_rr(IA64_RR_BASE(5), (5 << 8) | (PAGE_SHIFT << 2) | 1);
-	ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (PAGE_SHIFT << 2));
-	ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (PAGE_SHIFT << 2));
+	ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (LOG2_ID_PAGE_SIZE << 2));
+	ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (LOG2_ID_PAGE_SIZE << 2));
 	ia64_srlz_d();
 
 	pcpup = ia64_ap_state.as_pcpu;

Modified: head/sys/ia64/include/param.h
==============================================================================
--- head/sys/ia64/include/param.h	Fri Nov  1 00:45:08 2013	(r257486)
+++ head/sys/ia64/include/param.h	Fri Nov  1 01:32:01 2013	(r257487)
@@ -105,6 +105,11 @@
 #endif
 #define	KSTACK_GUARD_PAGES 0		/* pages of kstack guard; 0 disables */
 
+/* The default size of identity mappings in region 6 & 7. */
+#ifndef LOG2_ID_PAGE_SIZE
+#define	LOG2_ID_PAGE_SIZE	16
+#endif
+
 /*
  * Mach derived conversion macros
  */



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