Ich habe heute auf Phoronix gelesen, 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?
Ich habe heute auf Phoronix gelesen, 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?
Antworten:
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.
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.
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.
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
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.
Speichern Sie den Patch irgendwo und wenden Sie ihn an, indem cd
Sie ihn in das Kernel-Quellverzeichnis schreiben und ausführen: patch -p1 < /path/to/patch
(Sie benötigen das patch
Paket dafür ... Ich denke, es gehört dazu, build-essential
wenn es nicht standardmäßig installiert ist.)
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).
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.
Sie können einen einfachen "Hack" verwenden, der von einem RedHat-Entwickler in einer Mailingliste gepostet wurde und für den nicht das Patchen des Kernels erforderlich ist, um dasselbe zu erhalten. Lesen Sie hier: Alternative zum "200-Zeilen-Kernel-Patch, der Wunder bewirkt", den Sie sofort verwenden können
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:
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!