Re: [PATCH RFC] kthread: Unify kernel_thread() and user_mode_thread()

From: Eric W. Biederman
Date: Wed May 10 2023 - 11:45:24 EST

Huacai Chen <chenhuacai@xxxxxxxxxxx> writes:

> Commit 343f4c49f2438d8 ("kthread: Don't allocate kthread_struct for init
> and umh") introduces a new function user_mode_thread() for init and umh.
> But the name is a bit confusing because init and umh are indeed kernel
> threads at creation time, the real difference is "they will become user
> processes".

No they are not "kernel threads" at creation time. At creation time
init and umh are threads running in the kernel.

It is a very important distinction and you are loosing it.

Because they don't have a kthread_struct such tasks in the kernel
are not allowed to depend on anything that is ``kthread''.

Having this a separate function highlights the distinction.
Highlighting should hopefully cause people to ask why there is a
distinction, and what is going on.

> So let's unify the kernel_thread() and user_mode_thread() to
> kernel_thread() again, and add a new 'user' parameter for init and
> umh

Now that is confusing.