freebsd-dev/sys/sys
Thomas Munro f270658873 vfs: track sequential reads and writes separately
For software like PostgreSQL and SQLite that sometimes reads sequentially
while also writing sequentially some distance behind with interleaved
syscalls on the same fd, performance is better on UFS if we do
sequential access heuristics separately for reads and writes.

Patch originally by Andrew Gierth in 2008, updated and proposed by me with
his permission.

Reviewed by:	mjg, kib, tmunro
Approved by:	mjg (mentor)
Obtained from:	Andrew Gierth <andrew@tao11.riddles.org.uk>
Differential Revision:	https://reviews.freebsd.org/D25024
2020-06-21 08:51:24 +00:00
..
disk
_atomic64e.h [PowerPC] [MIPS] Implement 32-bit kernel emulation of atomic64 operations 2020-01-02 23:20:37 +00:00
_atomic_subword.h Expand generic subword atomic primitives 2020-03-25 23:12:43 +00:00
_bitset.h
_blockcount.h Add a blocking counter KPI. 2020-02-28 16:05:18 +00:00
_bus_dma.h
_callout.h Add a callout_func_t typedef for functions used with callout_*(). 2019-12-10 21:58:30 +00:00
_cpuset.h
_cscan_atomic.h Expand generic subword atomic primitives 2020-03-25 23:12:43 +00:00
_cscan_bus.h Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
_domainset.h
_eventhandler.h
_ffcounter.h
_iovec.h
_lock.h
_lockmgr.h
_mutex.h
_null.h
_pctrie.h
_pthreadtypes.h
_rangeset.h
_rmlock.h Add read-mostly sleepable locks 2019-12-27 11:19:57 +00:00
_rwlock.h
_semaphore.h
_sigset.h Fix undefined behavior: left-shifting into the sign bit. 2019-12-23 20:18:05 +00:00
_smr.h Move SMR pointer type definition and access macros to smr_types.h. 2020-03-07 00:55:46 +00:00
_sockaddr_storage.h
_stack.h
_stdarg.h
_stdint.h
_sx.h
_task.h Add flag to struct task to mark the task as requiring network epoch. 2020-02-11 18:48:07 +00:00
_termios.h
_timespec.h
_timeval.h
_types.h
_ucontext.h
_uio.h
_umtx.h
_unrhdr.h
aac_ioctl.h
abi_compat.h Centralize compatability translation macros. 2020-04-14 20:30:48 +00:00
acct.h
acl.h
agpio.h
aio.h
alq.h
apm.h
arb.h Add copyrights that I forgot to add when splitting arb.h off from tree.h. 2019-10-15 19:44:43 +00:00
assym.h
ata.h Remove duplicated ATA_CHECK_POWER_MODE 2020-02-28 01:02:01 +00:00
atomic_common.h Make atomic_load_ptr type-aware 2020-02-14 23:15:41 +00:00
auxv.h
bio.h Remove GEOM_SCHED class and gsched tool. 2019-12-29 21:16:03 +00:00
bitset.h Fix undefined behavior: left-shifting into the sign bit. 2019-12-23 20:18:05 +00:00
bitstring.h bistring: avoid gcc -Wsign-compare 2019-12-04 20:15:17 +00:00
blist.h
blockcount.h Handle PCATCH in blockcount_sleep() so it can be interrupted. 2020-04-21 17:13:06 +00:00
boot.h
buf_ring.h
buf.h This commit enables a UFS filesystem to do a forcible unmount when 2020-05-25 23:47:31 +00:00
bufobj.h Add a new "mntfs" pseudo file system which provides private device vnodes for 2020-03-06 18:41:37 +00:00
bus_dma_internal.h
bus_dma.h Add support for optional separate output buffers to in-kernel crypto. 2020-05-25 22:12:04 +00:00
bus.h Create new wrapper function: bus_delayed_attach_children() 2019-12-13 19:39:33 +00:00
busdma_bufalloc.h
callout.h Remove struct callout_handle. Should have gone with r355732. 2020-01-22 05:47:59 +00:00
caprights.h
capsicum.h Remove unused SYSINIT macros for capability rights. 2020-03-26 15:02:37 +00:00
cdefs.h gcc: quiet Wattribute for no_sanitize("address") 2019-12-21 02:43:20 +00:00
cdio.h
cdrio.h
cfictl.h
chio.h
ck.h
clock.h
cnv.h
compressor.h
condvar.h
conf.h Expose UID_xxx and GID_xxx definitions to userspace. 2020-06-16 02:31:22 +00:00
cons.h sys/kern: quiet -Wwrite-strings 2020-02-23 03:32:16 +00:00
consio.h Move font related data structured to sys/font.c and update vtfontcvt 2020-06-14 06:58:58 +00:00
copyright.h Happy New Year 2020! 2019-12-31 16:01:36 +00:00
counter.h Add COUNTER_U64_SYSINIT() and COUNTER_U64_DEFINE_EARLY(). 2020-03-06 19:09:01 +00:00
coverage.h
cpu.h cpufreq(4): Add support for Intel Speed Shift 2020-01-22 23:28:42 +00:00
cpuctl.h
cpuset.h bitset: rename confusing macro NAND to ANDNOT 2019-12-13 09:32:16 +00:00
csan.h Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
ctype.h
devicestat.h
devmap.h Generalize ARM specific comments in devmap 2019-10-15 23:21:52 +00:00
dirent.h
disk_zone.h
disk.h
disklabel.h
diskmbr.h
dkstat.h
dnv.h
domain.h Add fibnum, family and vnet pointer to each rib head. 2020-01-09 17:21:00 +00:00
domainset.h bitset: rename confusing macro NAND to ANDNOT 2019-12-13 09:32:16 +00:00
dtrace_bsd.h
dvdio.h
efi.h
efiio.h
elf32.h
elf64.h
elf_common.h Allow <sys/elf_common.h> to be used in assembly. 2020-06-12 23:43:44 +00:00
elf_generic.h
elf.h
endian.h
epoch.h Add flag to struct task to mark the task as requiring network epoch. 2020-02-11 18:48:07 +00:00
errno.h
eui64.h
event.h kevent32: fix the split of data into data1/data2 2020-04-21 16:13:22 +00:00
eventhandler.h Use an event handler to notify the SCTP about IP address changes 2019-10-13 18:17:08 +00:00
eventvar.h
exec.h Remove SPARE_USRSPACE. 2019-12-06 19:20:45 +00:00
extattr.h
fail.h Use callout(9) instead of deprecated timeout(9) for fail points. 2019-12-13 19:26:04 +00:00
fbio.h
fcntl.h Provide O_SEARCH 2020-02-02 16:34:57 +00:00
fdcio.h
file.h vfs: track sequential reads and writes separately 2020-06-21 08:51:24 +00:00
filedesc.h pwd: unbreak repeated calls to set_rootvnode 2020-04-27 13:54:00 +00:00
filio.h
firmware.h
fnv_hash.h
font.h Move font related data structured to sys/font.c and update vtfontcvt 2020-06-14 06:58:58 +00:00
gmon.h
gpio.h
gpt.h
gsb_crc32.h
gtaskqueue.h Remove the "config" taskqgroup and its KPIs. 2020-03-30 14:24:03 +00:00
hash.h
hhook.h
iconv.h
imgact_aout.h
imgact_binmisc.h
imgact_elf.h Introduce an AUXARGS_ENTRY_PTR() macro. 2020-04-15 20:19:59 +00:00
imgact.h Convert canary, execpathp, and pagesizes to pointers. 2020-04-16 21:53:17 +00:00
interrupt.h Enter the network epoch for interrupt handlers of INTR_TYPE_NET. 2020-01-23 01:24:47 +00:00
intr.h
ioccom.h
ioctl_compat.h
ioctl.h
iov_schema.h
iov.h
ipc.h
ipmi.h
jail.h ethersubr: Make the mac address generation more robust 2020-04-18 07:50:30 +00:00
joystick.h
kbio.h
kcov.h
kdb.h Fix handling of NMIs from unknown sources (BMC, hypervisor) 2020-04-26 00:41:29 +00:00
kenv.h
kern_prefetch.h
kernel.h Add COUNTER_U64_SYSINIT() and COUNTER_U64_DEFINE_EARLY(). 2020-03-06 19:09:01 +00:00
kerneldump.h
khelp.h
kobj.h
kpilite.h
ksem.h
kthread.h
ktls.h Step 2.1: Build TLS workqueue from mbufs, not struct mbuf_ext_pgs. 2020-05-02 23:38:13 +00:00
ktr_class.h Remove GEOM_SCHED class and gsched tool. 2019-12-29 21:16:03 +00:00
ktr.h
ktrace.h Annotate branches in the syscall path 2020-02-14 13:08:46 +00:00
libkern.h libkern: Add arc4random_uniform 2020-05-23 17:51:06 +00:00
limits.h
link_aout.h
link_elf.h Implement Solaris-like link_map l_refname member. 2020-05-22 17:52:09 +00:00
linker_set.h [PowerPC] Only move linker sets to .data on ELFv1 2019-12-19 22:35:16 +00:00
linker.h [PowerPC][Book-E] Fix missing load base in elf_cpu_parse_dynamic(). 2020-03-18 02:58:18 +00:00
lock_profile.h
lock.h Move MPASS() macros to systm.h. They are widely used all over 2020-06-08 17:40:39 +00:00
lockf.h Typo out->in. 2019-10-10 18:52:24 +00:00
lockmgr.h lockmgr: rename lock_fast_path to lock_flags 2020-02-14 11:21:28 +00:00
lockstat.h
loginclass.h
mac.h
malloc.h Add zfree to zero allocation before free 2020-02-16 00:12:53 +00:00
mbuf.h Add two functions that create M_EXTPG mbufs with anonymous pages. 2020-06-10 02:51:39 +00:00
mchain.h
md4.h
md5.h
mdioctl.h
memdesc.h
memrange.h
mman.h Jail and capability mode for shm_rename; add audit support for shm_rename 2019-11-18 13:31:16 +00:00
module_khelp.h
module.h
mount.h Oops, r362158 committed a duplicate definition of MAXSECFLAVORS. 2020-06-14 01:22:19 +00:00
mouse.h
mpt_ioctl.h
mqueue.h
msg.h
msgbuf.h
mtio.h
mutex.h
namei.h Provide O_SEARCH 2020-02-02 16:34:57 +00:00
nlist_aout.h
nv.h
osd.h
param.h Bump __FreeBSD_version after making liblzma to use libmd implementation 2020-06-20 21:32:14 +00:00
pciio.h
pcpu.h Dedup zpcpu assertions into one macro and guard the rest with #ifndef 2020-02-12 11:14:23 +00:00
pctrie.h
physmem.h Convert arm's physmem interface to MI code 2020-04-19 00:12:30 +00:00
pidctrl.h
pipe.h Preallocate pipe buffers on pipe creation. 2020-03-09 21:55:26 +00:00
pmc.h Add hwpmc support for Intel Atom Goldmont microarchitecture 2020-04-06 19:45:26 +00:00
pmckern.h
pmclog.h
poll.h
posix4.h
power.h
priority.h
priv.h vfs: add restrictions to read(2) of a directory [2/2] 2020-06-04 18:17:25 +00:00
proc.h cred: distribute reference count per thread 2020-06-09 23:03:48 +00:00
procctl.h Add procctl(PROC_STACKGAP_CTL) 2019-09-03 18:56:25 +00:00
procdesc.h
procfs.h
protosw.h Remove pfctlinput2(). It came from KAME and had never ever been in use. 2019-10-15 15:40:03 +00:00
ptio.h
ptrace.h
qmath.h Fix the compilation workaround so it's not entirely dead code - clang 2019-10-09 18:46:56 +00:00
queue.h Trim trailing white space in comment 2020-02-26 12:38:21 +00:00
racct.h
random.h Remove ubsec(4). 2020-05-11 20:30:28 +00:00
rangelock.h rangelock: add rangelock_cookie_assert 2019-09-15 02:59:53 +00:00
rangeset.h
rctl.h
reboot.h
refcount.h Remove an #include erroneously added in r358432. 2020-03-04 22:23:24 +00:00
regression.h
resource.h
resourcevar.h schedlock 1/4 2019-12-15 21:11:15 +00:00
rman.h
rmlock.h Add rms_try_rlock and rms_wowned. 2020-01-31 08:36:49 +00:00
rtprio.h
runq.h
rwlock.h
sbuf.h
sched.h SPDX: update some tags with two licenses. 2019-12-28 02:58:30 +00:00
sdt.h
select.h
selinfo.h
sem.h
sema.h
seqc.h seqc: tidy up 2020-03-08 00:22:32 +00:00
serial.h
sf_buf.h
sglist.h Step 2.2: 2020-05-02 23:46:29 +00:00
shm.h
sigio.h
signal.h Improve MD page fault handlers. 2019-09-27 18:43:36 +00:00
signalvar.h Return reschedule_signals() to being static again. 2020-03-10 20:04:38 +00:00
sleepqueue.h sleep(9), sleepqueue(9): const'ify wchan pointers 2019-12-24 16:19:33 +00:00
slicer.h
smp.h Add smp_rendezvous_cpus_retry 2020-02-12 11:16:55 +00:00
smr_types.h Move SMR pointer type definition and access macros to smr_types.h. 2020-03-07 00:55:46 +00:00
smr.h Move SMR pointer type definition and access macros to smr_types.h. 2020-03-07 00:55:46 +00:00
snoop.h
sockbuf.h sbappendcontrol() needs to avoid clearing M_NOTREADY on data mbufs. 2020-04-10 20:42:11 +00:00
socket.h HyperV socket implementation for FreeBSD 2020-05-20 11:03:59 +00:00
socketvar.h Fix ACCEPT_FILTER_DEFINE to pass the version to MODULE_VERSION. 2020-05-21 18:38:41 +00:00
sockio.h Add SIOCGIFDOWNREASON. 2019-09-17 18:49:13 +00:00
sockopt.h
soundcard.h
spigenio.h
stack.h Reimplement stack capture of running threads on i386 and amd64. 2020-01-31 15:43:33 +00:00
stat.h
stats.h Make use of the stats(3) framework in the TCP stack. 2019-12-02 20:58:04 +00:00
statvfs.h
stdatomic.h
stddef.h
stdint.h
sx.h
syscall.h Oops, missed syscall.h and sysproto.h for r361602. 2020-05-28 23:57:50 +00:00
syscall.mk Oops two, missed syscall.mk as well. 2020-05-29 00:10:19 +00:00
syscallsubr.h Add linux_madvise(2) instead of having Linux apps call the native 2020-06-20 18:29:22 +00:00
sysctl.h hw.bus.info: rework handler 2020-06-18 21:42:54 +00:00
sysent.h Extend support in sysctls for supporting multiple native ABIs. 2020-04-27 17:53:38 +00:00
syslimits.h Double the size of ARG_MAX on LP64 platforms. 2019-12-16 23:55:30 +00:00
syslog.h
sysproto.h Oops, missed syscall.h and sysproto.h for r361602. 2020-05-28 23:57:50 +00:00
systm.h Move MPASS() macros to systm.h. They are widely used all over 2020-06-08 17:40:39 +00:00
taskqueue.h Remove assertion from TASK_INIT() macro, since some users of 2020-02-11 20:59:41 +00:00
terminal.h
termios.h
thr.h
tiio.h
tim_filter.h This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control. This 2019-09-24 18:18:11 +00:00
time.h
timeb.h
timeet.h
timeffc.h
timepps.h
timers.h
times.h
timespec.h
timetc.h
timex.h
tree.h In concluding RB_REMOVE_COLOR, in the case when the sibling of the 2020-06-20 20:25:39 +00:00
tslog.h
tty.h tty: convert tty_lock_assert to tty_assert_locked to hide lock type 2020-04-17 18:34:49 +00:00
ttycom.h
ttydefaults.h
ttydevsw.h tty: convert tty_lock_assert to tty_assert_locked to hide lock type 2020-04-17 18:34:49 +00:00
ttydisc.h tty: convert tty_lock_assert to tty_assert_locked to hide lock type 2020-04-17 18:34:49 +00:00
ttyhook.h tty: convert tty_lock_assert to tty_assert_locked to hide lock type 2020-04-17 18:34:49 +00:00
ttyqueue.h
turnstile.h
types.h sys/types.h: adjust #endif comment to match reality 2020-04-15 04:03:46 +00:00
ucontext.h
ucred.h cred: distribute reference count per thread 2020-06-09 23:03:48 +00:00
uio.h Remove copyinfrom() and copyinstrfrom(). 2020-05-20 20:58:17 +00:00
umtx.h
un.h Make the path length of UNIX domain sockets specified by a #define. 2020-04-14 15:27:24 +00:00
unistd.h rfork(2): add RFSPAWN flag 2019-09-25 19:20:41 +00:00
unpcb.h Remove UNP_NASCENT, reverting r303855. 2020-03-20 16:17:54 +00:00
user.h sleep(9), sleepqueue(9): const'ify wchan pointers 2019-12-24 16:19:33 +00:00
utsname.h
uuid.h validate_uuid: absorb the rest of parse_uuid with a flags arg 2020-04-15 18:39:12 +00:00
vdso.h
vmem.h
vmmeter.h
vnode.h vfs: quiet -Wwrite-strings 2020-02-23 03:32:11 +00:00
vtoc.h
wait.h
watchdog.h