Wie den nice Level eines Kernemodul vorab festlegen ?
Wie den nice Level eines Kernemodul vorab festlegen ?
Hi, ich hab hier ein Modul welche ich per modprobe starte. Dessen Prozesspriorität setze ich nach dem Laden händisch per nice hoch. Frage: Wie kann ich vorab den nice level von Kernelmodulen festlegen? Um dies nicht nachträglich nach dem laden tun zu müssen.
Kernel Threads werden immer "hardcoded" mit nice -5 angelegt, sofern das nicht vom Modul überschrieben wird. Wenn du also den nice Wert von einem Kernel Thread beim Start ändern möchtest, und das Modul verfügt nicht über einen entprechenden Parameter, dann müßtest du das Modul patchen ( z.B einen set_user_nice Aufruf an entsprechender Stelle einfügen)
Gruß
gms
Gruß
gms
Ok, bei mir geht es konkret um die [mISDNStackd] Prozesse von mISDN. Diese würde ich gerne fest auf auf -15 setzen um die ISDN/Fax Verarbeitung zu bevorzugen, da die Maschine ein reiner Faxserver sein soll.
Ich hab daher einfach mal das genannte set_user_nice(current, -15); blind in die Funktion mISDNStackd in stacks.c (1) rein gesetzt, leider ohne Erfolg. Es compiliert zwar durch, aber ps x -lf zeigt die mISDNStackd Prozesse weiter auf nice level 0.
(1) http://git.misdn.org/?p=mISDN.git;a=blo ... b7;hb=HEAD
Ich hab daher einfach mal das genannte set_user_nice(current, -15); blind in die Funktion mISDNStackd in stacks.c (1) rein gesetzt, leider ohne Erfolg. Es compiliert zwar durch, aber ps x -lf zeigt die mISDNStackd Prozesse weiter auf nice level 0.
(1) http://git.misdn.org/?p=mISDN.git;a=blo ... b7;hb=HEAD
In dieser Funktion wird MAKEDAEMON("mISDNStackd"), hinter dem sich die Funktion "daemonize" in kernel/exit.c ( aus den Kernelsourcen ) verbirgt, aufgerufen, von dort gehts dann weiter in "reparent_to_kthreadd" und dort wird die nice-Value auf 0 gesetzt.wildzero hat geschrieben:Ich hab daher einfach mal das genannte set_user_nice(current, -15); blind in die Funktion mISDNStackd in stacks.c (1) rein gesetzt, leider ohne Erfolg. Es compiliert zwar durch, aber ps x -lf zeigt die mISDNStackd Prozesse weiter auf nice level 0.
Hast du das "set_user_nice" vor dem MAKEDAEMON oder nachher aufgerufen ?
Gruß
gms