freebsd with flexible iflib nic queues
Go to file
Konstantin Belousov 64b494a105 softdep_prelink(): only do sync if other thread changed the vnode metadata since previous prelink
We call into softdep_prerename() and softdep_prelink() when there is
low free space in the journal. Functions sync all vnodes participating
in the VOP, in the hope that this would reduce journal utilization. But
if the vnodes are already synced, doing sync would only spend writes,
journal is filled not due to the records from modifications of our
vnodes.

Remember original seqc numbers for vnodes, and only initiate syncs when
seqc changed.

Reviewed by:	mckusick
Discussed with:	markj
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Differential revision:	https://reviews.freebsd.org/D30041
2021-06-23 23:46:54 +03:00
.cirrus-ci Cirrus-CI: retry pkg installation on failure 2021-06-02 22:41:20 -04:00
.github [skip ci] volunteer to maintain POSIX AIO 2021-05-30 17:21:12 -06:00
bin pkgbase: Put chio in utilities 2021-06-19 17:49:44 +02:00
cddl pkgbase: Put dtrace in its own package 2021-06-19 17:49:31 +02:00
contrib Disable llvm generating 128-bit multiply libcalls on 32-bit ARM 2021-06-22 22:26:13 +02:00
crypto kerberos.8: Replace dead link 2021-05-16 01:37:09 -04:00
etc Merge llvm-project 12.0.1 rc2 2021-06-19 20:09:28 +02:00
gnu dialog: fix macro redefinition 2021-03-01 16:01:44 +01:00
include Reduce code duplication in machine/_types.h 2021-06-14 16:30:16 +01:00
kerberos5 kerberos5: fix the WITH_OPENLDAP build 2021-01-30 00:07:50 -06:00
lib Fix failures in libm's lround_test after clang 12 import 2021-06-22 18:38:45 +02:00
libexec rtld-elf: Check the return value of obj_enforce_relro() 2021-06-22 09:10:48 +01:00
release EC2: Tell gptboot to skip its 3 second wait 2021-06-21 15:37:15 -07:00
rescue ping: add a ping6 hard link for backwards compatibility 2020-11-26 18:33:04 +00:00
sbin devctl: add ADDR_ADD and ADDR_DEL devctl event for IFNET 2021-06-23 10:26:56 -06:00
secure secure/caroot, certctl: Rename secure/caroot/blacklisted 2021-06-18 13:38:07 +01:00
share newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf 2021-06-22 20:52:06 -06:00
stand loader: Use tslog to instrument some functions 2021-06-20 20:09:48 -07:00
sys softdep_prelink(): only do sync if other thread changed the vnode metadata since previous prelink 2021-06-23 23:46:54 +03:00
targets Remove svnlite. 2021-06-11 14:56:41 -07:00
tests fusefs: ensure that FUSE ops' headers' unique values are actually unique 2021-06-19 14:45:29 -06:00
tools Merge llvm-project 12.0.1 rc2 2021-06-19 20:09:28 +02:00
usr.bin mkimg: Add fat32lba partition type 2021-06-21 21:04:58 -04:00
usr.sbin rpc.lockd: Use libc strnlen() instead of reimplementing it 2021-06-23 10:06:57 -04:00
.arcconfig Remove history.immutable from .arcconfig 2021-04-13 12:36:25 +01:00
.arclint arc lint: ignore /tests/ in chmod 2017-12-19 03:38:06 +00:00
.cirrus.yml Cirrus-CI: Use the default Git history depth 2021-06-07 18:50:18 -04:00
.clang-format clang-format: Avoid breaking after the opening paren of function definitions 2020-10-28 11:54:00 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore gitignore: Add .clangd and .ccls-cache 2021-06-04 16:56:08 +08:00
COPYRIGHT copyrights: Happy New Year 2021 2020-12-31 10:29:44 -05:00
LOCKS LOCKS: update current locks 2018-06-09 03:08:04 +00:00
MAINTAINERS [skip ci] volunteer to maintain POSIX AIO 2021-05-30 17:21:12 -06:00
Makefile Remove 'make update'. 2021-06-11 14:56:28 -07:00
Makefile.inc1 Remove svnlite. 2021-06-11 14:56:41 -07:00
Makefile.libcompat libpmc: always generate libpmc_events.c 2021-05-31 17:39:05 -03:00
Makefile.sys.inc AUTO_OBJ: For all top-level targets enforce using an OBJDIR. 2017-12-05 21:29:47 +00:00
ObsoleteFiles.inc Merge llvm-project 12.0.1 rc2 2021-06-19 20:09:28 +02:00
README.md Whitespace cleanup 2021-03-12 19:57:58 +08:00
RELNOTES relnotes: fix wording for gconcat entry. 2021-06-14 17:52:59 -06:00
UPDATING UPDATING: Fix typo 2021-06-22 08:47:27 -06:00

FreeBSD Source:

This is the top level of the FreeBSD source directory.

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), FreeBSD handbook on building userland, and Handbook for kernels for more information, including setting make(1) variables.

Source Roadmap:

Directory Description
bin System/user commands.
cddl Various commands and libraries under the Common Development and Distribution License.
contrib Packages contributed by 3rd parties.
crypto Cryptography stuff (see crypto/README).
etc Template files for /etc.
gnu Various commands and libraries under the GNU Public License. Please see gnu/COPYING and gnu/COPYING.LIB for more information.
include System include files.
kerberos5 Kerberos5 (Heimdal) package.
lib System libraries.
libexec System daemons.
release Release building Makefile & associated tools.
rescue Build system for statically linked /rescue utilities.
sbin System commands.
secure Cryptographic libraries and commands.
share Shared resources.
stand Boot loader sources.
sys Kernel sources.
sys/arch/conf Kernel configuration files. GENERIC is the configuration used in release builds. NOTES contains documentation of all possible entries.
tests Regression tests which can be run by Kyua. See tests/README for additional information.
tools Utilities for regression testing and miscellaneous tasks.
usr.bin User commands.
usr.sbin System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see FreeBSD Handbook.