Samstag, 26. Mai 2012, 06:30

Du bist nicht angemeldet.



kls

hat hier 2. Wohnsitz.

  • »kls« ist der Autor dieses Themas

Beiträge: 149

Ubuntu: 8.04

Kernel: UStudio 2.6.27-rt

Desktop: KDE

Architektur: 32-bit

  • Private Nachricht senden

1

Dienstag, 6. Februar 2007, 10:43

RT Process Scheduling?

Hallo Leute.

Ich habe einen RT-Kernel patch 2.6.19.1_rt15 nach basslords how2 und die entsprechenden Konfigurationen im /etc/security/rlimits.conf durchgeführt, um meinen Audioapplikationen den nötigen Schub zu verpassen.

meine rtlimits.conf (nach ALSA Empfehlung) sieht so aus:

@audio - rtprio 99
@audio - memlock 250000
@audio - nice -10

Frage: Wie kann nich nun feststellen, ob der jeweilige Process
die entsprechende Priorität hat?

Bei einem ps -ec wird mir für die jeweiligen Audio-Applikationen lediglich
eine Standad Prio von 26 o.ä. angegeben. Das verwundert mich doch erst einmal. Die IRQs usw. laufen allerdings auf 90.

Ich bin natuerlich selbst User der Gruppe audio. Auch als root ändert sich die angezeigte Scheduling Prio nicht.

Ich habe irgenwo glesen, dass die Apllikationen selbst auch mit einem RT
Flag kompiliert sein muessen. Kann das jemand bestätigen?
Irgendwie fehlt mir hier das grundsätzliche Verständnis.

Kann mir hier jemand einen Tip geben?
Welche Tests kann ich diesbezueglich noch durchführen?


Viele Gruesse

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »kls« (6. Februar 2007, 10:44)


kls

hat hier 2. Wohnsitz.

  • »kls« ist der Autor dieses Themas

Beiträge: 149

Ubuntu: 8.04

Kernel: UStudio 2.6.27-rt

Desktop: KDE

Architektur: 32-bit

  • Private Nachricht senden

2

Freitag, 9. Februar 2007, 23:12

RE: RT Process Scheduling?

Soviel Tips hätte ich eigentlich gar nicht erwartet! :D

Ich habe dann mal selbst nachgeforscht.

Also man benötigt anscheinend ein Tool namens "set_rlimits" gibt es in der Fassung 1.2.0.

http://www.physics.adelaide.edu.au/~jwoithe/

(Lediglich die Anpassung der /etc/security/rlimits.conf funktioniert also nicht wirklich, da muss
man wohl noch mehr tun. So ganz durchblickt habe ich das auch immer noch nicht!)

Nachdem man set_rlimits compiliert und installiert hat, und die Konfigurationsdatei konfiguriert hat,
kann man dann das Programm seiner Träume folgendermassen mir RT Prio XX starten.

set_rlimits -r:XX programm_name

Das sollte es dann sein. Funktioniert ersteinmal einwandfrei! Ob es irgendetwas bringt muss ich
erst einmal abchecken.

Vielleicht kann das jemand, mit mehr Erfahrung in diesem Bereich, bestätigen!?
Allerdings ist mir immer noch ein Rätsel, welche Prio dann tatsächlich vergeben worden ist.

Auch sind mir mindestens drei verschiedene Konfigurationen für die /etc/security/rlimits.conf
untergekommen.

manchmal ist es
@audio hard rt_priority 99
@audio hard rt_prio 80
@audio - rtprio 99

Wahrscheinlich ist man sich da nicht do ganz einig, was denn jetzt eigentlich wie funktioniert! :D
(Hauptsache man hat schon mal einen RT-Kernel) :D

Also, Ich werde da wohl noch ein wenig weiterforschen muessen.

Ciao
KLS

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »kls« (9. Februar 2007, 23:16)


basslord

Ubuntufreund

Beiträge: 2 671

Ubuntu: 12.04

Kernel: 3.2.0-24-generic

Desktop: KDE

Architektur: 64-bit

Danksagungen: 1 / 1

  • Private Nachricht senden

3

Samstag, 10. Februar 2007, 03:54

Hallo,

wie man das nun genau prüfen kann, weiß ich offen gesagt auch nicht :rolleyes:
Aber eines weiß ich: da Ubuntu mit PAM arbeitet, benötigt man das Tool nicht, da es scheinbar nur für solche Distris gedacht ist, die eben nicht PAM benutzen oder eine alte Version <0.79 einsetzen, welche rlimits nicht beherrscht.

