Re: [PATCH 1/9] sched/core: add is_kthread() helper

From: Geert Uytterhoeven
Date: Wed Aug 14 2019 - 07:26:57 EST


Hi Mark,

On Wed, Aug 14, 2019 at 12:43 PM Mark Rutland <mark.rutland@xxxxxxx> wrote:
> Code checking whether a task is a kthread isn't very consistent. Some
> code correctly tests task->flags & PF_THREAD, while other code checks
> task->mm (which can be true for a kthread which calls use_mm()).
>
> So that we can clean this up and keep the code easy to follow, let's add
> an obvious helper function to test whether a task is a kthread.
> Subsequent patches will use this as part of cleaning up and correcting
> open-coded tests.
>
> At the same time, let's fix up the kerneldoc for is_idle_task() for
> consistency with the new helper, using true/false rather than 0/1, given
> the functions return bool.
>
> Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>

Thanks for your patch!

> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1621,13 +1621,24 @@ extern struct task_struct *idle_task(int cpu);
> * is_idle_task - is the specified task an idle task?
> * @p: the task in question.
> *
> - * Return: 1 if @p is an idle task. 0 otherwise.
> + * Return: true if @p is an idle task, false otherwise.
> */
> static inline bool is_idle_task(const struct task_struct *p)
> {
> return !!(p->flags & PF_IDLE);
> }
>
> +/**
> + * is_kthread - is the specified task a kthread
> + * @p: the task in question.
> + *
> + * Return: true if @p is a kthread, false otherwise.
> + */
> +static inline bool is_kthread(const struct task_struct *p)
> +{
> + return !!(p->flags & PF_KTHREAD);

The !! is not really needed.
Probably you followed is_idle_task() above (where it's also not needed).

> +}
> +

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds