freebsd-nq/sys
Kirk McKusick 58941b9f15 Restructuring of the soft updates code to set it up so that the
single kernel-wide soft update lock can be replaced with a
per-filesystem soft-updates lock. This per-filesystem lock will
allow each filesystem to have its own soft-updates flushing thread
rather than being limited to a single soft-updates flushing thread
for the entire kernel.

Move soft update variables out of the ufsmount structure and into
their own mount_softdeps structure referenced by ufsmount field
um_softdep.  Eventually the per-filesystem lock will be in this
structure. For now there is simply a pointer to the kernel-wide
soft updates lock.

Change all instances of ACQUIRE_LOCK and FREE_LOCK to pass the lock
pointer in the mount_softdeps structure instead of a pointer to the
kernel-wide soft-updates lock.

Replace the five hash tables used by soft updates with per-filesystem
copies of these tables allocated in the mount_softdeps structure.

Several functions that flush dependencies when too many are allocated
in the kernel used to operate across all filesystems. They are now
parameterized to flush dependencies from a specified filesystem.
For now, we stick with the round-robin flushing strategy when the
kernel as a whole has too many dependencies allocated.

While there are many lines of changes, there should be no functional
change in the operation of soft updates.

Tested by:    Peter Holm and Scott Long
Sponsored by: Netflix
2013-10-21 00:28:02 +00:00
..
amd64 Add a new capability, VM_CAP_ENABLE_INVPCID, that can be enabled to expose 2013-10-16 18:20:27 +00:00
arm Add configuration for the Freescale i.MX53 Quick Start Board. 2013-10-20 21:21:07 +00:00
boot Add configuration for the Freescale i.MX53 Quick Start Board. 2013-10-20 21:21:07 +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 Unify periph invalidation and destruction reporting. 2013-10-15 17:59:41 +00:00
cddl Add a function, memstr, which can be used to convert a buffer of 2013-10-16 01:39:26 +00:00
compat Add padding to match the compat32 struct stat32 definition to the real 2013-10-04 22:05:23 +00:00
conf The Xen userland event channel driver isn't complete. Disabled it 2013-10-20 22:50:57 +00:00
contrib Update firmware for run(4) to version 0.33. 2013-10-18 07:40:50 +00:00
crypto Use the fact that the AES-NI instructions can be pipelined to improve 2013-09-03 18:31:23 +00:00
ddb
dev Allow the OFW interrupt mapping code to work with PCI devices not enumerated 2013-10-21 00:04:26 +00:00
fs Similar to debug.iosize_max_clamp sysctl, introduce 2013-10-15 06:33:10 +00:00
gdb
geom Fix build with gcc by spelling unused format string as "unused" instead of NULL. 2013-10-19 08:20:00 +00:00
gnu/fs/reiserfs
i386 Document XENHVM and xenpci are mutually inclusive. 2013-10-11 19:40:28 +00:00
ia64 The pmap function pmap_clear_reference() is no longer used. Remove it. 2013-09-20 04:30:18 +00:00
isa
kern Revert r256587. 2013-10-18 11:26:40 +00:00
kgssapi
libkern Fix ixp425 boot2 with ARM EABI: 2013-09-29 15:19:34 +00:00
mips MFP4: 221483, 221567, 221568, 221670, 221677, 221678, 221800, 221801, 2013-10-18 20:44:19 +00:00
modules Don't build krping.ko, iw_cxgb.ko, and iw_cxgbe.ko, if MK_OFED=no 2013-10-18 09:17:35 +00:00
net Use the same actor key for media types of the same speed. 2013-10-17 15:14:58 +00:00
net80211 Fix the "am I a net80211 vap" check for bpf listeners. 2013-10-10 19:56:31 +00:00
netatalk Remove ifa_init() and provide ifa_alloc() that will allocate and setup 2013-10-15 10:31:42 +00:00
netgraph Improve locking model used to protect netgraph topology: 2013-10-15 17:44:35 +00:00
netinet - Add parentheses to all internet addresses 2013-10-19 18:13:32 +00:00
netinet6 - Utilize counter(9) to accumulate statistics on interface addresses. Add 2013-10-15 11:37:57 +00:00
netipsec Remove most of the remaining sysctl name list macros. They were only 2013-08-26 18:16:05 +00:00
netipx Remove ifa_init() and provide ifa_alloc() that will allocate and setup 2013-10-15 10:31:42 +00:00
netnatm Fix the length calculation for the final block of a sendfile(2) 2013-09-10 10:05:59 +00:00
netpfil Use the correct EtherType for logging IPv6 packets. 2013-09-28 15:49:36 +00:00
netsmb Change the cap_rights_t type from uint64_t to a structure that we can extend 2013-09-05 00:09:56 +00:00
nfs
nfsclient
nfsserver Change the cap_rights_t type from uint64_t to a structure that we can extend 2013-09-05 00:09:56 +00:00
nlm Intermittent crashes in the NLM (rpc.lockd) code during system 2013-09-06 23:14:31 +00:00
ofed Fix resource free. 2013-10-17 12:19:36 +00:00
opencrypto Make sendfile() a method in the struct fileops. Currently only 2013-08-15 07:54:31 +00:00
pc98 MFi386: r254619 2013-08-22 16:39:59 +00:00
pci
powerpc Allow the OFW interrupt mapping code to work with PCI devices not enumerated 2013-10-21 00:04:26 +00:00
rpc It was reported via email that the cu_sent field used by the 2013-09-06 02:34:34 +00:00
security Fix some typos that were causing probe argument types to show up as unknown. 2013-10-01 15:40:27 +00:00
sparc64 Implement GET_STACK_USAGE. 2013-09-29 13:09:25 +00:00
sys Bump __FreeBSD_version to 1100001 for addition of support for "first boot" 2013-10-19 21:55:42 +00:00
teken
tools
ufs Restructuring of the soft updates code to set it up so that the 2013-10-21 00:28:02 +00:00
vm Tidy up the output of "sysctl vm.phys_free". 2013-10-10 16:11:45 +00:00
x86 Add a va_copy() to our fall-back stdarg implementation for use with lint(1) 2013-10-07 10:01:23 +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