kthreadd - это демон ядра, он запускается во время загрузки ядра.
init/main.c ---> kernel_thread(kthreadd,...)
(architecture dependent code for e.g arch/arm/kernel/process.c)
Как вы можете видеть здесь, kernel_thread()
возвращает pid
.Начиная с pid
мы определяем task_struct
и присваиваем его kthreadd_task
.
Так что всякий раз, когда вызывается создание потока ядра, т.е. kthread_create()
, kthreadd_task
, который вызывает inturn kthreadd()
(определено в kernel/kthread.c
).