freebsd-skq/sys/kern
andre 87ef00d48c Base the calculation of maxmbufmem in part on kmem_map size
instead of kernel_map size to prevent kernel memory exhaustion
by mbufs and a subsequent panic on physical page allocation
failure.

On architectures without a direct map all mbuf memory (except
for jumbo mbufs larger than PAGE_SIZE) comes from kmem_map.
It is the limiting factor hence.

For architectures with a direct map using the size of kmem_map
is a good proxy of available kernel memory as well.  If it is
much smaller the mbuf limit may be sub-optimal but remains
reasonable, while avoiding panics under exhaustion.

The overall mbuf memory limit calculation may be reconsidered
again later, however due to the many different mbuf sizes and
different backing KVM maps it is a tricky subject.

Found by:	pho's new network stress test
Pointed out by:	alc (kmem_map instead of kernel_map)
Tested by:	pho
2013-04-24 13:54:55 +00:00
..
bus_if.m Add a BUS_CHILD_DELETED() method that a bus can hook to allow it to cleanup 2012-08-21 18:13:09 +00:00
capabilities.conf Implement chflagsat(2) system call, similar to fchmodat(2), but operates on 2013-03-21 22:59:01 +00:00
clock_if.m
cpufreq_if.m
device_if.m Revert r239178 and implement two new functions, namely 2012-08-15 15:42:57 +00:00
dtio_kdtrace.c Change the module name for the I/O provider to "kernel" from 2012-09-25 19:16:28 +00:00
genassym.sh
imgact_aout.c Cosmetics: define FREEBSD32_MINUSER and AOUT32_MINUSER for struct 2012-07-22 13:41:45 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Add a new set of notes to a process core dump to store procstat data. 2013-04-16 19:19:14 +00:00
imgact_gzip.c - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
imgact_shell.c
inflate.c
init_main.c MFP4 change 210763 2013-04-03 22:24:36 +00:00
init_sysent.c Regen. 2013-04-02 05:30:52 +00:00
kern_acct.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_alq.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_clock.c Add a generic way to call per event allocate / release function. 2013-03-05 10:18:48 +00:00
kern_clocksource.c - Make callout(9) tickless, relying on eventtimers(4) as backend for 2013-03-04 11:09:56 +00:00
kern_condvar.c MFcalloutng: 2013-03-04 12:20:48 +00:00
kern_conf.c Reject spaces and double quotation marks in device names. devctl(4) 2012-12-22 13:33:28 +00:00
kern_cons.c cngetc: use cpu_spinwait to ease the cncheckc loop a tiny bit 2012-10-06 19:50:23 +00:00
kern_context.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
kern_cpu.c Revert r175376 and tune cpufreq(4) frequency comparison logic instead. 2012-03-10 18:56:16 +00:00
kern_cpuset.c Post r222812 KTR_CPUMASK started being initialized only as a tunable 2012-08-30 21:22:47 +00:00
kern_ctf.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_descrip.c Re-factor the code to provide kern_proc_filedesc_out(), kern_proc_out(), 2013-04-14 20:01:36 +00:00
kern_dtrace.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
kern_environment.c r249408 and r249436 cause a NULL pointer dereference on the CUBIEBOARD 2013-04-16 22:09:08 +00:00
kern_et.c Fix incorrect assertion that caused panic when periodic-only timers used. 2013-03-13 06:42:01 +00:00
kern_event.c Rework overflow checks of r247898 to not let too "intelligent" compiler to 2013-03-09 09:07:13 +00:00
kern_exec.c MFC 2013-03-02 14:48:41 +00:00
kern_exit.c Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
kern_fail.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
kern_ffclock.c Revise the sysctl handling code and restructure the hierarchy of sysctls 2011-12-01 07:19:13 +00:00
kern_fork.c Include PID in the error message which is printed when the maxproc limit 2013-04-19 15:19:29 +00:00
kern_gzio.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_hhook.c
kern_idle.c
kern_intr.c If filter of the interrupt event is not null, print it, in addition to 2013-04-05 14:30:51 +00:00
kern_jail.c prison_racct_detach can be called for not fully initialized jail, so make it check that the jail has racct before doing anything 2012-12-18 18:34:36 +00:00
kern_khelp.c
kern_kthread.c Stop treating td_sigmask specially for the purposes of new thread 2012-05-26 20:03:47 +00:00
kern_ktr.c ktr: correctly handle possible wrap-around in the boot buffer 2013-02-08 07:29:07 +00:00
kern_ktrace.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_linker.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_lock.c lockmgr: unlock interlock (if requested) when dealing with upgrade/downgrade 2013-01-06 21:47:59 +00:00
kern_lockf.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
kern_lockstat.c
kern_loginclass.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
kern_malloc.c Try to improve r242655 take III: move these SYSCTLs describing the kernel 2013-02-04 09:35:48 +00:00
kern_mbuf.c Base the calculation of maxmbufmem in part on kmem_map size 2013-04-24 13:54:55 +00:00
kern_mib.c fix some fat-fingering in r246246 2013-02-02 14:19:50 +00:00
kern_module.c Fix a typo. 2012-08-22 20:01:57 +00:00
kern_mtxpool.c
kern_mutex.c Fixup r240424: On entering KDB backends, the hijacked thread to run 2012-12-22 09:37:34 +00:00
kern_ntptime.c Limit popcorn limit to something sane (either 2ns or 2 ticks if that's 2012-08-16 02:35:44 +00:00
kern_osd.c
kern_physio.c Add dev_strategy_csw() function, which is similar to dev_strategy() 2013-03-27 11:34:27 +00:00
kern_pmc.c Add software PMC support. 2012-03-28 20:58:30 +00:00
kern_poll.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
kern_priv.c - Add sysctl to allow unprivileged users to call mlock(2)-family system 2012-12-18 07:36:45 +00:00
kern_proc.c Similarly to proc_getargv() and proc_getenvv(), export proc_getauxv() 2013-04-14 20:03:48 +00:00
kern_prot.c Style fix 2012-11-14 10:33:12 +00:00
kern_racct.c Accessing td_state requires thread lock to be held. 2013-03-14 23:20:18 +00:00
kern_rangelock.c Add a rangelock implementation, intended to be used to range-locking 2012-05-30 16:06:38 +00:00
kern_rctl.c Add CPU percentage limit enforcement to RCTL. The resouce name is "pcpu". 2012-10-26 16:01:08 +00:00
kern_resource.c Call sched_prio() to immediately change the priority of the thread in 2013-03-07 02:53:29 +00:00
kern_rmlock.c Fixup r240424: On entering KDB backends, the hijacked thread to run 2012-12-22 09:37:34 +00:00
kern_rwlock.c Fixup r240424: On entering KDB backends, the hijacked thread to run 2012-12-22 09:37:34 +00:00
kern_sdt.c Instead of only iterating over the set of known SDT probes when sdt.ko is 2012-03-27 15:07:43 +00:00
kern_sema.c
kern_sharedpage.c Rename VM_OBJECT_LOCK(), VM_OBJECT_UNLOCK() and VM_OBJECT_TRYLOCK() to 2013-02-20 12:03:20 +00:00
kern_shutdown.c Switch vm_object lock to be a rwlock. 2013-02-20 10:38:34 +00:00
kern_sig.c Fix memory leak in coredump(). 2013-04-05 20:24:51 +00:00
kern_switch.c Add a comment on why inlining critical_enter() may not be a good idea 2012-12-09 04:54:22 +00:00
kern_sx.c Fixup r240424: On entering KDB backends, the hijacked thread to run 2012-12-22 09:37:34 +00:00
kern_synch.c Partially revert r195702. Deferring stops is now implemented via a set of 2013-03-18 17:23:58 +00:00
kern_syscalls.c
kern_sysctl.c - Use strdup(9) instead of reimplementing it. 2013-03-01 18:49:14 +00:00
kern_tc.c - Make callout(9) tickless, relying on eventtimers(4) as backend for 2013-03-04 11:09:56 +00:00
kern_thr.c Stop treating td_sigmask specially for the purposes of new thread 2012-05-26 20:03:47 +00:00
kern_thread.c Another NFS SIGSTOP related fix: Ignore thread suspend requests due to 2013-03-21 14:06:27 +00:00
kern_time.c Make kern_nanosleep() and pause_sbt() to use per-CPU sleep queues. 2013-03-12 06:58:49 +00:00
kern_timeout.c Cache the callout precision argument as part of the informations required 2013-03-25 09:43:50 +00:00
kern_umtx.c sem: Restart the POSIX sem_* calls after signals with SA_RESTART set. 2013-04-19 10:16:00 +00:00
kern_uuid.c Convert all users of IF_ADDR_LOCK to use new locking macros that specify 2012-01-05 19:00:36 +00:00
kern_xxx.c
ksched.c sched_rr_interval() seems always returned period in hz ticks, but same 2012-08-10 18:19:57 +00:00
link_elf_obj.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
link_elf.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
linker_if.m
Make.tags.inc Disconnect non-MPSAFE SMBFS from the build in preparation for dropping 2012-10-18 12:04:56 +00:00
Makefile
makesyscalls.sh - Add the ffclock_getcounter(), ffclock_getestimate() and ffclock_setestimate() 2011-11-21 01:26:10 +00:00
md4c.c
md5c.c
p1003_1b.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
posix4_mib.c
sched_4bsd.c Add CPU percentage limit enforcement to RCTL. The resouce name is "pcpu". 2012-10-26 16:01:08 +00:00
sched_ule.c Point args[0] not at the thread that is ending but at the one that 2013-04-15 17:21:02 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c Fix bug where NFSv4 ACL enforcement code wouldn't unconditionally 2012-04-17 14:54:00 +00:00
subr_acl_posix1e.c Add module load/unload stubs. 2012-03-13 20:27:48 +00:00
subr_autoconf.c
subr_blist.c Remove reference to the rlist code from comments, and fix a typo visible 2013-02-05 20:08:33 +00:00
subr_bufring.c
subr_bus_dma.c Some compilers issue a warning when wider integer is casted to narrow 2013-04-16 07:11:52 +00:00
subr_bus.c Fix a typo. 2013-01-23 14:37:05 +00:00
subr_busdma_bufalloc.c Create an architecture-agnostic buffer pool manager that uses uma(9) to 2012-12-20 00:34:54 +00:00
subr_clock.c
subr_counter.c On non-ACPI i386 mp_ncpus is initialized at SI_SUB_CPU, and this 2013-04-17 18:43:33 +00:00
subr_devstat.c Fix build for kernels with dtrace hooks. 2012-07-11 18:50:50 +00:00
subr_disk.c
subr_dummy_vdso_tc.c Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
subr_eventhandler.c
subr_fattime.c
subr_firmware.c Correct sizeof usage 2012-06-25 05:41:16 +00:00
subr_hash.c Convert panic()s to KASSERT()s. This is an optimisation for 2012-01-23 16:31:46 +00:00
subr_hints.c Style fixes. 2012-09-04 23:16:55 +00:00
subr_kdb.c - Extend the KDB interface to add a per-debugger callback to print a 2012-04-12 17:43:59 +00:00
subr_kobj.c As it turns out, r186347 actually is insufficient to avoid the use of the 2011-11-15 20:11:03 +00:00
subr_lock.c - Implement run-time expansion of the KTR buffer via sysctl. 2012-11-15 00:51:57 +00:00
subr_log.c MFcalloutng (r244255 by mav, with minor changes): 2013-03-04 16:07:55 +00:00
subr_mbpool.c
subr_mchain.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
subr_module.c
subr_msgbuf.c - Clean up timestamps in msgbuf code. The timestamps should now be 2012-03-19 00:36:32 +00:00
subr_param.c Implement the concept of the unmapped VMIO buffers, i.e. buffers which 2013-03-19 14:13:12 +00:00
subr_pcpu.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
subr_power.c
subr_prf.c Fix double vision syndrome (read: double output) when in the 2011-10-16 14:16:46 +00:00
subr_prof.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
subr_rman.c Unlock in the error path to prevent a lock leak. 2012-05-31 17:27:05 +00:00
subr_rtc.c Core structure and functions to support a feed-forward clock within the kernel. 2011-11-19 14:10:16 +00:00
subr_sbuf.c Add sbuf_start_section() and sbuf_end_section() functions, which can 2013-04-11 19:49:18 +00:00
subr_scanf.c Xen netback driver rewrite. 2012-01-26 16:35:09 +00:00
subr_sglist.c
subr_sleepqueue.c Partially revert r195702. Deferring stops is now implemented via a set of 2013-03-18 17:23:58 +00:00
subr_smp.c - Correctly handle EWOULDBLOCK in quiesce_cpus 2012-12-19 20:08:06 +00:00
subr_stack.c Constify stack argument for functions that don't modify it. 2011-11-16 19:06:55 +00:00
subr_syscall.c Fix build on ARM (and probably other platforms) 2012-12-28 06:52:53 +00:00
subr_taskqueue.c Extend taskqueue(9) to enable per-taskqueue callbacks. 2013-03-23 15:11:53 +00:00
subr_trap.c Partially revert r195702. Deferring stops is now implemented via a set of 2013-03-18 17:23:58 +00:00
subr_turnstile.c Update the comment: we do show the backtrace of misbehaving thread. 2013-02-17 21:37:32 +00:00
subr_uio.c Rename VM_OBJECT_LOCK(), VM_OBJECT_UNLOCK() and VM_OBJECT_TRYLOCK() to 2013-02-20 12:03:20 +00:00
subr_unit.c Correct double "the the" 2012-09-14 21:28:56 +00:00
subr_witness.c Correct the lock class for the vm object lock. 2013-03-09 10:16:08 +00:00
sys_capability.c Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
sys_generic.c Rework overflow checks of r247898 to not let too "intelligent" compiler to 2013-03-09 09:07:13 +00:00
sys_pipe.c Rename do_pipe() to kern_pipe2() and declare it properly. 2013-03-31 17:42:54 +00:00
sys_procdesc.c Add the wait6(2) system call. It takes POSIX waitid()-like process 2012-11-13 12:52:31 +00:00
sys_process.c Switch some "low-hanging fruit" to acquire read lock on vmobjects 2013-04-08 19:58:32 +00:00
sys_socket.c Add the fo_chown and fo_chmod methods to struct fileops and use them 2011-08-16 20:07:47 +00:00
syscalls.c Regen. 2013-04-02 05:30:52 +00:00
syscalls.master Fix return type of extattr_set_* and fix rmextattr(8) utility. 2013-04-02 05:30:41 +00:00
systrace_args.c Regen. 2013-04-02 05:30:52 +00:00
sysv_ipc.c
sysv_msg.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
sysv_sem.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
sysv_shm.c Rename VM_OBJECT_LOCK(), VM_OBJECT_UNLOCK() and VM_OBJECT_TRYLOCK() to 2013-02-20 12:03:20 +00:00
tty_compat.c
tty_info.c Fix whitespace inconsistencies in TTY code. 2012-02-06 18:15:46 +00:00
tty_inq.c Use strchr() and strrchr(). 2012-01-02 12:12:10 +00:00
tty_outq.c
tty_pts.c Allow O_CLOEXEC in posix_openpt() flags. 2013-03-21 21:39:15 +00:00
tty_tty.c
tty_ttydisc.c Correct SIGTTIN handling. 2012-10-25 09:05:21 +00:00
tty.c Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
uipc_accf.c
uipc_cow.c
uipc_debug.c
uipc_domain.c - Implement two new system calls: 2013-03-02 21:11:30 +00:00
uipc_mbuf2.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
uipc_mbuf.c Fix bug in m_split() in a case when split len matches len of the 2013-03-29 14:10:40 +00:00
uipc_mqueue.c mqueue,ksem,shm: Fix race condition with setting UF_EXCLOSE. 2013-04-07 15:26:09 +00:00
uipc_sem.c sem: Restart the POSIX sem_* calls after signals with SA_RESTART set. 2013-04-19 10:16:00 +00:00
uipc_shm.c mqueue,ksem,shm: Fix race condition with setting UF_EXCLOSE. 2013-04-07 15:26:09 +00:00
uipc_sockbuf.c Once ng_ksocket(4) is fixed, re-apply r194662. See this revision for 2013-03-29 14:06:04 +00:00
uipc_socket.c Fix the build. 2013-04-10 00:35:08 +00:00
uipc_syscalls.c Don't compare unsigned socklen_t against < 0. 2013-04-19 13:40:13 +00:00
uipc_usrreq.c Add fdallocn function and use it when passing fds over unix socket. 2013-04-14 17:08:34 +00:00
vfs_acl.c Prezero the acl structure which is to be copied to usermode, to avoid 2013-02-06 15:18:46 +00:00
vfs_aio.c Fix a race with the vnode reclamation in the aio_qphysio(). Obtain 2013-03-27 11:47:52 +00:00
vfs_bio.c Add dev_strategy_csw() function, which is similar to dev_strategy() 2013-03-27 11:34:27 +00:00
vfs_cache.c When renaming a directory from one parent directory to another, 2013-03-20 17:57:00 +00:00
vfs_cluster.c Implement the concept of the unmapped VMIO buffers, i.e. buffers which 2013-03-19 14:13:12 +00:00
vfs_default.c MFC 2013-03-02 14:48:41 +00:00
vfs_export.c MFC 2013-02-21 21:59:35 +00:00
vfs_extattr.c Use a shared lock for VOP_GETEXTATTR, as it is a read-like operation. 2013-03-30 15:09:04 +00:00
vfs_hash.c Add exported vfs_hash_index() function, which calculates the canonical 2013-01-14 05:41:40 +00:00
vfs_init.c Don't worry if a module is already loaded when looking for a fstype to mount 2013-02-21 02:41:37 +00:00
vfs_lookup.c Do not call the VOP_LOOKUP() for the doomed directory vnode. The 2013-04-01 09:59:38 +00:00
vfs_mount.c - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
vfs_mountroot.c post mountroot event after a real/final root is mounted 2013-03-23 08:59:34 +00:00
vfs_subr.c Allow the vnode to be unlocked for the weird case of 2013-04-16 14:22:16 +00:00
vfs_syscalls.c - Constify local path variable for chflagsat(). 2013-03-22 07:40:34 +00:00
vfs_vnops.c Use a shared lock for VOP_GETEXTATTR, as it is a read-like operation. 2013-03-30 15:09:04 +00:00
vnode_if.src remove vop_lookup_pre and vop_lookup_post 2012-11-22 10:36:10 +00:00