isolcpus

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
michas
Beiträge: 380
Registriert: 12.08.2002 20:35:09
Wohnort: München

isolcpus

Beitrag von michas » 01.09.2010 19:23:20

Hallo,

Laut Kerneldoku (Documentation/kernel-parameters.txt) sollte der Linux-Kernel die Option isolcpus kennen.
Diese solle (so ich alles richtig verstanden habe) dafür sorgen, dass der Scheduler auf den angegebenen Prozessoren keine Prozesse mehr laufen lässt.
Das hat den Vorteil, dass ich auf diesen z.B. per taskset(1) einen Prozess starten kann, der den Prozessor/Kern ganz für sich alleine hat.

Leider scheint mein Kernel hier diese Option irgendwie komplett zu ignorieren: /proc/cmdline enthält z.B. "isolcpus=0" aber laut "ps -eo pid,psr" laufen die Prozesse immer noch quer über alle Prozessoren verteilt. :(
(Auch dmesg gibt keinen Anhaltspunkt dafür, dass er die Option bearbeitet hat.)

Kann jemand dieses Verhalten bestätigen?
Wo könnte mein Denkfehler liegen? (Kann es sein dass die initrd oder so dazwischenfunkt?)
Sonstige Ideen? (Laut google gibt es Leute die sowas tatsächlich erfolgreich nutzen.)

verzweifelte Grüße
michas

Benutzeravatar
michas
Beiträge: 380
Registriert: 12.08.2002 20:35:09
Wohnort: München

Re: isolcpus

Beitrag von michas » 01.09.2010 21:07:26

Ah, ich glaub jetzt hab ich 's.

Das richtige Stichwort für dmesg ist natürlich nicht iso* oder proc* sondern einfach CPU.
Demnach packt er (wie erwartet) alle Prozessoren außer den angegebenen in eine scheduling-domain.

"Echte" Prozesse startet er danach also nur auf denen. - Allerdings hat der Kernel selbst noch diverse Prozesse, die er wohl trotzdem auf allen vorhanden Prozessoren startet.
Ich vermute mal, dass diese wohl auch irgendwie nötig sind. - Damit sollte jetzt hoffentlich alles so laufen wie ich mir das vorgestellt habe. :)

Antworten