freebsd-dev/sys
Andriy Gapon 12588ce02d PCI hot-plug: use dedicated taskqueue for device attach / detach
Attaching and detaching devices can be heavy-weight and detaching can
sleep waiting for events.  For that reason using the system-wide
single-threaded taskqueue_thread is not really appropriate.
There is even a possibility for a deadlock if taskqueue_thread is used
for detaching.

In fact, there is an easy to reproduce deadlock involving nvme, pass
and a sudden removal of an NVMe device.
A pass peripheral would not release a reference on an nvme sim until
pass_shutdown_kqueue() is executed via taskqueue_thread.  But the
taskqueue's thread is blocked in nvme_detach() -> ... -> cam_sim_free()
because of the outstanding reference.

MFC after:	10 days
Sponsored by:	CyberSecure
Reviewed by:	mav, imp
Differential Revision:	https://reviews.freebsd.org/D30144
2021-05-06 21:49:37 +03:00
..
amd64 linux(4): make arch_prctl(2) support GET_CET_STATUS, report unknown codes 2021-05-06 09:33:42 +01:00
arm Also enable IPIs on 32-bit arm 2021-05-03 08:36:57 +00:00
arm64 Enable IPIs on CPU 0 on arm and arm64 2021-05-02 07:43:34 +00:00
bsm
cam cam: Add doxygen docs to cam_sim_alloc 2021-05-05 11:44:39 -06:00
cddl fbt: Remove some handling for multiple CTF containers 2021-04-02 17:49:13 -04:00
compat linux: remove redundant SDT tracepoints 2021-05-05 13:59:00 +01:00
conf riscv: Remove old qemu compatibility code 2021-04-27 16:22:04 -05:00
contrib zfs: restore copyright disclaimer change from 4b84b4cca 2021-04-26 22:16:50 +02:00
crypto ossl: Don't encryt/decrypt too much data for chacha20. 2021-04-01 15:49:07 -07:00
ddb fix style nit: space after if 2021-05-05 15:26:09 -06:00
dev PCI hot-plug: use dedicated taskqueue for device attach / detach 2021-05-06 21:49:37 +03:00
dts dts: Bump the freebsd branding version to 5.10 2021-03-23 15:02:21 +01:00
fs nfsclient: Copy only initialized fields in nfs_getattr() 2021-05-04 08:53:57 -04:00
gdb gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
geom gmultipath: make physpath distinct from the underlying providers' 2021-05-06 12:32:27 -06:00
gnu
i386 Create VM_MEMATTR_DEVICE on all architectures 2021-04-12 06:15:31 +00:00
isa Remove more remnants of sio(4) 2021-04-07 14:33:02 -04:00
kern realloc: Fix KASAN(9) shadow map updates 2021-05-05 17:12:51 -04:00
kgssapi
libkern Use '.arch_extension crc' in the arm64 crc32 code 2021-05-06 07:42:35 +00:00
mips OCF: Remove support for asymmetric cryptographic operations. 2021-04-12 14:28:43 -07:00
modules Introduce DXR as an IPv4 longest prefix matching / FIB module 2021-05-05 13:45:52 +02:00
net Group all compat shim structures together to consolidate #ifdef's. 2021-05-05 13:59:09 -07:00
net80211 net80211: prefix get_random_bytes() with net80211_ 2021-03-24 22:16:09 +00:00
netgraph netgraph/ng_bridge: learn MACs via control message 2021-05-04 22:14:59 +02:00
netinet tcp_twcheck(): use correct unlock macro. 2021-05-06 10:19:21 -07:00
netinet6 Add missing sockaddr length and family validation to various protocols 2021-05-03 13:35:19 -04:00
netipsec Add missing sockaddr length and family validation to various protocols 2021-05-03 13:35:19 -04:00
netpfil pf: Fix IP checksum on reassembly 2021-04-30 08:19:46 +02:00
netsmb
nfs Fix panic when using BOOTP to resolve root path. 2021-03-28 14:02:40 -05:00
nfsclient nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsserver nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nlm
ofed Add missing sockaddr length and family validation to various protocols 2021-05-03 13:35:19 -04:00
opencrypto OCF: Remove support for asymmetric cryptographic operations. 2021-04-12 14:28:43 -07:00
powerpc powerpc64: Split out DMAP and non-DMAP implementations of some methods 2021-05-05 20:57:33 -05:00
riscv riscv: Remove old qemu compatibility code 2021-04-27 16:22:04 -05:00
rpc nfsd: fix a NFSv4.1 Linux client mount stuck in CLOSE_WAIT 2021-04-27 15:32:35 -07:00
security tcp_input/syncache: acquire only read lock on PCB for SYN,!ACK packets 2021-04-12 08:25:31 -07:00
sys param.h: Fix typos 2021-05-05 00:50:35 -06:00
teken
tests Revise FIB lookups per second benchmarking routines. 2021-05-05 12:28:17 +02:00
tools newbus: remove support for SINGLETON 2021-04-26 11:41:08 -06:00
ufs b_vflags update requries bufobj lock 2021-04-15 15:47:42 +03:00
vm realloc: Fix KASAN(9) shadow map updates 2021-05-05 17:12:51 -04:00
x86 Wait longer for a previous IPI to be sent 2021-04-30 13:32:29 -05:00
xdr
xen xen: move x86-specific xen_vector_callback_enabled to sys/x86 2021-03-15 14:20:21 +01:00
Makefile