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.
