Samstag, 26. Mai 2012, 08:59

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

Samstag, 5. Mai 2007, 14:50

Neuer CK1 RT Patch für 2.6.21

Hallo Leute.

Con Kolivas hat gestern seinen neuen Patch für den 2.6.21er Kernel released.

Mein erster Eindruck:

Alles läuft "smoother".

Einen Versuch ist es wert!!

Below eine kleine Beschreibung und die Download-Links von Con Kolivas, für diejenigen die es interessiert.

Cheers
Klaus

------------------------------------------------

This patchset is designed to improve system responsiveness and interactivity.
It is configurable to any workload but the default -ck patch is aimed at the
desktop and -cks is available with more emphasis on serverspace.

Apply to 2.6.21 http://www.kernel.org/pub/linux/kernel/p…-2.6.21-ck1.bz2

or server version http://www.kernel.org/pub/linux/kernel/p…2.6.21-cks1.bz2

web:
http://kernel.kolivas.org

wiki:
http://ck.wikia.com

all patches: http://www.kernel.org/pub/linux/kernel/people/ck/patches/


Changes since 2.6.20-ck1:

The staircase-deadline cpu scheduler has replaced the old staircase design in
this version. The extra scheduling policies in 2.6.20-ck1 of SCHED_IDLEPRIO
(idle cpu scheduling) and SCHED_ISO (unprivileged soft real time) have been
rewritten and work in the same manner on this new scheduler. In almost all
ways this should be a drop in replacement for the older -ck and no userspace
changes should be required apart from deprecating the "compute" tunable (see
below).

More HZ options were added to this kernel. I have had repeated requests for
this as people have found woefully coded binary only availability software
that is dependant on the HZ value for performance (specifically the game
servers). Since it's trivial to add extra values I offer (mostly unsupported)
values up to 10000 HZ. People have found game servers benefitting from up to
4000 if I recall correctly. Note this patch will, unfortunately, cause a
reject with 2.6.21.1 so if you wish to apply -ck to that kernel, please apply
2.6.21.1 first and then -ck and ignore the reject, or back out the
hz-raise_max-2.patch

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

2

Sonntag, 6. Mai 2007, 01:09

Hm, vielleicht back ich mir mal einen damit. Hab die ck-patches schon länger nicht mehr getestet, aber schaden kann ein Vergleich ja nicht.

Auf jeden Fall danke für den Hinweis :) BTW wozu brauchst du die Optimierung eigentlich genau? Bei mir ist es ja hauptsächlich Recording.

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

3

Sonntag, 6. Mai 2007, 10:17

Audio und Realtime-Patches

Rodge: Zu Deiner Frage, wofür ich das Ganze denn brauche.

Ist natuerlich Off-Topic - However:

Ich hatte ja schon früher mal gepostet, dass ich mir einen Standalone Audio Client zusammenbaue, der sich ausschliesslich um Audio mit Realtime-Ausgabe kümmern soll.
Neben dem reinen Streaming manipuliere ich noch softwaremässig die Lautstärke und appliziere Triangular Dither.
Gerade eben baue ich mir noch einen DSP FIR Crossover-Filter zusammen, um meine Speaker bestmöglich mehrkanalig aktiv anzusteuern.

Also -- Ich habe bei mir folgendes herausgefunden um mein Audio (ernsthaftes High-End Zeugs) zu optimieren.

Das Scheduling und die damit verbundene Vergabe von Prioritäten für meinen Audio Prozess hängt direkt zusammen
mit dem erzielbaren Klanggewinn. Eine gleichförmige Audio-Verbarbeitung ist im Normalfall (Normal-Kernel) nicht möglich.
Man benötigt vergleichsweise riesige Buffer ( für jeden Prozess in der Kette mindestens einen) um den Stream zu managen. Leider haben normalerweiser X (benötgt sehr viel Leistung mit all seinen Clients), Graphikkarten, HD usw. ähnlich hohe Prioritäten wie der Audio-Process. Da sind Buffer-Grössen von 10ms (500 samples) und mehr keine Seltenheit. Da bleibt einiges auf der Strecke.
Ein weiterer Punkt ist die Grösse die "Slices" (Period Sizes/Blöcke ). Je kleiner ich die Slices mache desto geringer der Fehler. Lasse ich den Timer z.B. auf 4000Hz laufen, erhalte ich wesentlich bessere Resultate. Da der effektive Fehler geringer wird. Bei einem Standard-Kernel Setting von 1ms (1000Hz Timer ) gebe ich immer gleich 1 ms an einen anderen Prozess ab, auch wenn dieser eigentlich nur 100us oder weniger für seine Task benötigt. (Ich habe bei mir auch noch den Sound-Karten Treiber angepasst, um das Timing in der gesamten Kette zu optimieren. Dieser tickte nämlich auch im 1ms Takt)

Mit dem CK Patch (der Molnar Patch ist nicht unbedingt schlechter) schaffe ich es eine maximale Kontinuität in den Audio-Datenstrom zu bekommen. Mit seinem Staircase Scheduler bei einem nice von -20 komme ich schon sehr weit.
schedtool -I (sched_iso) , als Alternative, ist auch sehr gut. Auch kann ich durch den Patch die Timer Frequenzen (Sehr wichtig) anpassen. Das geht bei Molnar derzeit nicht.

Die Soundkarte und die jeweilige Audio-Applikation beinflusst das Ergebniss dann noch weiter. Nicht umsonst klingen
realtime optimierte Commandline Applikationen, wie ecasound, besser als Ardour und Konsorten.
Es ist ja nett ein graphisches Interface mit Audio-Spektrum Gimicks, GTK2 Oberfläche zu sehen. All das frisst IMO immense Processing Power, aber mehr noch Time-Slices und geht auf die Kosten des Sounds. Auch bei z.B. 12% CPU Load
gibt es die Probleme ( Ich nenne dies mal Warteschleifen - Idle time).

Das Ergebnis kann sich hören lassen - Seit Januar bin ich klanglich schon sehr weit gekommen.

So langsam habe ich alle Grundlagen zusammen um meinen bootbaren USB-Stick Audio Linux Client zusammenzubauen! ;)

Viele Gruesse
Klaus

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »kls« (6. Mai 2007, 10:24)