LAST_MINUTE revision 1.2.4.3
1#	$NetBSD: LAST_MINUTE,v 1.2.4.3 2006/10/16 20:28:41 ghen Exp $
2
3This file contains important information on the NetBSD 3.0 release that
4did not make it into the main documentation.
5
6[i386]
7
8	Machines configured with more than 2 GB of physical memory may
9	experience hangs due to running out of kernel virtual space,
10	which is needed for kernel datastructures such as file system
11	metadata buffers.  Various kernel subsystems (including the
12	file system metadata cache) automatically adjust their memory
13	usage based on the amount of physical memory in the system,
14	but this method over-allocates the available kernel virtual
15	space (1 GB) when the amount of physical memory greatly
16	exceeds the amount of kernel virtual space.
17
18	The only reliable workaround currently known for this problem
19	is to increase the amount of virtual space available to the
20	kernel by adding these lines to the kernel config file:
21
22	options KERNBASE_LOCORE="0x80000000"
23	makeoptions TEXTADDR="0x80100000"
24
25	Be sure you "make clean" in your kernel build directory after
26	adding these lines!
27
28	This will increase the kernel virtual space to 2 GB, but this
29	has the drawback that the application virtual space is
30	decreased from 3 GB to 2 GB (since the 32-bit address space
31	supported by the hardware must be shared between the kernel
32	and application on this architecture).
33
34	If any application that is to run on the system needs more
35	than 2 GB of application virtual space, then this work-around
36	cannot be used.  A possible alternative work-around is to
37	reduce the amount of physical memory used for file system
38	buffers by using sysctl to change the value of the tunable
39	"vm.bufmem_hiwater" to a lower value, perhaps 200000000
40	(200 MB).
41
42[all platforms]
43
44	The NetBSD implementation of the POSIX thread library
45	(libpthread) has an option (enabled by setting the environment
46	variable "PTHREAD_CONCURRENCY" to a number greater than 1)
47	which tells the library to run threads of a single process on
48	more than one CPU simultaneously.  This feature has various
49	known problems and will often result in the pthread library
50	aborting due to internal assertion failures, and sometimes
51	it will even result in the entire systems crashing.  Use of
52	this feature is not recommended for anyone other than those
53	working to fix the problems with it.
54