NetBSD/sys/kern
atatat df0a9badc6 Introduce "top down" memory management for mmap()ed allocations. This
means that the dynamic linker gets mapped in at the top of available
user virtual memory (typically just below the stack), shared libraries
get mapped downwards from that point, and calls to mmap() that don't
specify a preferred address will get mapped in below those.

This means that the heap and the mmap()ed allocations will grow
towards each other, allowing one or the other to grow larger than
before.  Previously, the heap was limited to MAXDSIZ by the placement
of the dynamic linker (and the process's rlimits) and the space
available to mmap was hobbled by this reservation.

This is currently only enabled via an *option* for the i386 platform
(though other platforms are expected to follow).  Add "options
USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild
your kernel to take advantage of this.

Note that the pmap_prefer() interface has not yet been modified to
play nicely with this, so those platforms require a bit more work
(most notably the sparc) before they can use this new memory
arrangement.

This change also introduces a VM_DEFAULT_ADDRESS() macro that picks
the appropriate default address based on the size of the allocation or
the size of the process's text segment accordingly.  Several drivers
and the SYSV SHM address assignment were changed to use this instead
of each one picking their own "default".
2003-02-20 22:16:05 +00:00
..
cnmagic.c
core_elf32.c
core_elf64.c
core_netbsd.c
exec_aout.c
exec_conf.c if emulation uses elf32_copyargs(), it shouldn't use it's own idea 2003-02-19 09:44:42 +00:00
exec_ecoff.c
exec_elf32.c Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
exec_elf64.c
exec_elf_common.c
exec_macho.c
exec_script.c
exec_subr.c Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
genassym.awk
genassym.sh
genlintstub.awk
init_main.c add support for p1003.1b semaphores. From FreeBSD 2003-01-20 20:02:56 +00:00
init_sysent.c regen: 2003-02-15 20:56:48 +00:00
kern_acct.c
kern_allocsys.c New callout implementation. This is based on callwheel implementation 2003-02-04 01:21:03 +00:00
kern_clock.c New callout implementation. This is based on callwheel implementation 2003-02-04 01:21:03 +00:00
kern_descrip.c Use a mutex to protect the global list of open files. 2003-02-14 21:50:10 +00:00
kern_event.c Introduce EVFILT_TIMER, which allows a process to establish an 2003-02-04 09:02:04 +00:00
kern_exec.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
kern_exit.c Test p->p_sa instead of p->p_flag & P_SA, as the latter may have been 2003-02-17 23:45:47 +00:00
kern_fork.c Add "fork hooks", a'la "exec hooks" and "exit hooks" which allow 2003-01-24 01:42:52 +00:00
kern_kthread.c
kern_ktrace.c
kern_lkm.c
kern_lock.c Use lock_printf() in SPINLOCK_SPINCHECK() and SLOCK_TRACE(). 2003-02-19 22:34:42 +00:00
kern_lwp.c Add a KASSERT when copying l1->l_cpu to l2->l_cpu 2003-01-30 05:51:58 +00:00
kern_malloc_debug.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
kern_malloc.c Make the memory allocation code MP-safe. 2003-02-14 21:51:36 +00:00
kern_microtime.c Switch to use cycle counter (%tick) based microtime(). 2003-02-05 12:06:51 +00:00
kern_ntptime.c
kern_physio.c Make the buffer cache code MP-safe. 2003-02-05 21:38:38 +00:00
kern_proc.c Fix support of 15 and 16 character lognames. 2003-02-15 18:10:15 +00:00
kern_prot.c Add newline character to logname change warning. 2003-02-18 19:26:23 +00:00
kern_ras.c
kern_resource.c
kern_sa.c Note yet another SMP danger spot. 2003-02-17 23:32:33 +00:00
kern_sig.c Clear L_SA from all LWPs in sigexit() to prevent any upcalls or 2003-02-17 23:45:00 +00:00
kern_subr.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
kern_synch.c ltsleep(): deal with PNOEXITERR after re-taking the interlock (if necessary). 2003-02-04 20:15:59 +00:00
kern_sysctl.c Fix support for 16 character lognames 2003-02-15 18:47:41 +00:00
kern_systrace.c do not demand LLSLEEP in p_stat; this does not seem to happen with lwps; 2003-02-16 20:24:47 +00:00
kern_time.c itimerfire(): fix bug in previous - if two or more timers would 2003-02-04 15:50:06 +00:00
kern_timeout.c - don't compare c_time directly. 2003-02-11 09:43:37 +00:00
kern_verifiedexec.c
kern_xxx.c
kgdb_stub.c
Make.tags.inc
Makefile
makesyscalls.sh
subr_autoconf.c const msgs[] some more 2003-02-09 09:14:58 +00:00
subr_devsw.c in devsw_name2blk(), as we use strncmp(), make sure the next character 2003-02-01 11:12:35 +00:00
subr_disk.c
subr_extent.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
subr_log.c
subr_pool.c
subr_prf.c - remove __STDC__ crap. It did not work anyway with pre-ansi compilers, since 2003-02-17 22:21:52 +00:00
subr_prof.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
subr_prop.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
subr_userconf.c
subr_xxx.c
sys_generic.c
sys_pipe.c On pipe reads, check for EOF before FNONBLOCK to avoid spurious EAGAIN errors. 2003-02-14 13:16:44 +00:00
sys_pmc.c
sys_process.c Adapt to the new conventions of proc_unstop() and don't try to call 2003-02-07 21:44:45 +00:00
sys_socket.c
syscalls.c regen: 2003-02-15 20:56:48 +00:00
syscalls.conf
syscalls.master add __sigtimedwait(2) - wait for specified set of signals, with optional 2003-02-15 20:54:38 +00:00
sysv_ipc.c
sysv_msg.c
sysv_sem.c
sysv_shm.c Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
tty_conf.c
tty_pty.c Make the tty subsystem MP-safe.. 2003-02-05 15:49:02 +00:00
tty_subr.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
tty_tb.c
tty_tty.c
tty.c Add a ttyprintf_nolock() to be called when we are printing the ttyinfo 2003-02-17 22:23:14 +00:00
uipc_domain.c
uipc_mbuf2.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
uipc_mbuf.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
uipc_proto.c
uipc_sem.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
uipc_socket2.c
uipc_socket.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
uipc_syscalls.c
uipc_usrreq.c
vfs_bio.c bdwrite(): remove check for MFS major device number (why was 255 changed 2003-02-06 11:46:49 +00:00
vfs_cache.c Move simple_lock after the hashinit's to avoid possible sleeping/malloc'ing 2003-02-20 02:49:51 +00:00
vfs_getcwd.c
vfs_init.c
vfs_lockf.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
vfs_lookup.c Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
vfs_subr.c add "VT_SMBFS" to vnode_tags[] 2003-02-18 20:37:38 +00:00
vfs_syscalls.c fix typo in comment 2003-02-14 18:25:34 +00:00
vfs_vnops.c Check for (and deny) negative values passed to FIOGETBMAP. 2003-02-01 07:23:56 +00:00
vnode_if.c
vnode_if.sh
vnode_if.src