opnsense-src/sys
Konstantin Belousov c3cf0b476f Remove the altkstacks, instead instantiate threads with kernel stack
allocated with the right size from the start. For the thread that has
kernel stack cached, verify that requested stack size is equial to the
actual, and reallocate the stack if sizes differ [1].

This fixes the bug introduced by r173361 that was committed several days
after r173004 and consisted of kthread_add(9) ignoring the non-default
kernel stack size.

Also, r173361 removed the caching of the kernel stacks for a non-first
thread in the process. Introduce separate kernel stack cache that keeps
some limited amount of preallocated kernel stacks to lower the latency
of thread allocation. Add vm_lowmem handler to prune the cache on
low memory condition. This way, system with reasonable amount of the
threads get lower latency of thread creation, while still not exhausting
significant portion of KVA for unused kstacks.

Submitted by:	peter [1]
Discussed with:	jhb, julian, peter
Reviewed by:	jhb
Tested by:	pho
MFC after:	1 week
2009-08-29 13:28:02 +00:00
..
amd64 Fix handling of .note.ABI-tag section for GNU systems [1]. 2009-08-24 16:19:47 +00:00
arm Remove the altkstacks, instead instantiate threads with kernel stack 2009-08-29 13:28:02 +00:00
boot Fix parse() so that the partition to boot (load /boot/loader) from can 2009-08-17 15:19:03 +00:00
bsm Import OpenBSM 1.1p1 from vendor branch to 8-CURRENT, populating 2009-07-17 14:02:20 +00:00
cam - Add quirk for Sony DSC digital cameras. This umass devices fail 2009-08-26 21:14:28 +00:00
cddl - Hide ZFS kernel threads under zfskern process. 2009-08-23 11:33:46 +00:00
compat Fix a few panics in linuxulator + VIMAGE due to curvnet not being set. 2009-08-28 22:51:07 +00:00
conf Connect bwi up to the build. While there are some problems with this 2009-08-29 01:34:42 +00:00
contrib Fix argument ordering to memcpy as well as the size of the copy in the 2009-08-25 19:30:32 +00:00
crypto Changed to M_NOWAIT when reallocing psc_buf in padlock_sha_update(), 2009-05-27 09:52:12 +00:00
ddb Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
dev change default regdomain for thailand 2009-08-27 17:42:37 +00:00
fs Fix poll() on half-closed sockets, while retaining POLLHUP for fifos. 2009-08-25 21:44:14 +00:00
gdb Commit SYSINIT() ;-adding patch missed in previous pass. 2008-03-16 13:02:04 +00:00
geom There's no need for checking result of M_WAITOK allocation. 2009-08-27 08:40:51 +00:00
gnu Fix the build by using proper format. 2009-06-25 16:48:13 +00:00
i386 Fix build broken in r196524. 2009-08-25 14:08:33 +00:00
ia64 Decouple ACPI CPU Ids from FreeBSD's cpuid. The ACPI Ids can be 2009-08-16 01:43:08 +00:00
isa Tweak the way that the ACPI and ISA bus drivers match hint devices to 2009-08-24 21:51:46 +00:00
kern Remove the altkstacks, instead instantiate threads with kernel stack 2009-08-29 13:28:02 +00:00
kgssapi When the KOBJMETHOD() macro was updated, it resulted in the 2009-06-14 17:33:46 +00:00
libkern done method is supposed to return int. 2009-06-22 22:09:18 +00:00
mips * Completely Remove the option STOP_NMI from the kernel. This option 2009-08-13 17:09:45 +00:00
modules Connect bwi up to the build. While there are some problems with this 2009-08-29 01:34:42 +00:00
net Introduce a separate sx lock for protecting lists of vnet sysinit 2009-08-28 22:30:55 +00:00
net80211 Fix a typo in ifdef mesh support. This would make mesh unworkable if 2009-08-17 12:57:57 +00:00
netatalk Reverse misordered unlock and lock in at_control for netatalk phase I 2009-08-12 10:44:13 +00:00
netgraph Rework global locks for interface list and index management, correcting 2009-08-23 20:40:19 +00:00
netinet Fix a bug where vlan interfaces are not supported by SCTP. 2009-08-28 08:41:59 +00:00
netinet6 When multiple interfaces exist in the system, with each interface having 2009-08-26 21:32:50 +00:00
netipsec Rework global locks for interface list and index management, correcting 2009-08-23 20:40:19 +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 Reimplement the netisr framework in order to support parallel netisr 2009-06-01 10:41:38 +00:00
netncp Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
netsmb Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
nfs Revert rev 192323 (nfs_common.c only): 2009-07-12 03:53:52 +00:00
nfsclient Fix NFS panics with options VIMAGE kernels by apropriately setting curvnet 2009-08-24 10:09:30 +00:00
nfsserver Remove the old kernel RPC implementation and the NFS_LEGACYRPC option. 2009-06-30 19:03:27 +00:00
nlm Since svc_[dg|vc|tli|tp]_create() did not hold a reference count on the 2009-06-17 22:50:26 +00:00
opencrypto Fix cryptodev UIO creation. 2009-05-23 13:23:46 +00:00
pc98 Temporarily revert the new-bus locking for 8.0 release. It will be 2009-08-20 19:17:53 +00:00
pci Add RTL8168DP/RTL8111DP device id. While I'm here append "8111D" to 2009-08-24 18:58:13 +00:00
powerpc * Completely Remove the option STOP_NMI from the kernel. This option 2009-08-13 17:09:45 +00:00
rpc Fix NFS panics with options VIMAGE kernels by apropriately setting curvnet 2009-08-24 10:09:30 +00:00
security Correctly audit real gids following changes to the audit record argument 2009-08-12 10:45:45 +00:00
sparc64 * Completely Remove the option STOP_NMI from the kernel. This option 2009-08-13 17:09:45 +00:00
sun4v * Completely Remove the option STOP_NMI from the kernel. This option 2009-08-13 17:09:45 +00:00
sys Remove the altkstacks, instead instantiate threads with kernel stack 2009-08-29 13:28:02 +00:00
tools - Increase dynamic range of filter coefficients from 28bit to 30bit. 2009-07-05 18:15:06 +00:00
ufs When a UFS node is truncated to the zero length, e.g. by explicit 2009-08-14 11:00:38 +00:00
vm Remove the altkstacks, instead instantiate threads with kernel stack 2009-08-29 13:28:02 +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 Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00