Lié aux articles suivants. Une note sur la façon de limiter les cœurs de processeur sur lesquels chaque kthread s'exécute.
[Linux] [module noyau] Créer kthread dans le module noyau --Qiita
Vous pouvez utiliser void kthread_bind (struct task_struct * k, unsigned int cpu)
.
kthread_bind()/linux2.6 - LinuxKernelHackJapan
Si vous en spécifiez plus d'un, il y a aussi kthread_bind_mask (2)
, vous devriez donc l'utiliser (non vérifié).
void kthread_bind_mask(struct task_struct *k, const struct cpumask *mask)
Exemple d'utilisation
struct task_struct *k0;
struct task_struct *k1;
k0 = kthread_run(kthread_func0, NULL, "task0");
k1 = kthread_run(kthread_func1, NULL, "task1");
kthread_bind(k0, 0);
kthread_bind(k1, 1);
Spécifiez le task_struct et le nombre de cpu core obtenus au moment de kthread_run ()
.
Voir / proc / cpuinfo
etc. pour le statut du processeur dans l'environnement actuel.
[Linux] [module noyau] Créer kthread dans le module noyau --Qiita
linux/include/linux/kthread.h - Elixir - Free Electrons kthread_bind()/linux2.6 - LinuxKernelHackJapan
Recommended Posts