Kernel-Log – Was 2.6.37 bringt (4): Architektur- und Infrastruktur-Code

Seite 2: ACPI, PCI und mehr

Inhaltsverzeichnis

Der neue Autosuspend Support im Power-Management-Code des Kernels erleichtert Treibern die Nutzung der Funktionen von zur Laufzeit nutzbaren Stromsparfunktionen von Geräten. Beim Wechsel in den Software Suspend kann der Kernel das Abbild des Arbeitsspeichers mit LZO komprimieren; das beschleunigt den Wechsel in den und aus dem Ruhezustand, da weniger Daten mit der Festplatte austauscht werden müssen. Wie viel Arbeitsspeicher in das Image geschrieben wird, ist nun nicht mehr fest vorgegeben, sondern von der Menge des Arbeitsspeichers abhängig , was für viele moderne Systeme sinnvoller ist.

Nachdem die ACPI-Entwickler bereits bei 2.6.36 zahlreiche ACPI-Interfaces im Procfs entfernt hatten, musste nun einige als "deprecated" gekennzeichnete Schnittstellen dran glauben, die die Fan-, Thermal-, und Video-Treiber exportierten; als Ersatz dienen Sysfs-Dateien unter /sys/class/thermal/cooling_device*/, /sys/class/thermal/thermal_zone*/ und /sys/class/backlight/. Bei 2.6.38 sollen die Funktionen verschwinden, die /proc/acpi/processor/*/throttle bereitstellt – einen Ersatz gibt es nicht, denn laut Commit-Kommentar gibt es keine Grund, warun User diesen Überhitzungsschutz beeinflussen sollten.

Bjorn Helgaas hatte einige tief greifende Änderung am Code zur Ressourcenverteilung eingebracht, durch die Linux bei der Hardware-Konfiguration in einigen Bereichen etwas mehr in der von Windows genutzten Art vorgegangen wäre – es kam zeigten sich jedoch Probleme, daher wurden die Änderungen zum RC7 zurück genommen.

  • Der Befehl "make xconfig" erzeugt nun ein Konfigurationsprogramm mit Qt4 statt Qt3, sofern dessen Entwicklerdateien vorliegen (1, 2).
  • Durch Eingabe von "/" lässt sich im per "make nconfig" aufgerufenen Text-Konfigurationsprogramm nun ähnlich wie etwa bei Firefox ein interaktiver Suchmodus aufrufen.
  • Das Fanotify-Schnittstelle für On-Access-Virenscanner lässt sich nun nutzen – die Kernel-Hacker hatten sie bereits für 2.6.36 integriert, dann aber kurz vor der Fertigstellung dieser Version deaktiviert, da einige Ungereimtheiten aufgetaucht waren, deren Beseitigung größere Änderungen erforderten.
  • Der Kernel bietet nun eine dritte, TINY_PREEMPT_RCU genannte Implementation zum Read Copy Update (RCU). Sie ist auf Uniprozesser-Systeme abgestimmt und verbraucht weniger Speicher als der normale RCU-Code (TREE_PREEMPT_RCU), ist aber im unterschied zum noch kleineren und sparsameren TINY_RCU unterbrechbar (Preemptible) und dadurch auch für den Echtzeit-Einsatz interessant.
  • Der X86-Code nutzt statt "bootmem" nun den aus LMB hervorgegangenen und bereits bei anderen Architekturen genutzten Memblock-Allocator (Urpsünglich LMB/Logical Memory Block) zum Allozieren von Arbeitsspeicher (u. a. 1 , 2, 3); Hintergründe zu dieser Umstellung und den mit ihr verbundenen Risiken liefert H. Peter Anvin in einem Git-Pull-Request.
  • Hwpoison kann die Nutzung defekter Speicherbereiche nun per Soft Offlining auch unterbinden, wenn der Kernel diese Speicherbereiche mit großen Speicherseiten (Huge Pages) anspricht (u. a. 1, 2, 3, 4); einige Hintergründe dazu liefert Andi Kleen in seinem Haupt-Git-Pull-Request. Zusammen mit diesem Code kam stießen Basis-Funktionen zur Migration von Huge Pages zum Kernel (u. a. 1, 2) – es sind aber weitere Patches nötig, bevor der Kernel große Speicherseiten tatsächlich verschieben kann.