A fix to the dreaded isadmaattach panic which hunts people playing with
authorniklas <niklas@openbsd.org>
Tue, 25 Apr 2000 23:10:30 +0000 (23:10 +0000)
committerniklas <niklas@openbsd.org>
Tue, 25 Apr 2000 23:10:30 +0000 (23:10 +0000)
large memory machines.  This time I really hope we can continue quite a bit
away over the Gig.

sys/arch/i386/include/vmparam.h
sys/uvm/uvm_page.c

index 36bd525..4f3dc04 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmparam.h,v 1.14 1999/10/03 21:08:16 niklas Exp $     */
+/*     $OpenBSD: vmparam.h,v 1.15 2000/04/25 23:10:31 niklas Exp $     */
 /*     $NetBSD: vmparam.h,v 1.15 1994/10/27 04:16:34 cgd Exp $ */
 
 /*-
 #define        MACHINE_NEW_NONCONTIG   /* VM <=> pmap interface modifier */
 
 #define        VM_PHYSSEG_MAX  4       /* actually we could have this many segments */
-#define        VM_PHYSSEG_STRAT        VM_PSTRAT_BIGFIRST
+#define        VM_PHYSSEG_STRAT        VM_PSTRAT_BSEARCH
 #define        VM_PHYSSEG_NOADD        /* can't add RAM after vm_mem_init */
 
 #define VM_NFREELIST           2
index c60017d..d6dbe2a 100644 (file)
@@ -472,7 +472,8 @@ uvm_page_physget(paddrp)
        int lcv, x;
 
        /* pass 1: try allocating from a matching end */
-#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST)
+#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST) || \
+       (VM_PHYSSEG_STRAT == VM_PSTRAT_BSEARCH)
        for (lcv = vm_nphysseg - 1 ; lcv >= 0 ; lcv--)
 #else
        for (lcv = 0 ; lcv < vm_nphysseg ; lcv++)
@@ -522,7 +523,8 @@ uvm_page_physget(paddrp)
        }
 
        /* pass2: forget about matching ends, just allocate something */
-#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST)
+#if (VM_PHYSSEG_STRAT == VM_PSTRAT_BIGFIRST) || \
+       (VM_PHYSSEG_STRAT == VM_PSTRAT_BSEARCH)
        for (lcv = vm_nphysseg - 1 ; lcv >= 0 ; lcv--)
 #else
        for (lcv = 0 ; lcv < vm_nphysseg ; lcv++)