[Linux] [module du noyau] Spécifier / limiter le CPU d'exécution de kthread

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

Méthode de réalisation

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

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.

Relation

[Linux] [module noyau] Créer kthread dans le module noyau --Qiita

référence

linux/include/linux/kthread.h - Elixir - Free Electrons kthread_bind()/linux2.6 - LinuxKernelHackJapan

Recommended Posts

[Linux] [module du noyau] Spécifier / limiter le CPU d'exécution de kthread
[Linux] [module du noyau] Créer kthread dans le module du noyau
Tester la version du module argparse
Essayez le mécanisme de verrouillage du noyau Linux
Prenez le journal d'exécution du céleri
À propos de la limite supérieure de threads-max
Remarques sur l'utilisation de KUnit, le mécanisme de test unitaire du noyau Linux
[Comprendre en 3 minutes] Le début de Linux
Passez le chemin du module python importé
Créer un environnement d'exécution pour Jupyter Lab
Vérifiez le chemin du module importé Python
Comprendre la partie "temporaire" d'UNIX / Linux
[Linux] Découvrez les bases des commandes shell
Compilation du noyau Linux (Linux 5.x sur Ubuntu 20.04)