Date: Fri, 30 May 1997 21:46:37 -0700 From: David Greenman <dg@root.com> To: Robert Morris <rtm@viaweb.com> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: 1GB of ram? Message-ID: <199705310446.VAA08052@implode.root.com> In-Reply-To: Your message of "Fri, 30 May 1997 23:14:27 EDT." <199705310314.XAA16641@sponsz.viaweb.com>
index | next in thread | previous in thread | raw e-mail
>I have a PentiumPro on a SuperMicro P6DNF with 1GB of RAM running
>FreeBSD 2.1.5. I cannot get FreeBSD to work reliably. Here's the
>interesting part of my kernel config file:
>
>maxusers 128
>options "MAXMEM=1048576"
>options "NKPDE=127"
>options "VM_KMEM_SIZE=50331648"
>options "OPEN_MAX=256"
>options "CHILD_MAX=512"
>options "NMBCLUSTERS=4096"
>
>My Makefile.i386 says LOAD_ADDRESS?=E0100000
...
>The backtrace is pmap_enter, vm_fault, vm_fault_wire, vm_map_pageable,
>vslock, __sysctl. I happen to be running pstat -T when the crash
>occurs. This behavior is repeatable.
This is probably caused by a bug in sysctl or the /dev/kmem device.
External utilities such as pstat and ps attempt to use the /sys header files
to get certain constants and among these are ones that are affected by the
above kernel options...except that use programs won't see the options and
will use the default (wrong) values.
Try removing the 'NKPDE' and 'VM_KMEM_SIZE' options above and
instead apply the attached patches. These are a subset of what I use on
wcarchive and that configuration has been tested to 512MB of memory.
-DG
David Greenman
Core-team/Principal Architect, The FreeBSD Project
Index: i386/conf/Makefile.i386
===================================================================
RCS file: /home/ncvs/src/sys/i386/conf/Makefile.i386,v
retrieving revision 1.64.4.3
diff -c -r1.64.4.3 Makefile.i386
*** Makefile.i386 1996/05/02 21:43:04 1.64.4.3
--- Makefile.i386 1996/07/21 05:39:17
***************
*** 46,52 ****
COPTS= ${INCLUDES} ${IDENT} -DKERNEL -Di386 -DLOAD_ADDRESS=0x${LOAD_ADDRESS}
ASFLAGS=
CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS}
! LOAD_ADDRESS?= F0100000
NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $<
NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
--- 46,52 ----
COPTS= ${INCLUDES} ${IDENT} -DKERNEL -Di386 -DLOAD_ADDRESS=0x${LOAD_ADDRESS}
ASFLAGS=
CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS}
! LOAD_ADDRESS?= E0100000
NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $<
NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
Index: i386/include/pmap.h
===================================================================
RCS file: /home/ncvs/src/sys/i386/include/pmap.h,v
retrieving revision 1.26.4.1
diff -c -r1.26.4.1 pmap.h
*** pmap.h 1995/09/08 04:23:52 1.26.4.1
--- pmap.h 1996/06/03 07:14:38
***************
*** 69,75 ****
#endif
#endif
#ifndef NKPDE
! #define NKPDE 63 /* addressable number of page tables/pde's */
#endif
#define NUPDE (NPTEPG-NKPDE) /* number of user pde's */
--- 69,75 ----
#endif
#endif
#ifndef NKPDE
! #define NKPDE 127 /* addressable number of page tables/pde's */
#endif
#define NUPDE (NPTEPG-NKPDE) /* number of user pde's */
***************
*** 127,133 ****
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPDE*NBPG*NPTEPG)
/* virtual sizes (bytes) for various kernel submaps */
! #define VM_KMEM_SIZE (32 * 1024 * 1024)
#define VM_PHYS_SIZE (USRIOSIZE*CLBYTES)
#endif /* _MACHINE_VMPARAM_H_ */
--- 127,133 ----
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPDE*NBPG*NPTEPG)
/* virtual sizes (bytes) for various kernel submaps */
! #define VM_KMEM_SIZE (96 * 1024 * 1024)
#define VM_PHYS_SIZE (USRIOSIZE*CLBYTES)
#endif /* _MACHINE_VMPARAM_H_ */
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705310446.VAA08052>
