Author: marius
Date: Mon Jul 25 18:26:54 2011
New Revision: 224362
URL: http://svn.freebsd.org/changeset/base/224362

Log:
  MFC: r223377
  
  On machines where we don't need to lock the kernel TSB into the dTLB and
  thus may basically use the entire 64-bit kernel address space increase
  the kernel virtual memory to not be limited by VM_KMEM_SIZE_MAX.

Modified:
  stable/8/sys/sparc64/sparc64/pmap.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/geom/label/   (props changed)

Modified: stable/8/sys/sparc64/sparc64/pmap.c
==============================================================================
--- stable/8/sys/sparc64/sparc64/pmap.c Mon Jul 25 18:25:30 2011        
(r224361)
+++ stable/8/sys/sparc64/sparc64/pmap.c Mon Jul 25 18:26:54 2011        
(r224362)
@@ -384,11 +384,12 @@ pmap_bootstrap(u_int cpu_impl)
         * public documentation is available for these, the latter just might
         * not support it, yet.
         */
-       virtsz = roundup(physsz, PAGE_SIZE_4M << (PAGE_SHIFT - TTE_SHIFT));
        if (cpu_impl == CPU_IMPL_SPARC64V ||
-           cpu_impl >= CPU_IMPL_ULTRASPARCIIIp)
+           cpu_impl >= CPU_IMPL_ULTRASPARCIIIp) {
                tsb_kernel_ldd_phys = 1;
-       else {
+               virtsz = roundup(5 / 3 * physsz, PAGE_SIZE_4M <<
+                   (PAGE_SHIFT - TTE_SHIFT));
+       } else {
                dtlb_slots_avail = 0;
                for (i = 0; i < dtlb_slots; i++) {
                        data = dtlb_get_data(i);
@@ -401,6 +402,8 @@ pmap_bootstrap(u_int cpu_impl)
                if (cpu_impl >= CPU_IMPL_ULTRASPARCI &&
                    cpu_impl < CPU_IMPL_ULTRASPARCIII)
                        dtlb_slots_avail /= 2;
+               virtsz = roundup(physsz, PAGE_SIZE_4M <<
+                   (PAGE_SHIFT - TTE_SHIFT));
                virtsz = MIN(virtsz, (dtlb_slots_avail * PAGE_SIZE_4M) <<
                    (PAGE_SHIFT - TTE_SHIFT));
        }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to