1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-02 12:20:51 +00:00
freebsd/sys/cddl
Pawel Jakub Dawidek ea478cb1da The whole point of having dedicated worker thread for each leaf VDEV was to
avoid calling zio_interrupt() from geom_up thread context. It turns out that
when provider is forcibly removed from the system and we kill worker thread
there can still be some ZIOs pending. To complete pending ZIOs when there is
no worker thread anymore we still have to call zio_interrupt() from geom_up
context. To avoid this race just remove use of worker threads altogether.
This should be more or less fine, because I also thought that zio_interrupt()
does more work, but it only makes small UMA allocation with M_WAITOK.
It also saves one context switch per I/O request.

PR:		kern/145339
Reported by:	Alex Bakhtin <Alex.Bakhtin@gmail.com>
MFC after:	1 week
2010-05-16 11:56:42 +00:00
..
boot/zfs Import OpenSolaris revision 7837:001de5627df3 2010-05-13 20:32:56 +00:00
compat/opensolaris Import OpenSolaris revision 7837:001de5627df3 2010-05-13 20:32:56 +00:00
contrib/opensolaris The whole point of having dedicated worker thread for each leaf VDEV was to 2010-05-16 11:56:42 +00:00
dev Rename the cyclic global variable lapic_cyclic_clock_func to just 2010-04-20 17:03:30 +00:00