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
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
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.
[Linux] [Kernelmodul] Erstellen Sie kthread im Kernelmodul --Qiita
linux/include/linux/kthread.h - Elixir - Free Electrons kthread_bind()/linux2.6 - LinuxKernelHackJapan
Recommended Posts