Wie bekommen wir dieses magische, leistungssteigernde 200-Zeilen-Patch?


Antworten:


59

Die Diskussion zu diesem speziellen Patch fand auf der Mailingliste des Ubuntu-Kernel-Teams statt:

https://lists.ubuntu.com/archives/kernel-team/2010-November/013498.html

Aber lassen Sie mich noch allgemeiner darlegen, wie ein Patch am besten in den Ubuntu-Kernel gelangen kann ...

Erstens ist es die bevorzugte Richtlinie des Ubuntu-Kernel-Teams, dass Patches vor dem Abrufen in den Ubuntu-Kernel im Upstream gesendet und akzeptiert werden. Für das Ubuntu Kernel Team ist es eine große Wartungslast, wenn keine Baum-Patches mehr gepflegt werden müssen. Wenn der Patch außerdem der gesamten Kernel-Community zugute kommt, sollte er zuerst in den Upstream gehen.

Sobald der Patch im Upstream akzeptiert wurde, gelangt er automatisch in den Ubuntu-Kernel. Auf Wunsch kann auch eine Cherry-Pick- oder Pull-Anfrage gestellt werden. Weitere Informationen finden Sie auf der Seite KernelPatches .

Wenn der Patch als SRU ( Stable Release Update ) auf eine frühere Ubuntu-Version angewendet werden soll, empfiehlt es sich, den Patch in den entsprechenden Upstream-Stable-2.6.xy-Baum zu übernehmen. Als Teil unseres normalen Kernel-SRU-Prozesses werden wir kontinuierlich auf den neuesten Upstream-Stable-Kernel zurückgreifen. Somit würden wir irgendwann den Patch wieder automatisch bekommen.


4
Dieser Patch befindet sich wahrscheinlich im Kernel v2.6.38, was bedeutet, dass er wahrscheinlich in der Natty-Version enthalten ist. Wir werden es besser wissen, sobald der Patch in Linus 'Baum erscheint.
Andy

1
@Andy: Update - gute Nachricht: Ubuntu 11.04 Natty Narwhal wurde gestern veröffentlicht, enthält 2.6.38, der den Patch enthält.
Piskvor

Leider scheint der Link "Mailingliste des Ubuntu-Kernel-Teams" nicht mehr zu funktionieren oder fehlerhaft zu sein.
Greenonline

20

Ich habe gerade den lkml-Thread gelesen und hoffe, dass ich ein paar Informationen anbieten kann - auch wenn es nicht darum geht, den Patch in Ubuntu zu bekommen. Wie ein Beitrag auf der verlinkten Ubuntu-Liste sagt, wird es wahrscheinlich sowieso in 2.6.38 sein.

Der Patch gruppiert den Prozess automatisch nach TTYs. Im lkml wird viel diskutiert / argumentiert, dass dies bedeutet, dass es für die typische Desktop-Nutzung nicht relevant ist - dass es für interaktive Anwendungen keinen Unterschied macht. Die Testfälle basieren auf "Starten einer CPU-intensiven Task von einem Terminal aus und Überprüfen der Reaktionsfähigkeit einer anderen Task". So kompilieren Sie beispielsweise einen Kernel und versuchen, ein Video anzusehen.

Das heißt nicht, dass es nicht gut ist, aber die allgemeinen Überschriften vom Typ "Desktop-Reaktionsfähigkeit um eine Größenordnung verbessert" könnten irreführend sein, wenn Sie niemals CPU-intensive Aufgaben ausführen, die mit einem TTY verbunden sind. Ich könnte mich natürlich irren!

Es gab einige Erwähnungen, wie Sie ein sehr ähnliches Ergebnis erzielen können, indem Sie Ihre Bash-Skripte erweitern und allen Benutzern erlauben, Gruppen zu erstellen. Dies funktioniert nur, wenn auf aktuellen Ubuntu-Kerneln cgroups aktiviert sind. Die relevanten Stellen sind:

Offensichtlich beantwortet dies nicht die Frage, aber es könnte verwendet werden, um festzustellen, ob der Patch so magisch ist, wie erhofft.


4
Ich denke, dass mehr Menschen dies realisieren müssen.
Roddie

12

Wie können Ubuntu-Benutzer dies auf eine Weise erreichen, die unterstützt wird ?

Betonung meiner. Die einzige Möglichkeit, es auf unterstützte Weise zu bekommen, besteht darin, darauf zu warten, dass Ubuntu es in den Ubuntu-Kernel zieht. Da dies wirklich nur zur Kernel-Mailingliste gehört, ist es bis zu einem Punkt frisch, an dem alle Tests ziemlich ungewöhnlich sind, und ich kann mir vorstellen, dass es einige Zeit dauern wird, bis es für die Massenbereitstellung bereit ist.

