opnsense-src/sys
Alexander Motin 1cf78c85c5 Create own free list for each of the first 32 possible allocation sizes.
In case of 4K allocation quantum that means for allocations up to 128K.

With growth of memory fragmentation these lists may grow to quite a large
sizes (tenths and hundreds of thousands items).  Having in one list items
of different sizes in worst case may require full linear list traversal,
that may be very expensive.  Having lists for items of single size means
that unless user specify some alignment or border requirements (that are
very rare cases) first item found on the list should satisfy the request.

While running SPEC NFS benchmark on top of ZFS on 24-core machine with
84GB RAM this change reduces CPU time spent in vmem_xalloc() from 8%
and lock congestion spinning around it from 20% to invisible levels.
And that all is by the cost of just 26 more pointers per vmem instance.

If at some point our kernel will start to actively use KVA allocations
with odd sizes above 128K, something may need to be done to bigger lists
also.
2013-12-11 21:48:04 +00:00
..
amd64 Fix typo when initializing the vlapic version register ('<<' instead of '<'). 2013-12-11 06:28:44 +00:00
arm Loose -> Lose so this sentence makes sense. 2013-12-11 15:32:28 +00:00
boot Add gpio config for usb1 in dts. 2013-12-09 07:15:46 +00:00
bsm Change the cap_rights_t type from uint64_t to a structure that we can extend 2013-09-05 00:09:56 +00:00
cam When comparing device IDs, make sure that they have the same type 2013-12-08 20:43:01 +00:00
cddl Correct the check for errors from proc_rwmem(). 2013-12-11 04:31:40 +00:00
compat Migrate the sendfile_sync structure into a public(ish) API in preparation 2013-12-01 03:53:21 +00:00
conf Break build with error in case when both syscons and newcons are enabled. 2013-12-10 15:36:29 +00:00
contrib Remove 'inline' from ar9300_init_pll(), it's too big to inline. 2013-11-08 16:28:00 +00:00
crypto fix broken style(9) in r258399 2013-11-23 00:28:18 +00:00
ddb
dev Destroy mtx lock when failed to allocate memory during attach. 2013-12-11 17:40:35 +00:00
fs For software builds, the NFS client does many small 2013-12-07 23:05:59 +00:00
gdb rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST 2013-07-24 09:45:31 +00:00
geom Partially revert r259080. bde@ pointed out that there are a lot more style bugs 2013-12-08 09:34:56 +00:00
gnu/fs/reiserfs
i386 Move constants for indices in the local APIC's local vector table from 2013-12-09 21:08:52 +00:00
ia64 Make process descriptors standard part of the kernel. rwhod(8) already 2013-11-30 15:08:35 +00:00
isa
kern Create own free list for each of the first 32 possible allocation sizes. 2013-12-11 21:48:04 +00:00
kgssapi Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
libkern Fix typo 2013-11-29 20:14:26 +00:00
mips Add missing includes. 2013-12-10 09:38:18 +00:00
modules Disable error message about failed attempt to attach fbd when drm2 built with 2013-12-10 15:53:00 +00:00
net Add constants for use in interrogating various fiber and copper connectors 2013-11-27 20:20:02 +00:00
net80211 Make sure any waiters on the scan results get notified if the scan task 2013-11-29 22:24:57 +00:00
netatalk The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
netgraph Eliminate duplicated & dead code. 2013-11-08 22:40:33 +00:00
netinet In a situation where: 2013-12-02 03:11:25 +00:00
netinet6 - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
netipsec Initialize prot variable. 2013-11-11 13:19:55 +00:00
netipx The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
netnatm Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
netpfil Simplify O_NAT opcode handling. 2013-11-28 15:28:51 +00:00
netsmb Catch up with sb_timeo type change in r255138. This fixes 2013-11-08 08:44:09 +00:00
nfs The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
nfsclient For software builds, the NFS client does many small 2013-12-07 23:05:59 +00:00
nfsserver The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
nlm Intermittent crashes in the NLM (rpc.lockd) code during system 2013-09-06 23:14:31 +00:00
ofed Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this 2013-11-30 22:17:27 +00:00
opencrypto Fix build with 'crypto' and 'zfs' in the same kernel. This was the path 2013-12-08 21:59:46 +00:00
pc98 Fix a typo. 2013-12-05 21:58:02 +00:00
pci Add preliminary support for RTL8168EP. 2013-10-29 05:37:05 +00:00
powerpc Make more unsigned ints signed. 2013-12-07 22:25:07 +00:00
rpc Replace Sun Industry Standards Source License for Sun RPC code with a 2013-11-25 19:08:38 +00:00
security There is no sysctl with the MIB { CTL_KERN, KERN_MAXID }. 2013-12-05 21:55:10 +00:00
sparc64 Restore a vital comment nuked in r259016. 2013-12-08 15:25:19 +00:00
sys Merge VT(9) project (a.k.a. newcons). 2013-12-05 22:38:53 +00:00
teken Merge VT(9) project (a.k.a. newcons). 2013-12-05 22:38:53 +00:00
tools dtrace sdt: remove the ugly sname parameter of SDT_PROBE_DEFINE 2013-11-26 08:46:27 +00:00
ufs We needlessly panic when trying to flush MKDIR_PARENT dependencies. 2013-12-01 07:34:21 +00:00
vm Eliminate a redundant parameter to vm_radix_replace(). 2013-12-08 20:07:02 +00:00
x86 Use fixed-width types for all fields in MP Table structures and pack 2013-12-11 21:19:04 +00:00
xdr
xen Remove redundant redeclaration of gdtset in sys/xen/xen-os.h, to silence 2013-10-18 17:06:13 +00:00
Makefile