opnsense-src/sys
Konstantin Belousov afe55ca373 Implement 'fast path' for the vm page fault handler. Or, it could be
called a scalable path.  When several preconditions hold, the vm
object lock for the object containing the faulted page is taken in
read mode, instead of write, which allows parallel faults processing
in the region.

Namely, the fast path is taken when the faulted page already exists
and does not need copy on write, is already fully valid, and not busy.
For technical reasons, fast path is avoided when the fault is the
first write on the vnode object, or when the fault is for wiring or
debugger read or write.

On the fast path, pmap_enter(9) is passed the PMAP_ENTER_NOSLEEP flag,
since object lock is kept.  Pmap might fail to create the entry, in
which case the fallback to slow path is performed.

Reviewed by:	alc
Tested by:	pho (previous version)
Hardware provided and hosted by:	The FreeBSD Foundation and
	 Sentex Data Communications
Sponsored by:	The FreeBSD Foundation
MFC after:	2 week
2014-08-15 07:30:14 +00:00
..
amd64 Update i386/NOTES and amd64/NOTES files to contain the complete list of 2014-08-14 18:29:55 +00:00
arm Print the symbolic bit names for the status when we get a timeout. 2014-08-14 23:17:33 +00:00
boot Quiesce warning about discarding a const qualifier in assignement. 2014-08-08 21:47:47 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam Added 4K quirks for Corsair Force GT and Samsung 840 SSDs 2014-08-14 13:57:17 +00:00
cddl MFV r269542: 2014-08-05 00:07:21 +00:00
compat All mbuf external free functions never fail, so let them be void. 2014-07-11 13:58:48 +00:00
conf Allow iwn105fw and iwn135 firmwares to be compiled into the kernel. 2014-08-14 18:16:27 +00:00
contrib Add some more OS_MARK() probes to the AR9300 HAL. 2014-08-11 00:03:50 +00:00
crypto Put the aesni_cipher_setup() and aesni_cipher_process() functions into 2014-06-24 06:55:49 +00:00
ddb ins is only set and unused, but only when we're not doing software 2014-08-14 16:01:51 +00:00
dev Delete pp_isadma. It isn't use, and the code that used it has been 2014-08-14 16:01:38 +00:00
fs Change the NFS server's printf related to hitting 2014-08-10 01:13:32 +00:00
gdb Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
geom Turn off kern.geom.part.mbr.enforce_chs by default. 2014-08-12 10:31:31 +00:00
gnu Revert r269528; this was not the right way to bring these changes in. 2014-08-05 22:38:49 +00:00
i386 Update i386/NOTES and amd64/NOTES files to contain the complete list of 2014-08-14 18:29:55 +00:00
isa Remove vestiges of knowing the ISA bus, which we gave up on around 20 2014-03-19 21:03:04 +00:00
kern Add a new loader tunable, vm.kmem_zmax which allows a system administrator 2014-08-14 05:31:39 +00:00
kgssapi
libkern Fix unwind-info errors in our hand-written arm assembler code. 2014-08-01 18:24:44 +00:00
mips Change pmap_enter(9) interface to take flags parameter and superpage 2014-08-08 17:12:03 +00:00
modules Similar to r250143, optimize MODULES_OVERRIDE such that SUBDIR isn't 2014-08-11 17:04:04 +00:00
net Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
net80211 Undo r195846 for now - allow raw frame transmit in monitor mode. 2014-08-10 08:35:42 +00:00
netgraph Remove any stale mbuf tags from packets being injected into a netgraph 2014-07-01 07:54:12 +00:00
netinet Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netinet6 Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netipsec Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netnatm
netpfil Fix synproxy with IPv6. pf_test6() was missing a check for M_SKIP_FIREWALL. 2014-08-15 04:35:34 +00:00
netsmb Remove redundant unlock. 2014-04-17 12:22:08 +00:00
nfs Fix/improve fhe_stats sysctl output. 2014-06-14 12:26:12 +00:00
nfsclient
nfsserver Change NFS readdir() to only ignore cookies preceding the given offset for 2014-07-01 20:00:35 +00:00
nlm
ofed - Fix radix tree memory leakage when unloading modules using radix 2014-08-12 11:45:57 +00:00
opencrypto
pc98 Compile fixes: 2014-06-28 17:36:18 +00:00
pci Fix various NIC drivers to properly cleanup static DMA resources. 2014-06-11 14:53:58 +00:00
powerpc Fix two files forgotten in r269783 (vt_generate_cons_palette) 2014-08-10 22:24:14 +00:00
rpc Merge the NFSv4.1 server code in projects/nfsv4.1-server over 2014-07-01 20:47:16 +00:00
security Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
sparc64 On sparc64, do not keep mappings for the destroyed sf_bufs. Sparc64 2014-08-10 16:59:39 +00:00
sys Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
teken
tools Call cpp with -P to avoid printing line markings. 2014-06-10 06:24:01 +00:00
ufs Revision r269457 removed the Giant around mount and unmount code, but 2014-08-12 09:33:00 +00:00
vm Implement 'fast path' for the vm page fault handler. Or, it could be 2014-08-15 07:30:14 +00:00
x86 atpic: make sure atpic_init is called after IO APIC initialization 2014-08-07 17:00:50 +00:00
xdr
xen xen: implement event channel PIRQ support 2014-08-04 08:42:29 +00:00
Makefile Remove ia64. 2014-07-07 00:27:09 +00:00