Irgendwann zwischen der nächsten Veröffentlichung und einer langen Zeit würde ich ungebildet raten.


Aber wenn Sie ein großer Junge (oder Mädchen) sind und mit einem kaputten Kernel fertig werden, können Sie Ihren eigenen Kernel patchen und kompilieren.

  1. Laden Sie einen Patch herunter. Es gibt verschiedene Versionen, aber die beste für sich wurde unten von einem anderen Benutzer gepostet: http://pavlinux.ru/krnl/sched_autogroup-2.6.36.patch.bz2

  2. Laden Sie die Kernel-Quelle für die Version herunter, auf die sich Ihre Patch-Ziele beziehen. In diesem Fall 2.6.36. Sie können Vanille-Kernel-Quellen von kernel.org beziehen (das ist original, unverändert vom Ubuntu-Kernel-Team) und extrahieren.

  3. Speichern Sie den Patch irgendwo und wenden Sie ihn an, indem cdSie ihn in das Kernel-Quellverzeichnis schreiben und ausführen: patch -p1 < /path/to/patch(Sie benötigen das patchPaket dafür ... Ich denke, es gehört dazu, build-essentialwenn es nicht standardmäßig installiert ist.)

  4. Und dann mache ich mit dem Rest des "altmodischen" Build-Prozesses weiter ... Ich würde mich wirklich nicht um die neueren Methoden kümmern, da sie auf Ubuntu / Debian-sanktionierte Kernel-Quellen abzielen ... Außerdem scheint der alte Weg einfacher ( mir).

Kernel zu bauen ist nicht schwer, aber Sie können es durcheinander bringen, wenn Sie zu weit vom akzeptierten Pfad entfernt sind. Und Sie erhalten keine offizielle Unterstützung, wenn etwas schief geht.


Alternativ dazu tauchen immer mehr Kernel mit dem eingebauten Patch auf (oder zumindest im Quellbaum, bis zur nächsten Veröffentlichung).

  • Ich glaube, Zen Kernel hat diesen Patch in seinem Baum, aber ich bin mir nicht sicher, ob er noch in irgendeiner Version vorliegt.
  • Der Liquorix-Kernel hat dies jetzt auch eingebrannt.

Hinweis: Diese beiden Kernel (und wahrscheinlich auch andere) weichen etwas von der Ubuntu-Methode ab, mit der Kernel erstellt werden. Möglicherweise stellen Sie fest (wie bei meinem Wechsel zu Liquorix), dass die CPU-Frequenzskalierung nicht mehr funktioniert oder der Suspend-Modus unterbrochen wird. Es gibt normalerweise Fehlerbehebungen und Problemumgehungen, aber es besteht die Möglichkeit, dass AskUbuntu oder der Rest der Ubuntu-Community Sie nicht unterstützen, da wir nicht jeden einzelnen Kernel da draußen überprüfen können.


Irgendjemand muss irgendwo diesen Patch bereits in einem öffentlichen Git-Zweig angewendet haben. Zu viele Neuigkeiten, um nicht, aber mein Google-Fu versagt mir.
Karl Bielefeldt

@ Karl Zen Kernel haben es in ihrem Git-Baum.
Oli

Der Liquorix hat dies unter einer ganzen Reihe anderer Pflaster angewendet. Ich laufe jetzt drauf und es ist ganz nett. Ein Hauptproblem für mich (und wahrscheinlich für die meisten anderen Benutzer) ist, dass CPU_FREQ ein bisschen durchgeknallt zu sein scheint. Es hängt von PERFORMANCE ab.
Oli


1

Ab dem 18.01.2011 enthält Linux 2.6.38-rc1 diesen Patch.
Siehe die verwandten Phoronix-Nachrichten und den Linus-Beitrag .

Ab dem 29.01.2011 wird die tägliche Version von Natty Narwhal mit Linux 2.6.38 ausgeliefert.

Daher gibt es derzeit zwei Lösungen:

  • Holen Sie sich das neueste Ubuntu 11.04-Image .
  • Oder warten Sie auf die neueste offizielle Veröffentlichung von Ubuntu 11.04 im April 2011.

0

Ich habe diese Diskussion gerade aufgegriffen und sie ist sehr interessant. Ich habe einen kleinen Blog-Beitrag darüber geschrieben, wie man den cgroup-Patch unter Ubuntu 10.10 aktiviert.

Ich habe nicht wirklich getestet, ob es funktioniert oder nicht, also wäre ein Feedback großartig!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.