From f6496ba7d984b42602d2066837547eeb05b480f0 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 8 Dec 2015 08:56:30 -0700 Subject: [PATCH 1/1] workqueue: add nice support Signed-off-by: Jens Axboe --- workqueue.c | 13 +++++++++++-- workqueue.h | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) 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 { -- 2.25.1