From: Jens Axboe Date: Tue, 8 Dec 2015 15:56:30 +0000 (-0700) Subject: workqueue: add nice support X-Git-Tag: fio-2.2.13~27 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=f6496ba7d984b42602d2066837547eeb05b480f0;p=fio.git workqueue: add nice support Signed-off-by: Jens Axboe --- diff --git a/workqueue.c b/workqueue.c index 9fe7bec1..b9b09866 100644 --- a/workqueue.c +++ b/workqueue.c @@ -134,10 +134,19 @@ static void *worker_thread(void *data) { struct submit_worker *sw = data; struct workqueue *wq = sw->wq; - unsigned int eflags = 0, ret; + unsigned int eflags = 0, ret = 0; FLIST_HEAD(local_list); - ret = workqueue_init_worker(sw); + if (wq->ops.nice) { + if (nice(wq->ops.nice) < 0) { + log_err("workqueue: nice %s\n", strerror(errno)); + ret = 1; + } + } + + if (!ret) + ret = workqueue_init_worker(sw); + pthread_mutex_lock(&sw->lock); sw->flags |= SW_F_RUNNING; if (ret) diff --git a/workqueue.h b/workqueue.h index c2464b27..f732b308 100644 --- a/workqueue.h +++ b/workqueue.h @@ -40,6 +40,8 @@ struct workqueue_ops { workqueue_init_worker_fn *init_worker_fn; workqueue_exit_worker_fn *exit_worker_fn; + + unsigned int nice; }; struct workqueue {