[Linux] [Kernelmodul] Geben Sie die Ausführungs-CPU von kthread an / begrenzen Sie sie

Bezogen auf die folgenden Artikel. Ein Hinweis zum Begrenzen der CPU-Kerne, auf denen jeder kthread ausgeführt wird.

[Linux] [Kernelmodul] Erstellen Sie kthread im Kernelmodul --Qiita

Realisierungsmethode

Sie können void kthread_bind (struct task_struct * k, unsigned int cpu) verwenden.

kthread_bind()/linux2.6 - LinuxKernelHackJapan

Wenn Sie mehr als eine angeben, gibt es auch "kthread_bind_mask (2)", daher sollten Sie diese verwenden (nicht überprüft).

void kthread_bind_mask(struct task_struct *k, const struct cpumask *mask)

Anwendungsbeispiel

Anwendungsbeispiel


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);

Geben Sie die Task_struct- und CPU-Kernnummer an, die zum Zeitpunkt von kthread_run () erhalten wurde. Siehe / proc / cpuinfo usw. für den Status der CPU in der aktuellen Umgebung.

Beziehung

[Linux] [Kernelmodul] Erstellen Sie kthread im Kernelmodul --Qiita

Referenz

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

Recommended Posts

[Linux] [Kernelmodul] Geben Sie die Ausführungs-CPU von kthread an / begrenzen Sie sie
[Linux] [Kernelmodul] Erstellen Sie kthread im Kernelmodul
Testen Sie die Version des Argparse-Moduls
Probieren Sie den Linux-Kernel-Sperrmechanismus aus
Nimm das Ausführungsprotokoll von Sellerie
Über die Obergrenze von Threads-max
Hinweise zur Verwendung von KUnit, dem Unit-Test-Mechanismus des Linux-Kernels
[Verständnis in 3 Minuten] Der Beginn von Linux
Übergeben Sie den Pfad des importierten Python-Moduls
Erstellen Sie eine Ausführungsumgebung für Jupyter Lab
Überprüfen Sie den Pfad des importierten Python-Moduls
Verstehen Sie den "temporären" Teil von UNIX / Linux
[Linux] Lernen Sie die Grundlagen von Shell-Befehlen
Kompilieren des Linux-Kernels (Linux 5.x unter Ubuntu 20.04)