it-swarm.com.de

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

Ich lies heute auf Phoronix dass es einen 200 Zeilen Patch für den Linux Kernel gibt, der die Reaktionsfähigkeit des Desktops dramatisch verbessert.

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

66
popey

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.x.y-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.

59
Leann Ogasawara

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 basierend auf 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 es allen Benutzern ermöglichen, Gruppengruppen 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.

20
Roger Light

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

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 anekdotisch 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 Vanilla-Kernel-Quellen (die vom Ubuntu-Kernel-Team nicht geändert wurden) aus kernel.org herunterladen und extrahieren.

  3. Speichern Sie den Patch irgendwo und wenden Sie ihn an, indem Sie cd in das Kernel-Quellverzeichnis eingeben und ausführen: patch -p1 < /path/to/patch (Sie benötigen das patch -Paket dafür ... Ich denke, es ist Teil von build-essential wenn es nicht standardmäßig installiert ist)

  4. nd dann fahren Sie mit dem Rest des "altmodischen" Erstellungsprozesses fort ... Ich würde mich wirklich nicht mit den neueren Methoden beschäftigen, da sie auf Ubuntu/Debian-sanktionierte Kernel-Quellen abzielen ... Außerdem scheint mir der alte Weg einfacher zu sein.

Das Erstellen von Kerneln 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 ihrem Baum, aber ich bin mir nicht sicher, ob er noch in einem Build ist.
  • 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 Sie von AskUbuntu oder dem Rest der Ubuntu-Community keinen Support erhalten, da wir nicht jeden einzelnen Kernel da draußen überprüfen können.

12
Oli

Sie können einen einfachen "Hack", der von einem RedHat-Entwickler in einer Mailingliste veröffentlicht wurde, verwenden, für den keine Patches für den Kernel erforderlich sind, um dasselbe zu erhalten. Lesen Sie hier weiter: Alternative zum "200-Zeilen-Kernel-Patch, der Wunder bewirkt", den Sie sofort verwenden können

5
Alin Andrei

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

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.
1
Maxime R.

Ich habe diese Diskussion gerade aufgegriffen und sie ist sehr interessant. Ich habe ein kleines Blogpost 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!

0
stefanlsd