Übrigens ist es so richtig:

Quellcode

1
2
3
@audio		-	rtprio		99
@audio		-	memlock		512000
@audio		-	nice		-10

Siehe auch hier: klick

Gruß
Rodge
"Ohne Musik wäre das Leben ein Irrtum." - Friedrich Nietzsche

kls

hat hier 2. Wohnsitz.

  • »kls« ist der Autor dieses Themas

Beiträge: 149

Ubuntu: 8.04

Kernel: UStudio 2.6.27-rt

Desktop: KDE

Architektur: 32-bit

  • Private Nachricht senden

4

Samstag, 10. Februar 2007, 12:32

Hallo Rodge.

Interessant.

Die Werte in der rlimits.conf geben ja zuersteinmal die maximal
Prioritäten und max. nice an.

Muss ich dann davon ausgehen, das jedem Programm, welches ich
als User der Gruppe "audio" aufrufe, die maximal PRIO bzw. max. nice zugeordnet wird? -- Eher wohl nicht. ;)

Rueckblick:

Bei dem set_rlimits tool, muss ich explizit konfigurieren welche
Gruppe bzw. User, welches Programm mit welchem maximalen nice bzw.
Scheduler Priorität starten kann. Das gibts bei PAM auch nicht mehr. ?(
Aber auch hier wird wieder nur das max-Limit eingetragen.


Vielleicht werden die Prios den Gegebenheiten automatisch angepasst, was ja irgendwie logisch bzw. sinnvoll sein könnte. -- Glaube ich aber auch nicht.

Also, das ps -ec Kommando verrät mir dies auch nicht wirklich!

Also, irgenwie muss ich wohl das eigentliche Programm, bzw. die gesamte Prozesskette RT-mässig anschieben.

Muss also das Programm selbst so programmiert sein, dass es sich die maximale Prio anfordert! Das würde irgenwie passen. Denn es gibt ja nur einige wenige Programme die ich kenne, wie z.B. Jack, Ardour, XMMS und ecasound, die man explizit mit RT Optionen starten kann.
Bei ecasound kann ich explizit die Scheduler Priorität mit auf den Weg geben. (Spiegelt sich allerdings beim ps auch nicht wieder!)
In einer Prozess-Kette, bei der nur ein Prozess RT-Prio hat, könnte das natuerlich fatale Folgen haben, bzw. wäre diese alles andere als sinnvoll.
Dann stellt sich mir die Frage, ob eventuell die ganze Prozesskette prio-mässig in Abhängigkeit voneinander stehen muesste, damit es ueberhaupt Sinn macht bzw. ueberhaupt funktionieren kann.
Und wie würde so etwas dann realisiert werden? ?(

Mal noch eine andere Frage zum Thema Prozess-Kette:
Hat jemand eine Ahnung ob ALSA mit DMIX und Sounkartentreiber auch im RT-Mode arbeiten? Oder wird deren Prio uber die jeweilige Applikation bestimmt?

Viele Gruesse
Klaus

kls

hat hier 2. Wohnsitz.

  • »kls« ist der Autor dieses Themas

Beiträge: 149

Ubuntu: 8.04

Kernel: UStudio 2.6.27-rt

Desktop: KDE

Architektur: 32-bit

  • Private Nachricht senden

5

Sonntag, 11. Februar 2007, 13:58

Hallo Rodge.

Ich habe es mal mit folgendem Befehl versucht:

ps -C xmms -o rtprio
(xmms muss natuerlich realtime Support aktiviert haben!)

Es gibt tatsächlich 99 aus! :D

Wieder ein Schritt weiter!

Gruss
\Klaus

basslord

Ubuntufreund

Beiträge: 2 671

Ubuntu: 12.04

Kernel: 3.2.0-24-generic

Desktop: KDE

Architektur: 64-bit

Danksagungen: 1 / 1

  • Private Nachricht senden

6

Sonntag, 11. Februar 2007, 17:53

Ah, nicht schlecht. Nun bin ich auch wieder was klüger. Die Muße, danach zu suchen hatte ich bislang nicht wirklich ;) Danke für den Tipp!

Gruß
Rodge
"Ohne Musik wäre das Leben ein Irrtum." - Friedrich Nietzsche