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
..
2021-01-23 13:51:29 +00:00
2020-10-02 18:18:01 +00:00
2021-03-26 10:59:11 -04:00
2020-02-03 17:35:11 +00:00
2021-04-27 19:07:33 +02:00
2021-01-13 18:43:51 +01:00
2020-04-18 02:52:59 +00:00
2021-01-22 00:18:39 +01:00
2020-07-01 00:33:16 +00:00
2020-02-03 17:35:11 +00:00
2021-04-12 13:47:55 -06:00
2021-04-12 13:47:55 -06:00
2021-04-08 07:52:21 +00:00
2021-03-05 17:33:39 -08:00
2020-03-24 21:28:48 +00:00
2020-04-18 02:53:09 +00:00
2020-11-29 00:35:13 +00:00
2021-05-03 13:47:14 -04:00
2020-08-31 15:03:23 +00:00
2019-12-26 17:25:51 +00:00
2020-09-18 16:48:08 +00:00
2020-02-07 19:53:07 +00:00
2019-10-21 18:07:11 +00:00
2020-11-19 03:59:21 +00:00
2021-03-26 15:56:02 +00:00
2021-04-27 19:01:09 +02:00
2021-02-05 15:43:48 -03:00
2020-12-11 22:51:48 +00:00
2021-04-02 11:43:17 +03:00
2021-01-07 17:05:30 -07:00
2020-10-05 19:58:55 +00:00
2020-09-29 20:46:25 +00:00
2019-10-21 18:07:40 +00:00
2019-10-21 18:07:44 +00:00
2020-12-11 21:40:38 +00:00
2020-12-17 17:11:14 +00:00
2021-04-22 11:23:29 -06:00
2021-03-30 17:47:49 +02:00