PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Voluntary Kernel Preemption Patch



Shutdown
12.09.04, 13:05
Hi,

ich habe gerade bei kerneltrap.org folgenden Artikel (http://kerneltrap.org/node/view/3440) gelesen. Es geht dabei um recht hohe Verzögerungen in den 2.6er Kerneln und Patches die dagegen gemacht werden.

Allerdings klingt das ganze auch so, als wäre es noch nicht ausgereift und möglicherweise unstable. Ausserdem konnte ich auch nirgendwo einen Link zu einem Download der Patches finden. Da ich die Patches aber gerne mal ausprobieren würde, frage ich hier einfach mal nach, ob da jemand schlauer als ich ist und einen Download-Link finden kann... :rolleyes:

Ausserdem durchblicke ich auch nicht ganz, wie der Patch aktiviert wird: So wie ich das gelesen habe, muss man in der Kernelkonfiguration Preemption und/oder Voluntary Preemption aktivieren (soll als neuer Punkt erscheinen) und dann zusätzlich mit dem Bootloader noch Optionen übergeben?! Stimmt das so?

Und ist es überhaupt ratsam diese Patches momentan einzuspielen?

Danke schonmal,

Shutdown

gonzo_18
12.09.04, 13:51
wenn du den neuen nitropatch nimmst kannst du die latenzzeiten des kernels ändern

Shutdown
12.09.04, 14:00
Ich glaube wir meinen was anderes - der Patch aus dem Artikel in meinem ersten Post fügt im Kernel weitere Einsprungspunkte ein, ändert Funktionen (damit sie schneller durchlaufen werden können), usw.
Dadurch wird der Kernel einfach schneller, die Folge ist die Senkung von Reaktionszeiten.
Der Nitropatch setzt nur "Wartetimer" anders, der Kernel wird dadurch nicht wirklich schneller.
Wenn ich mich irren sollte, korrigiert mich.

Shutdown

PS: Wenn mir jemand einen Download-Link für diese neuen Patches (am besten für Kernel 2.6.7) sagen könnte wäre ich schon zufrieden.
Oder wenn mir jemand sagen würde, wie diese Patches heißen würde ich selber sicherlich auch weiter kommen (wie zB -mm, -ac, ... steht ja leider auch nirgendwo)

Shutdown
12.09.04, 14:08
Für alle die nach einem Download suchen: http://people.redhat.com/mingo/voluntary-preempt/

Da gibt es die Patches, werde mich mal umsehen und meine Erfahrungen später posten.

Shutdown

gonzo_18
12.09.04, 14:19
hm...das ist interessant. Ich werde das auch gleich mal probieren. Hab meinen ach gerade gepatched

Shutdown
12.09.04, 14:32
Also der Patch ist bei mir jetzt mal drin, Konflikte mit dem Bootsplash-Patch gab es erfreulicherweise keine. Ich habe jetzt also einen Vanilla-Kernel 2.6.7 am Laufen, der zusätzlich noch den Bootsplash-Patch und den Voluntary Preemption Patch drin hat.

LiLo startet so:

# current linux
image = /boot/vmlinuz
initrd = /boot/initrd
root = /dev/sda2
label = linux-2.6.7
read-only
bypass
append = "splash=silent voluntary-preemption=1 kernel-preemption=1"

In meine /etc/rc.d/rc.local habe ich noch folgendes eingetragen:

# turn on/off voluntary preemption (if CONFIG_VOLUNTARY_PREEMPT)
echo 1 > /proc/sys/kernel/voluntary_preemption
#echo 0 > /proc/sys/kernel/voluntary_preemption

# turn on/off the preemptible kernel feature (if CONFIG_PREEMPT)
echo 1 > /proc/sys/kernel/kernel_preemption
#echo 0 > /proc/sys/kernel/kernel_preemption

Dadurch dürfte also die "alte" Preemption-Funktion und die "neue" auch aktiviert sein, oder irre ich mich?

[edit] Hier mal meine Erfahrungen: Bisher konnte ich keine Crashes oder sonstiges "Fehlverhalten" des Kernels feststellen, einen "Performancezuwachs" gibt es auch nicht. Was aber viel wichtiger ist: Wenn ich irgendwo Rechtsklicke um ein Menü zu öffnen o.ä. geschieht dies wirklich schneller als vorher. Da der Patch ja genau dies (die Reaktion des Systems verbessern) soll, würde ich mal sagen, dass er schon recht gut ist. Ich werde ihn sicherlich wieder einspielen wenn ich einen neuen Kernel auf mein System draufmache. Ich denke mal vor allem bei Computern mit weniger als 1 GHz dürfte sich dieser Effekt noch drastischer auswirken.

Shutdown

gonzo_18
12.09.04, 15:36
hmm....ich bin noch am frickeln....der patch für den 2.6.9-rc1er hat nen kleinen fehler...den werd ich gleich mal fixen

Shutdown
12.09.04, 16:44
Was für einen Fehler hat der Patch denn? Evtl ist es ja nur ein Konflikt mit einem anderen Patch oder sowas, hast du nen Vanilla-Kernel oder ist der schon "vorgepatched"?

Shutdown

gonzo_18
12.09.04, 19:24
hab ihn rausbekommen...jaja waren die Vanilla. Lag an einem Fehler in der nmi.c. DA wurden irgendwelche watchdog sagen definiert. hab etwas gefrickelt und nun gehts. Ich muss sagen das die threadverteilung bei meinem SMP - System dadurch besser geworden sit. HAbe ich den smp patch drin. und Programme im allgeimeinen laufen wie mein vorredner schon sagte besser (popups und so). Läuft auch prima mit dem Nitro-Patch zusammen.

ich habe lediglich noch ein paar sachen ergänzt;


echo 1 > /proc/sys/kernel/softirq_preemption
echo 1 > /proc/sys/kernel/hardirq_preemption

Shutdown
13.09.04, 11:54
ich habe lediglich noch ein paar sachen ergänzt;


echo 1 > /proc/sys/kernel/softirq_preemption
echo 1 > /proc/sys/kernel/hardirq_preemption


Woher hast du das und wofür ist es gut? Klingt ja mächtig genial :D

Shutdown

gonzo_18
13.09.04, 16:32
aus der Kernel-Doku....



Preempt Softirqs (PREEMPT_SOFTIRQS)

This option reduces the latency of the kernel by 'threading'
soft interrupts. This means that all softirqs will execute
in softirqd's context. While this helps latency, it can also
reduce performance.

The threading of softirqs can also be controlled via
/proc/sys/kernel/softirq_preemption runtime flag and the
sofirq-preempt=0/1 boot-time option.




Preempt Hardirqs (PREEMPT_HARDIRQS)

This option reduces the latency of the kernel by 'threading'
hardirqs. This means that all (or selected) hardirqs will run
in their own kernel thread context. While this helps latency,
this feature can also reduce performance.

The threading of hardirqs can also be controlled via the
/proc/sys/kernel/hardirq_preemption runtime flag and the
hardirq-preempt=0/1 boot-time option. Per-irq threading can
be enabled/disable via the /proc/irq/<IRQ>/<handler>/threaded
runtime flags.

Say N if you are unsure.



Dummerweiswe funktioniert das mit dem nitropatch doch nicht so wie ich wollte...gibts irgendwo nen reiserfs4 Patch für den 2.6.9-rc1er? mit dem mm geht der oben beschriebene Patch wieder nicht

Shutdown
13.09.04, 18:10
Sag mal, wo zum Geier findest du diese Optionen in deinem Kernel? Ich find die einfach nirgendwo (benutze xconfig)...bin echt zu blind dazu :rolleyes:

Shutdown

gonzo_18
13.09.04, 18:16
die scheint es nur im 2.6.9-rc1 zu geben...teste es mal aus

Shutdown
13.09.04, 18:19
Die schreiben ja dass es evtl Performance kostet...man muss sich also überlegen ob das System schneller reagieren soll oder ein bisschen weniger Leistung bringt...hmm... :ugly:
Da muss ich erstmal drüber nachdenken, evtl hole ich mir nachher noch den 2.6.9-rc2...

Shutdown

gonzo_18
13.09.04, 18:37
also von performanceverlust spüre ich nix