summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2016-04-08 10:00:07 +0000
committermav <mav@FreeBSD.org>2016-04-08 10:00:07 +0000
commitaec435c55ba7f73ef240a58e915af9bf4aea94d5 (patch)
tree8e56a45dbbcecd676046b0884a18debe7e483f18
parentdde534d3bd02be99a712ceaf8f926071d22a4d15 (diff)
downloadFreeBSD-src-aec435c55ba7f73ef240a58e915af9bf4aea94d5.zip
FreeBSD-src-aec435c55ba7f73ef240a58e915af9bf4aea94d5.tar.gz
MFC r266615: Increase taskqueue thread priority from idle to PRIBIO.
Idle priority is not even time-share, so if system is busy in any way, those events may never be executed. Since in some cases system waits for events processed by that thread, that may cause deadlocks.
-rw-r--r--sys/dev/mpr/mpr_sas.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/dev/mpr/mpr_sas.c b/sys/dev/mpr/mpr_sas.c
index 28870f6..eac3360 100644
--- a/sys/dev/mpr/mpr_sas.c
+++ b/sys/dev/mpr/mpr_sas.c
@@ -769,9 +769,7 @@ mpr_attach_sas(struct mpr_softc *sc)
TASK_INIT(&sassc->ev_task, 0, mprsas_firmware_event_work, sc);
sassc->ev_tq = taskqueue_create("mpr_taskq", M_NOWAIT | M_ZERO,
taskqueue_thread_enqueue, &sassc->ev_tq);
-
- /* Run the task queue with lowest priority */
- taskqueue_start_threads(&sassc->ev_tq, 1, 255, "%s taskq",
+ taskqueue_start_threads(&sassc->ev_tq, 1, PRIBIO, "%s taskq",
device_get_nameunit(sc->mpr_dev));
mpr_lock(sc);
OpenPOWER on IntegriCloud