FreeBSD src
Go to file
Andriy Gapon 862c20fd89 MFV r350898, r351075: 8423 8199 7432 Implement large_dnode pool feature
8423 8199 7432 Implement large_dnode pool feature

7432 Large dnode pool feature
8199 multi-threaded dmu_object_alloc()
8423 Implement large_dnode pool feature
10406 large_dnode changes broke zfs recv of legacy stream

llumos/illumos-gate@54811da5ac
54811da5ac
https://www.illumos.org/issues/8423
https://www.illumos.org/issues/8199
https://www.illumos.org/issues/7432

illumos/illumos-gate@811964cd9f
811964cd9f
https://www.illumos.org/issues/10406

  ZoL issues:
  Improved dnode allocation #6564
  Clean up large dnode code #6262
  Fix dnode_hold() freeing dnode behavior #8172
  Fix dnode allocation race #6414, #6439
  Partial: Raw sends must be able to decrease nlevels #6821, #6864
  Remove unnecessary txg syncs from receive_object() Closes #7197

This updates FreeBSD large_dnode code (that was imported from ZoL) to a
version that was committed to illumos.  It has some cleanups,
improvements and fixes comparing to what we have in FreeBSD now.
I think that the most significant update is 8199 multi-threaded
dmu_object_alloc().

This commit reverts r351077 that was a revert of r351074 and r351076 and
restores those changes.  Required atomic operations should be available
now on all platforms where we build ZFS.

Obtained from:	illumos
MFC after:	3 weeks
2019-10-07 08:14:45 +00:00
bin Add iflag=fullblock to dd 2019-09-30 22:00:48 +00:00
cddl MFV r350898, r351075: 8423 8199 7432 Implement large_dnode pool feature 2019-10-07 08:14:45 +00:00
contrib Pull in r357528 from upstream llvm trunk (by Craig Topper): 2019-09-30 19:24:21 +00:00
crypto Merge OpenSSL 1.1.1d. 2019-09-10 21:08:17 +00:00
etc [1/3] Initial infrastructure for SSL root bundle in base 2019-10-02 01:05:29 +00:00
gnu Get the readline header from the installed header instead of the from the source 2019-09-12 15:50:14 +00:00
include Import DTS files from Linux 5.3 2019-09-28 22:38:14 +00:00
kerberos5 Fix generation of krb5-config with LC_CTYPE=*.UTF-8 2019-07-01 11:47:45 +00:00
lib Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around 2019-10-06 04:19:49 +00:00
libexec Add rcvar back to the linux rc script. Without it it was enabled 2019-10-03 16:38:44 +00:00
release Switch EC2 AMIs from using the dual-dhclient script to using the new 2019-10-02 21:35:39 +00:00
rescue Remove unused defines since r147075 2019-07-12 04:44:50 +00:00
sbin add ability to set watchdog timeout for a shutdown 2019-10-03 11:23:10 +00:00
secure caroot: commit initial bundle 2019-10-04 02:34:20 +00:00
share Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around 2019-10-06 04:19:49 +00:00
stand Revert r352557: powerpc/loader: Install ubldr without stripping 2019-10-07 03:28:11 +00:00
sys MFV r350898, r351075: 8423 8199 7432 Implement large_dnode pool feature 2019-10-07 08:14:45 +00:00
targets - Retire pc-sysinstall(8) 2019-09-03 19:42:04 +00:00
tests ZFS: fix several of the "zpool create" tests 2019-10-05 03:19:53 +00:00
tools Mark "private use area" characters as printable. 2019-10-05 22:17:54 +00:00
usr.bin tftp: fix two minor Coverity CIDs 2019-10-03 20:22:25 +00:00
usr.sbin certctl(8): let one blacklist based on hashed filenames 2019-10-03 20:45:52 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint arc lint: ignore /tests/ in chmod 2017-12-19 03:38:06 +00:00
.cirrus.yml cirrus.yml: stop fetching OVMF.fd now that we're using the pkg 2019-07-30 16:40:33 +00:00
.clang-format Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore Import DTS from Linux 5.2 2019-09-28 22:35:29 +00:00
COPYRIGHT Happy New Year 2019! 2019-01-01 00:25:25 +00:00
LOCKS LOCKS: update current locks 2018-06-09 03:08:04 +00:00
MAINTAINERS [skip ci] Add me to MAINTAINERS for fusefs 2019-07-28 15:20:47 +00:00
Makefile Add a top-level makeman target 2019-10-01 15:10:35 +00:00
Makefile.inc1 Add a top-level makeman target 2019-10-01 15:10:35 +00:00
Makefile.libcompat libsysdecode: use the proper include directory 2019-07-25 17:10:17 +00: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 ZFS: fix several of the "zpool create" tests 2019-10-05 03:19:53 +00:00
README Import OpenSSL 1.1.1d. 2019-09-10 17:40:53 +00:00
README.md README: add generic notes about GENERIC and NOTES 2018-06-17 19:44:24 +00:00
RELNOTES RELNOTES: Document r352668 (crontab -n and -q options) 2019-09-25 13:04:34 +00:00
UPDATING Remove white-space at EOL. 2019-10-03 14:52:25 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

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), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.

Source Roadmap:

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* 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:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html