freebsd-nq/sys
John Baldwin f1a6fd5d07 Improve the algorithm the loader uses to choose a memory range for its
heap when using a range above 1MB.

Previously the loader would always use the last 3MB in the first memory
range above 1MB for the heap.  However, this memory range is also where the
kernel and any modules are loaded.  If this memory range is "small", then
using the high 3MB for the heap may not leave enough room for the kernel
and modules.

Now the loader will use any range below 4GB for the heap, and the logic to
choose the "high" heap region has moved into biosmem.c.  It sets two
variables that the loader can use for a high heap if it desires.  When a
high heap is enabled (BZIP2, FireWire, GPT, or ZFS), then the following
memory ranges are preferred for the heap in order from best to worst:
- The largest memory region in the SMAP with a start address greater than
  1MB.  The memory region must be at least 3MB in length.  This leaves the
  region starting at 1MB purely for use by the kernel and modules.
- The last 3MB of the memory region starting at 1MB if it is at least 3MB
  in size.  This matches the current behavior except that the current loader
  would break horribly if the first region was not at least 3MB in size.
- The memory range from the end of the loader up to the 640k window.  This
  is the range the loader uses when none of the high-heap-requesting options
  are enabled.

Tested by:	hrs
MFC after:	1 week
2009-12-07 16:29:43 +00:00
..
amd64 mca: small enhancements related to cpu quirks 2009-12-03 16:10:21 +00:00
arm MFp4: 2009-12-06 00:10:13 +00:00
boot Improve the algorithm the loader uses to choose a memory range for its 2009-12-07 16:29:43 +00:00
bsm Add audit events for process descriptor system calls, which will appear in 2009-09-29 21:25:59 +00:00
cam MFp4; 2009-12-07 16:23:25 +00:00
cddl Change VOP_FSYNC for zfs vnode from VOP_PANIC to zfs_freebsd_fsync(), 2009-12-05 20:36:42 +00:00
compat Regenerate. 2009-12-04 21:53:20 +00:00
conf MFp4: 2009-12-06 00:10:13 +00:00
contrib Merge ACPICA 20091112. 2009-11-16 21:47:12 +00:00
crypto
ddb Among signal generation syscalls, only sigqueue(2) is allowed by POSIX 2009-11-17 11:39:15 +00:00
dev SiI3124 has no SNotification register. Handle Asynchronous Notifications 2009-12-07 16:10:48 +00:00
fs Fix ntfs such that it understand media with a non-512-bytes sector size: 2009-12-07 15:15:08 +00:00
gdb
geom Change 'load' balancing mode algorithm: 2009-12-03 21:47:51 +00:00
gnu Remove unused code. 2009-12-03 18:16:14 +00:00
i386 mca: small enhancements related to cpu quirks 2009-12-03 16:10:21 +00:00
ia64 Define struct pcpu_md as the only MD field of struct pcpu (pc_acpi_id 2009-12-07 06:41:27 +00:00
isa - Partially revert hackish r198964 and r199002. 2009-11-12 17:56:56 +00:00
kern Remove wrong assertion. Debugee is allowed to lose a signal. 2009-12-03 20:16:59 +00:00
kgssapi When the KOBJMETHOD() macro was updated, it resulted in the 2009-06-14 17:33:46 +00:00
libkern Move inet_aton() (specular to inet_ntoa(), already present in libkern) 2009-11-12 00:46:28 +00:00
mips Simplify the invocation of vm_fault(). Specifically, eliminate the flag 2009-11-27 20:24:11 +00:00
modules amdsbwd: new driver for AMD SB600/SB7xx watchdog timer 2009-11-30 11:44:03 +00:00
net Remove if_timer/if_watchdog now that they are no longer used. The space 2009-11-30 21:25:57 +00:00
net80211 Remove trailing ";" in struct ieee80211_beacon_offsets declaration 2009-11-11 15:00:56 +00:00
netatalk Reverse misordered unlock and lock in at_control for netatalk phase I 2009-08-12 10:44:13 +00:00
netgraph Take a step towards removing if_watchdog/if_timer. Don't explicitly set 2009-11-06 14:55:01 +00:00
netinet Fix burst processing for WF2Q pipes - do not increase available burst size 2009-12-05 23:27:21 +00:00
netinet6 Adapt r197136 to IPv6 stack: 2009-11-19 13:39:07 +00:00
netipsec Enable IPcomp by default. 2009-11-29 20:47:43 +00:00
netipx Use queue(9) instead of hand-crafted link lists for the global IPX 2009-06-24 20:57:50 +00:00
netnatm
netncp
netsmb Don't print out a message on loading a module. 'kldload -v' and 'kldstat 2009-09-10 18:33:08 +00:00
nfs Revert rev 192323 (nfs_common.c only): 2009-07-12 03:53:52 +00:00
nfsclient Close a race with caching of -ve name lookups in the NFS client. 2009-10-16 19:30:48 +00:00
nfsserver Properly return an error reply if an NFS remove or link operation fails. 2009-12-03 20:59:28 +00:00
nlm Handle GRANTED_RES messages more gracefully: Send along a grant cookie 2009-10-07 19:50:14 +00:00
opencrypto In case the compression result is the same size as the orignal version, 2009-11-29 17:53:57 +00:00
pc98 Fix cut'n paste on the AR9280 entry. 2009-12-02 21:22:10 +00:00
pci intpm/sb700: force polling mode if configured interrupt is SMI 2009-09-19 08:56:28 +00:00
powerpc Unbreak build. 2009-12-06 17:26:43 +00:00
rpc Add a check for the connection being shut down to the krpc 2009-11-08 19:02:13 +00:00
security Having thrown the cat out of the house, add a necessary include. 2009-09-08 13:24:36 +00:00
sparc64 Add <machine/pcb.h> missed in r199135. 2009-12-07 15:29:07 +00:00
sun4v Simplify the invocation of vm_fault(). Specifically, eliminate the flag 2009-11-27 20:24:11 +00:00
sys Add a libutempter compatibility interface to libulog. 2009-12-06 20:30:21 +00:00
teken Place home and end before insert and delete. 2009-11-11 09:43:26 +00:00
tools Output a comment on top of each generated file explaining where it came 2009-10-25 09:48:21 +00:00
ufs Don't build ufs_gjournal.c at all if UFS_GJOURNAL option is not given 2009-09-22 16:22:05 +00:00
vm Remove trailing ";" in UMA_HASH_INSERT and UMA_HASH_REMOVE macros. 2009-12-05 17:45:56 +00:00
xdr Add a check for a NULL mbuf ptr at the beginning of xdrmbuf_inline() 2009-08-12 16:27:51 +00:00
xen Temporarily revert the new-bus locking for 8.0 release. It will be 2009-08-20 19:17:53 +00:00
Makefile