freebsd-dev/sys
Kirk McKusick dca5e0ec50 This update uses the MNT_VNODE_FOREACH_ACTIVE interface that loops
over just the active vnodes associated with a mount point to replace
MNT_VNODE_FOREACH_ALL in the vfs_msync, ffs_sync_lazy, and qsync
routines.

The vfs_msync routine is run every 30 seconds for every writably
mounted filesystem. It ensures that any files mmap'ed from the
filesystem with modified pages have those pages queued to be
written back to the file from which they are mapped.

The ffs_lazy_sync and qsync routines are run every 30 seconds for
every writably mounted UFS/FFS filesystem. The ffs_lazy_sync routine
ensures that any files that have been accessed in the previous
30 seconds have had their access times queued for updating in the
filesystem. The qsync routine ensures that any files with modified
quotas have those quotas queued to be written back to their
associated quota file.

In a system configured with 250,000 vnodes, less than 1000 are
typically active at any point in time. Prior to this change all
250,000 vnodes would be locked and inspected twice every minute
by the syncer. For UFS/FFS filesystems they would be locked and
inspected six times every minute (twice by each of these three
routines since each of these routines does its own pass over the
vnodes associated with a mount point). With this change the syncer
now locks and inspects only the tiny set of vnodes that are active.

Reviewed by: kib
Tested by:   Peter Holm
MFC after:   2 weeks
2012-04-20 07:00:28 +00:00
..
amd64 Regen for r234359. 2012-04-16 23:17:29 +00:00
arm Replace the C implementation of __aeabi_read_tp with an assembly version. 2012-04-16 09:38:20 +00:00
boot zfsboot: honor -q if it's present in boot.config 2012-04-16 10:43:06 +00:00
bsm
cam Alike to SCSI make adaclose() to not return error if device gone. 2012-04-18 08:55:26 +00:00
cddl - Introduce a cache-miss optimization for consistency with other 2012-04-09 17:05:18 +00:00
compat - Implement pipe2 syscall for Linuxulator. This syscall appeared in 2.6.27 2012-04-16 21:22:02 +00:00
conf Add to GEOM RAID class module for reading non-degraded RAID5 volumes and 2012-04-19 12:30:12 +00:00
contrib Fix VIMAGE build. 2012-04-05 04:41:06 +00:00
crypto Add support for the extended FPU states on amd64, both for native 2012-01-21 17:45:27 +00:00
ddb Update the ddb and gdb backends for the new 'trace_thread' hook. 2012-04-12 21:34:58 +00:00
dev Stop using the hardware register value byte order swapping for now, 2012-04-19 03:26:21 +00:00
fs This change creates a new list of active vnodes associated with 2012-04-20 06:50:44 +00:00
gdb Update the ddb and gdb backends for the new 'trace_thread' hook. 2012-04-12 21:34:58 +00:00
geom Add to GEOM RAID class module for reading non-degraded RAID5 volumes and 2012-04-19 12:30:12 +00:00
gnu/fs Make ReiserFS MPSAFE 2012-03-27 20:36:03 +00:00
i386 Regen for r234359. 2012-04-16 23:17:29 +00:00
ia64 Remove pty(4) from our kernel configurations. 2012-03-21 08:38:42 +00:00
isa - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
kern This update uses the MNT_VNODE_FOREACH_ACTIVE interface that loops 2012-04-20 07:00:28 +00:00
kgssapi
libkern Remove second consts in r233288 in order to appease C++ compilers. 2012-03-26 18:22:04 +00:00
mips Style(9) and white space fixes. 2012-04-17 01:34:49 +00:00
modules Fix build. 2012-04-20 04:40:39 +00:00
net Remove KASSERTS, they do not add any value here since the pointer is about to 2012-04-18 01:39:14 +00:00
net80211 Migrate the net80211 TX aggregation state to be from per-AC to per-TID. 2012-04-15 20:29:39 +00:00
netatalk Fix typos 2012-02-28 15:07:05 +00:00
netgraph #include <net/vnet.h> is no longer needed here. 2012-04-16 13:41:46 +00:00
netinet Whitespace changes. 2012-04-19 15:30:15 +00:00
netinet6 in6_pcblookup_local() still can return a pcb with NULL 2012-03-21 08:43:38 +00:00
netipsec Add multi-FIB IPv6 support to the core network stack supplementing 2012-02-03 13:08:44 +00:00
netipx Convert all users of IF_ADDR_LOCK to use new locking macros that specify 2012-01-05 19:00:36 +00:00
netnatm
netncp
netsmb Add unicode support to msdosfs and smbfs; original pathes from imura, 2011-11-18 03:05:20 +00:00
nfs Add multi-FIB IPv6 support to the core network stack supplementing 2012-02-03 13:08:44 +00:00
nfsclient Replace the MNT_VNODE_FOREACH interface with MNT_VNODE_FOREACH_ALL. 2012-04-17 16:28:22 +00:00
nfsserver Honor NFSv3 commit call (RFC 1813, Section 3.3.21) where when count is 0, 2011-12-15 02:26:53 +00:00
nlm jwd@ reported a problem via email to freebsd-fs@ on Aug 25, 2011 2012-01-31 02:11:05 +00:00
ofed Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
opencrypto
pc98 Move the legacy(4) driver to x86. 2012-03-30 19:10:14 +00:00
pci intpm: add ATI IXP400 pci id 2012-04-16 10:33:46 +00:00
powerpc We don't need kcopy() in any of the remaining places it is used, so 2012-04-11 22:23:50 +00:00
rpc
security When allocation of labels on files is implicitly disabled due to MAC 2012-04-08 11:01:49 +00:00
sparc64 Turn on PREEMPTION by default. After fixing several bugs over time, the 2012-04-16 18:29:07 +00:00
sys This change creates a new list of active vnodes associated with 2012-04-20 06:50:44 +00:00
teken
tools Make vnode_if.awk parse vnode operations with underscores, like VOP_FOO_BAR. 2012-02-21 19:35:59 +00:00
ufs This update uses the MNT_VNODE_FOREACH_ACTIVE interface that loops 2012-04-20 07:00:28 +00:00
vm - Introduce a cache-miss optimization for consistency with other 2012-04-09 17:05:18 +00:00
x86 Add x2apic MSR definitions 2012-04-17 00:54:38 +00:00
xdr
xen blkif interface comment cleanups. No functional changes 2012-02-29 17:47:01 +00:00
Makefile Add sys/ofed to the 'make cscope' target. 2012-03-20 18:05:15 +00:00