Re: [RFC PATCH 13/14] kthread_worker: Add set_kthread_worker_user_nice()
From: Petr Mladek <hidden>
Date: 2015-07-29 11:23:59
Also in:
linux-mm, lkml
From: Petr Mladek <hidden>
Date: 2015-07-29 11:23:59
Also in:
linux-mm, lkml
On Tue 2015-07-28 13:40:58, Tejun Heo wrote:
On Tue, Jul 28, 2015 at 04:39:30PM +0200, Petr Mladek wrote: ...quoted
+/* + * set_kthread_worker_user_nice - set scheduling priority for the kthread worker + * @worker: target kthread_worker + * @nice: niceness value + */ +void set_kthread_worker_user_nice(struct kthread_worker *worker, long nice) +{ + struct task_struct *task = worker->task; + + WARN_ON(!task); + set_user_nice(task, nice); +} +EXPORT_SYMBOL(set_kthread_worker_user_nice);kthread_worker is explcitly associated with a single kthread. Why do we want to create explicit wrappers for kthread operations? This is encapsulation for encapsulation's sake. It doesn't buy us anything at all. Just let the user access the associated kthread and operate on it.
My plan is to make the API cleaner and hide struct kthread_worker definition into kthread.c. It would prevent anyone doing any hacks with it. BTW, we do the same with struct workqueue_struct. Another possibility would be to add helper function to get the associated task struct but this might cause inconsistencies when the worker is restarted. Best Regards, Petr