On Fri, 25 Apr 2025 16:41:20 -0400 Steven Rostedt <[email protected]> wrote:

> While working on the deferred stacktrace code, Peter Zijlstra told
> me to use task->flags & PF_KTHREAD instead of checking task->mm for NULL.
> This seemed reasonable, but while working on it, as there were several
> places that check if the task is a kernel thread and other places that
> check if the task is a user space thread I found it a bit confusing
> when looking at both:
> 
>       if (task->flags & PF_KTHREAD)
> and
>       if (!(task->flags & PF_KTHREAD))
> 
> Where I mixed them up sometimes, and checked for a user space thread when I
> really wanted to check for a kernel thread. I found these mistakes before
> sending out my patches, but going back and reviewing the code, I always had
> to stop and spend a few unnecessary seconds making sure the check was
> testing that flag correctly.
> 
> To make this a bit more obvious, I introduced two helper functions:
> 
>       is_user_thread(task)
>       is_kernel_thread(task)
> 
> which simply test the flag for you. Thus, seeing:
> 
>       if (is_user_thread(task))
> or
>       if (is_kernel_thread(task))
> 
> it was very obvious to which test you wanted to make.

Seems sensible.  Please consider renaming PF_KTHREAD in order to break
missed conversion sites.


Reply via email to