freebsd-dev/sys/ufs/ffs
Mateusz Guzik 31ad4050fe lockmgr: add adaptive spinning
It is very conservative. Only spinning when LK_ADAPTIVE is passed, only on
exclusive lock and never when any waiters are present. buffer cache is remains
not spinning.

This reduces total sleep times during buildworld etc., but it does not shorten
total real time (culprits are contention in the vm subsystem along with slock +
upgrade which is not covered).

For microbenchmarks: open3_processes -t 52 (open/close of the same file for
writing) ops/s:
before: 258845
after: 801638

Reviewed by:	kib
Tested by:	pho
Differential Revision:	https://reviews.freebsd.org/D25753
2020-07-22 12:30:31 +00:00
..
ffs_alloc.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
ffs_balloc.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
ffs_extern.h Move all of the functions in ffs_subr.c that are only used by the ufs kernel 2020-06-17 23:39:52 +00:00
ffs_inode.c Clear the IN_SIZEMOD and IN_IBLKDATA flags only when doing a 2020-06-06 20:17:56 +00:00
ffs_rawread.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
ffs_snapshot.c Move the pointers stored in the superblock into a separate 2020-06-19 01:02:53 +00:00
ffs_softdep.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
ffs_subr.c The binary representation of the superblock (the fs structure) is written 2020-06-19 01:04:25 +00:00
ffs_suspend.c Use the devfs vnode rather than the mntfs vnode for permissions checks. 2020-03-09 15:55:13 +00:00
ffs_tables.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ffs_vfsops.c The binary representation of the superblock (the fs structure) is written 2020-06-19 01:04:25 +00:00
ffs_vnops.c lockmgr: add adaptive spinning 2020-07-22 12:30:31 +00:00
fs.h Move the pointers stored in the superblock into a separate 2020-06-19 01:02:53 +00:00
softdep.h This commit enables a UFS filesystem to do a forcible unmount when 2020-05-25 23:47:31 +00:00