Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [RFC patch V2 2/7] kthread: Implement park/unpark facility | Date | Mon, 18 Jun 2012 17:43:41 +0900 |
| |
On Fri, 15 Jun 2012 14:13:21 -0000, Thomas Gleixner wrote: > To avoid the full teardown/setup of per cpu kthreads in the case of > cpu hot(un)plug, provide a facility which allows to put the kthread > into a park position and unpark it when the cpu comes online again. >
Please see a comment below. Other than that, you can add my
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
if you want.
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > --- > include/linux/kthread.h | 11 ++ > kernel/kthread.c | 184 +++++++++++++++++++++++++++++++++++++++++++----- > 2 files changed, 175 insertions(+), 20 deletions(-) [snip] > /** > + * kthread_create_on_cpu - Create a cpu bound kthread > + * @threadfn: the function to run until signal_pending(current). > + * @data: data ptr for @threadfn. > + * @cpu: The cpu on which the thread should be bound, > + * @namefmt: printf-style name for the thread.
How about adding a comment that @namefmt can handle a single %u only for the cpu number in the current implementation?
Thanks, Namhyung
> + * > + * Description: This helper function creates and names a kernel thread > + * The thread will be woken and put into park mode. > + */ > +struct task_struct *kthread_create_on_cpu(int (*threadfn)(void *data), > + void *data, unsigned int cpu, > + const char *namefmt) > +{ > + struct task_struct *p; > + > + p = kthread_create_on_node(threadfn, data, cpu_to_node(cpu), namefmt, > + cpu); > + if (IS_ERR(p)) > + return p; > + set_bit(KTHREAD_IS_PER_CPU, &to_kthread(p)->flags); > + to_kthread(p)->cpu = cpu; > + /* Park the thread to get it out of TASK_UNINTERRUPTIBLE state */ > + kthread_park(p); > + return p; > +} > +
| |