freebsd-skq/sys
Mateusz Guzik c4a48867f1 lockmgr: implement fast path
The main lockmgr routine takes 8 arguments which makes it impossible to
tail-call it by the intermediate vop_stdlock/unlock routines.

The routine itself starts with an if-forest and reads from the lock itself
several times.

This slows things down both single- and multi-threaded. With the patch
single-threaded fstats go 4% up and multithreaded up to ~27%.

Note that there is still a lot of room for improvement.

Reviewed by:	kib
Tested by:	pho
2017-02-12 09:49:44 +00:00
..
amd64 Regenerate all the system call tables to drop "created from" lines. 2017-02-10 19:45:02 +00:00
arm Enable usb low and full speed devices connected to the imx6 root hubs. 2017-02-12 00:52:22 +00:00
arm64 Push reading of ESR_EL1 to assembly. Among other uses this will allow us 2017-02-07 18:19:11 +00:00
boot loader: implement MEDIA_FILEPATH_DP support in efipart 2017-02-11 15:25:49 +00:00
bsm
cam Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
cddl Fix setting birthtime in ZFS 2017-02-09 21:30:53 +00:00
compat Regenerate all the system call tables to drop "created from" lines. 2017-02-10 19:45:02 +00:00
conf Allow Dtrace to be compiled into the kernel again after r313177. 2017-02-10 16:06:14 +00:00
contrib Stop including sys/types.h from arm's machine/atomic.h, fix the places 2017-02-11 01:07:46 +00:00
crypto Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
ddb Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
dev Enable usb low and full speed devices connected to the imx6 root hubs. 2017-02-12 00:52:22 +00:00
fs Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
gdb
geom Defer startup of gjournal switcher kproc. 2017-02-07 22:45:59 +00:00
gnu Add Ingenic X1000 DTS files (unofficial). 2016-11-19 15:03:49 +00:00
i386 Regenerate all the system call tables to drop "created from" lines. 2017-02-10 19:45:02 +00:00
isa Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
kern lockmgr: implement fast path 2017-02-12 09:49:44 +00:00
kgssapi
libkern calculate_crc32c: Add SSE4.2 implementation on x86 2017-01-31 03:26:32 +00:00
mips Add I2C device hints for Onion Omega 2017-02-09 15:16:08 +00:00
modules ixl(4): Update to 1.7.12-k 2017-02-10 01:04:11 +00:00
net Last consumer of _WANT_RTENTRY gone. 2017-02-10 17:37:04 +00:00
net80211 [net80211] add a sysctl that forces a vap restart. 2017-02-11 05:33:49 +00:00
netgraph mppc - Finish pluging NETGRAPH_MPPC_COMPRESSION. 2017-01-20 00:02:11 +00:00
netinet Committed without approval from mentor. 2017-02-12 06:56:33 +00:00
netinet6 Committed without approval from mentor. 2017-02-12 06:56:33 +00:00
netipsec Move tcp_fields_to_net() static inline into tcp_var.h, just below its 2017-02-10 17:46:26 +00:00
netnatm
netpfil Fix typos in comments (returing -> returning) 2017-02-07 00:09:48 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4 2016-09-30 08:23:06 +00:00
opencrypto Add support for the fpu_kern(9) KPI on arm64. It hooks into the existing 2016-10-20 09:22:10 +00:00
powerpc Define the vm_ooffset_t and vm_pindex_t types as machine-independend. 2017-02-04 12:26:38 +00:00
riscv Implement atomic_fcmpset_*() for RISC-V. 2017-02-05 00:32:12 +00:00
rpc
security Audit 'fd' and 'cmd' arguments to fcntl(2), and when generating BSM, 2016-11-22 00:41:24 +00:00
sparc64 Define the vm_ooffset_t and vm_pindex_t types as machine-independend. 2017-02-04 12:26:38 +00:00
sys lockmgr: implement fast path 2017-02-12 09:49:44 +00:00
teken
tests
tools Replace using of objdump with elfdump 2017-01-10 18:46:40 +00:00
ufs ufs: Use UFS_MAXNAMLEN constant 2017-02-09 17:47:01 +00:00
vm Change type of the prot parameter for kern_vm_mmap() from vm_prot_t to int. 2017-02-11 20:27:39 +00:00
x86 Ensure the idle thread's loop services interrupts in a timely way when 2017-02-08 16:46:57 +00:00
xdr
xen "Buses" is the preferred plural of "bus" 2017-01-15 17:54:01 +00:00
Makefile Remove pc98 support completely. 2017-01-28 02:22:15 +00:00