freebsd kernel with SKQ
Go to file
chuck 5893398a7a bhyve: add locks around NVMe queue accesses
The NVMe code attempted to ensure thread safety through a combination of
using atomics and a "busy" flag. But this approach leads to unavoidable
race conditions.

Fix is to use per-queue mutex locks to ensure thread safety within the
queue processing code. While in the neighborhood, move all the queue
initialization code to a common function.

Tested by:	Jason Tubnor
MFC after:	2 weeks
Differential Revision: https://reviews.freebsd.org/D19841
2020-06-29 00:31:24 +00:00
bin sh/tests: Re-enable bin.sh.execution.functional_test.bg12.0 2020-06-28 21:33:08 +00:00
cddl MFOpenZFS: Add basic zfs ioc input nvpair validation 2020-06-23 06:42:39 +00:00
contrib Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-06-28 07:43:43 +00:00
crypto Fix trailing-comma-related typos in the tree when the Xr macro is used 2020-06-27 11:13:45 +00:00
etc Restrict default /root permissions 2020-06-04 16:04:19 +00:00
gnu Remove now-unused GNU as build infrastructure 2020-06-07 13:53:23 +00:00
include Add pthread_getname_np() and pthread_setname_np() aliases for 2020-06-10 22:13:24 +00:00
kerberos5 Update Makefile.depend files 2019-12-11 17:37:53 +00:00
lib Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-06-28 07:43:43 +00:00
libexec Fix build with recent byacc. 2020-06-24 02:08:08 +00:00
release release: Fix arm GPT image 2020-06-10 14:10:48 +00:00
rescue rescue: Remove useless linking with libl 2020-03-24 07:08:02 +00:00
sbin ifconfig(8): optimize -f ether:dash mode 2020-06-26 16:20:34 +00:00
secure Revert OPENSSL_NO_SSL3_METHOD to keep ABI compatibility. 2020-06-25 19:35:37 +00:00
share Document that Intel Dual Band Wireless AC 8265 is supported by iwm(4) 2020-06-28 21:48:56 +00:00
stand loader: can not read zfs pool with slog removed 2020-06-26 21:21:35 +00:00
sys Fix UMA's first-touch policy on systems with empty domains. 2020-06-28 21:35:04 +00:00
targets Add WITH_CLANG_FORMAT option 2020-06-24 17:03:42 +00:00
tests Make sys.auditpipe depend on /dev/auditpipe. This fixes a few failures 2020-06-24 12:17:40 +00:00
tools Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-06-28 07:43:43 +00:00
usr.bin Fix llvm-strings.1 not installing, this was a copy/paste error. 2020-06-28 18:02:51 +00:00
usr.sbin bhyve: add locks around NVMe queue accesses 2020-06-29 00:31:24 +00:00
.arcconfig
.arclint
.cirrus.yml Cirrus-CI: increase timeout to 120m 2020-02-19 15:56:40 +00:00
.clang-format Clang-format: Avoid hardcoded LLVM include-order style 2020-06-24 23:22:36 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore .gitignore: Add LINT kernel configurations generated into SRCDIR 2019-08-10 18:22:22 +00:00
COPYRIGHT Happy New Year 2020! 2019-12-31 16:01:36 +00:00
LOCKS
MAINTAINERS Update bhyve maintainers. 2020-06-26 06:11:50 +00:00
Makefile Use universe-toolchain config(8) 2020-04-29 02:18:39 +00:00
Makefile.inc1 Add WITH_CLANG_FORMAT option 2020-06-24 17:03:42 +00:00
Makefile.libcompat Stop building libl and liby 2020-03-26 08:23:09 +00:00
Makefile.sys.inc
ObsoleteFiles.inc Remove older llvm-ranlib.1 entry from ObsoleteFiles.inc, as it has 2020-06-28 18:02:12 +00:00
README
README.md
RELNOTES Add an entry for r362158, r362163, which changes struct export_args. 2020-06-16 20:55:22 +00:00
UPDATING Add an entry for r362639. 2020-06-26 03:18:10 +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