Kernel-Log – Was 2.6.38 bringt (5): Architektur, Infrastruktur und Virtualisierung
In bestimmten Situationen steigert ein kleiner Patch die Reaktionsgeschwindigkeit von Desktop-Umgebungen spürbar. Die Transparent Huge Pages erleichtern die Speicherverwaltung, was speziell für Virtualisierung oder Server-Software interessant ist.
- Thorsten Leemhuis
In der Nacht von Dienstag auf Mittwoch hat Linus Torvalds die siebte Vorabversion von Linux 2.6.38 freigegeben. Er erwähnt dabei unter anderem die Korrektur für einen Fehler an Btrfs, der in gewissen Situationen zu Datenverlust führt – erneut gab Torvalds keine Hinweise auf einen Freigabetermin von 2.6.38.
Die Fertigstellung der nächsten Version des Hauptentwicklungszweigs rückt aber dennoch näher, daher will das Kernel-Log seine Mini-Serie "Was 2.6.38 bringt" langsam zu einem Ende bringen und widmet sich im vorletzten Teil den Neuerungen rund um Architektur-Code, Infrastruktur und Virtualisierung. Teil eins und drei hatten sich mit den Änderungen bei Grafik und Netzwerk gewidmet; Teil zwei und vier drehten sich um Dateisysteme und Storage. Das Ende der Serie wird der in einigen Tagen folgende Artikel zu Treibern für Audio-, USB- und Video-Hardware markieren.
Wunderpatch
Für verhältnismäßig viel Aufsehen sorgte um den Jahreswechsel eine als "Wunderpatch" oder "Autogroup scheduling feature" bekannt gewordene Änderung, welche die Interaktivität von Desktop-Umgebungen und -Anwendungen in bestimmten Situation verbessert. Das gelingt allerdings nicht durch magisch erzeugte CPU-Ressourcen, sondern durch die automatische Gruppierung aller Prozesse einer Session zu einer Cgroup (Control Group) – das sorgt bei Vollauslastung der CPU für eine andere Verteilung der Prozessorzeit, was zu einem reaktionsschnelleren Desktop führen kann, sofern die CPU-lastigen Prozesse in einer anderen Gruppe stecken als die Desktop-Umgebung.
Details zur Funktionsweise liefert ein älteres Kernel-Log und ein Artikel bei LWN.net. Scheduler-Maintainer Ingo Molnar und Linus Torvalds zeigten sich von dem Patch angetan und loben ihn im Haupt-Git-Pull-Request für den Scheduler-Code und der Ankündigung von 2.6.38-rc1.
Die größte Wirkung zeigt sich allerdings bei Bedingungen, wie sie bei Kernel-Hackern häufig auftreten: Das Benutzen der Desktop-Oberfläche, während im Terminal eine CPU-lastige Aufgabe läuft – etwa das Kompilieren eines Kernels. Keine nennenswerten Einfluss hat die Gruppierung in Situationen, wo zwei Desktop-Anwendungen um die Prozessorzeit wetteifern.
In den Standard-Vorgaben für die Kernel-Konfiguration ist die via "CONFIG_SCHED_AUTOGROUP" einschaltbare Funktion deaktiviert; möglicherweise werden sie auch nicht alle Distributionen einschalten, da die SysV-Init- und Upstart-Alternative Systemd eine ähnliche, allerdings flexiblere Funktion bietet.
Große Happen
Durch die neuen Transparent Huge Pages (THP) handhabt der Kernel große Speicherseiten deutlich flexibler und kann sie in bestimmten Situationen sogar automatisch verwenden (u. a. 1, 2, 3); das sollte langfristig die umständliche und nicht sonderlich flexible Einbindung via HugeTblFs unnötig machen. Speziell bei großen Datenbanken oder der Virtualisierung verbessern große Speicherseiten die Performance, weil sie Kernel und Prozessor die Speicherverwaltung erleichtern und einige Funktionseinheiten moderner CPUs zum Zug kommen, die sonst ungenutzt blieben.
THP wurde maßgeblich vom Red-Hat-Entwickler Andrea Arcangeli vorangetrieben; frühe Versionen des Codes setzt Red Hat bereits beim im vergangen November eingeführte Red Hat Enterprise Linux 6 ein, wo THP als eine der wichtigsten Neuerungen hervorgehoben wurde. Details zur Technik und ihren Vorteilen liefern die zugehörige Dokumentation oder der LWN.net-Artikel "Transparent huge pages in 2.6.38". Einige kurz vor der Aufnahme der THP-Patches von VM-Hacker Mel Gorman durchgeführte Benchmarks vergleichen THP mit dem HugeTblFs und einem Kernel, der keine großen Speicherseiten nutzt. Hintergründe und Vorteile der Technik liefert Arcangeli in den Präsentationsfolien und der Videoaufzeichnung eines Vortrags auf dem KVM Forum 2010.
THP fand über den von Andrew Morton gepflegten MM-Tree den Weg in 2.6.38 und umging den Linux-Next genannten Entwicklerzweig, in dem die Subsystem-Verwalter die Arbeit an der jeweils übernächsten Version koordinieren. Das führte zu Unmut, da einige (recht kurzfristig beseitigte) Fehler so erst nach der Aufnahme in den Hauptentwicklungszweig ans Licht kamen; Morton erklärte daraufhin, er bereite die Integration in den des MM-Kernels in Linux-Next bereits vor, der den früher sehr wichtigen MM-Kernel in vielen Bereichen abgelöst hat.
Virtualisierung
Nach dem bei 2.6.37 integrierten Xen-Dom0-Support zogen einige Grundlagen für Xen-Backend-Treiber in den Kernel ein – die zum sinnvollen Betrieb einer Linux-Dom0 benötigten Backend-Treiber wurden aber nicht rechtzeitig fertig und folgen vermutlich bei 2.6.39. Über den "Userspace Grant Access Device Driver" können Xen-Gäste nun Speicherseiten mit einem anderen teilen. Der HVM X2APIC Support soll ferner die Interrupt-Verarbeitung beschleunigen.
Die KVM-Entwickler wollten ihren Hypervisor um "Asynchronous Page Faults" bereichern, aber Torvalds gefielen einige Aspekte der Patches nicht, sodass die KVM-Entwickler sie nochmal überarbeitet wollen. Als wesentlichste Neuerung an KVM verbleibt so die Unterstützung für die Transparent Huge Pages und die Flush-By-Asid genannte Virtualisierungserweiterungen von AMDs Prozessoren der Bulldozer-Familie, die Mitte des Jahres erwartet werden.
ACPI, Security, Staccato
ACPI
Die Änderungen am ACPI-Code fasst dessen Betreuer Len Brown in seinem Haupt-Git-Pull-Request zusammen. Das ACPI Platform Error Interface (APEI) gibt nun gewisse Fehlerinformationen über printk aus, sodass die Informationen in den normalen, über dmesg abrufbaren Kernel-Meldungen auftauchen, wie es sich einige Kernel-Hacker wünschen.
Entfernt haben die Entwickler die Procfs-Dateien zum Ein- und Ausschalten von Display-Ausgängen. Das selbe Schicksal ereilte wie angedroht auch den Code zum Bereitstellen der Dateien /proc/acpi/processor/*/throttle, über die man den Throttling-Level von Prozessoren beeinflussen konnte. Throttling hatte lange den Ruf einer Stromsparfunktion – in den allermeisten Fällen (und insbesondere bei modernen Prozessoren) führte das manuelle Aktivieren des Überhitzungsschutzes aber letztendlich zu einer höheren Leistungsaufnahme, da der Prozessor viel länger für die ihm gestellten Aufgaben braucht und nicht in die tiefen Schlafmodi wechseln kann.
Security
Das Crypto-Subsystem bietet ab 2.6.38 ein von Torvalds anfangs kritisch hinterfragtes API, über das sich die Hash- und Skcipher-Funktionen vom Userspace aus nutzen lassen. Der Treiber aesni-intel zur Nutzung von Intels "AES New Instructions (NI)" spielt sein Können nun auch im 32-Bit-Betrieb aus. Einige im Commit-Kommentar angegeben Benchmarks arbeiten dadurch mehr als doppelt so schnell; ganz nebenbei läuft auch die x86-64-Implementation durch diese Anpassungen ein klein wenig flotter. Der Treiber erhielt zudem eine optimierte Implementation für den in RFC4106 spezifizierten AES-GCM-Algorithmus.
Ein für 2.6.38 aufgenommener Patch rüstet die Printk-Format-Auszeichnung %pK und den Sysctl kptr_restrict nach. Über Letzteren lässt sich festlegen, ob der Kernel mit $pK gekennzeichnete Speicheradressen bei der Ausgabe über /proc oder die Kernel-Meldungen verschleiert, wenn nicht privilegierte Anwender diese Informationen abfragen – das soll Angreifern den Einbruch oder die Rechteausweitung erschweren, da diese Informationen einige Rückschlüsse über den Kernel-interna ermöglichen. Neben der Capability CAP_SYS_ADMIN gibt es jetzt auch CAP_SYSLOG, um etwa dem Root-Anwendern in einem Container das Recht zum Leeren des Kernel-Ausgaben ("dmesg -c") zu entziehen (1, 2, 3).
Die "Key Ring Service" genannte Infrastruktur zur Schlüsselverwaltung im Kernel beherrscht nun "Trusted and Encrypted Keys" – erste lassen sich nur mit einem TPM nutzen, das die Keys nur entriegelt, wenn das System als nicht kompromittiert eingestuft wird. Details zu den Möglichkeiten finden sich im den Commit-Kommentaren (1, 2), der zugehörigen Dokumentation und einem vergangenen Herbst publizierten Artikel bei LWN.net.
Auf x86-Systemen wird der 38er-Kernel die No-Execute-Funktionen (NX) moderner Prozessoren nun auch zur Absicherung von Kernel-Daten und -Modulen nutzen; Hintergründe dazu liefert LWN.net. Zudem aktiviert der Kernel den auch als EVP oder XD bekannten Schutz bei Intel-CPUs nun selbst, wenn das BIOS ihn lahm legt – eine Prüfung hatte zuvor ergeben, dass bei fast 10 Prozent der geprüften Ubuntu-Systeme die NX-Funktion brach lagen, weil das BIOS-Setup falsch konfiguriert war
Tracing
Der Radeon-Treiber und dem für RCU zuständigen Code bieten nun zahlreiche neue Tracepoints für eine genauere Analyse der Vorgänge. An verschiedenen Stellen gab es zudem neue Abfragepunkte oder -Schnittstellen, die für Analyseprogramme wie Powertop interessant sind; Details dazu erläutert die bei 2.6.38 integrierte Dokumentation des Power Events API, die auch einige der älteren, mittlerweile abgekündigten Schnittstellen beschreibt.
Über das neue Makro TRACE_EVENT_FLAGS lassen sich Tracepoints nun speziell kennzeichnen. Durch das Setzen der in dem Rahmen eingeführte Flags TRACE_EVENT_FL_CAP_ANY gestattet der Kernel auch normale Anwendern die Verwendung des Tracepoints; alle Syscall-Tracepoints wurden bei 2.6.38 so gekennzeichnet (1, 2).
Staccato
- Der 38er-Kernel bringt eine Library zum Dekomprimieren des aus LZMA hervorgegangenen und für hohe Packdichten bekannten XZ mit. Darauf setzt nicht nur das SquashFS auf, das ab nun auch XZ-Unterstützung bietet, sondern auch Code, durch den der Kernel beim Booten Teile seiner selbst und Initial Ramdisks (Initrds) entpacken kann, die mit Hilfe von XZ komprimiert wurden (1, 2).
- Die Kernel-Konfigurations-Option CONFIG_EMBEDDED war anfangs dazu gedacht, einige eher für den Embedded-Bereich interessante Einstellmöglichkeiten vor normalen Kernel-Übersetzern zu verstecken. Da sich mittlerweile auch zahlreiche für andere Einsatzgebiete interessante Optionen hinter ihr verbergen, haben die Kernel-Hacker sie nun in CONFIG_EXPERT umbenannt.
- Die TINY_PREEMPT_RCU genannte Varianten des für RCU (Read Copy Update) zuständigen Codes beherrscht jetzt das für den Realtime-Einsatz interessante Priority Boosting.
- Sofern Module eine Versions-Angabe enthalten, lässt sich diese nun auch via Sysfs abfragen.
- Die Datei /proc/consoles verrät ab 2.6.38, welche Konsolen dem System bekannt sind und welche Fähigkeiten sie bieten.
- Abermals gab es zahlreiche Verbesserungen und Anpassungen an der noch jungen und sich schnell weiterentwickelnden Tracing-Infrastruktur. Das Perf-Subkommando "trace" wurde etwa in "script" umbenannt. Über TRACE_EVENT_CONDITIONAL() lassen sich jetzt einzelne Tracepoints direkt deaktivieren, damit sie während einer Analyse gar nicht erst feuern – das minimiert den Performance-Einfluss und reduziert die Menge der erfassten Daten.
- Die Blobs der etwa von der PPC-Architektur genutzten Device Trees lassen sich nun ins Kernel-Image linken.
- Auch bei der Unterstützung für OLPCs mit x86-CPU setzt der Kernel jetzt auf Device Trees .
- Wie immer stieß Unterstützung für verschiedene Hardware mit ARM-Kern zum Kernel, etwa für das Buffalo Linkstation Live v3 (LS-CHL) NAS, das AM3517/05 CRANE board oder die auch als SAARB bekannte PXA955 Handheld Platform
- Der PPC-Code bringt nun "etwas Unterstützung" für den POWER7+ mit.
- Den Oprofile-Code erweiterten die Kernel-Hacker um Unterstützung für einige Funktionen von AMDs Bulldozer.
Die Kernel-Hacker nahmen einige weitere Userland-Tools in das Unterverzeichnis tools/ der Linux-Quellen auf:
- Das ursprünglich autotest genannte Skript ktest.pl assistiert beim Verteilen und Testen von Kerneln auf verschiedenen Systemen (u. a. 1, 2, 3)
- Turbostat liefert Informationen zur den von X86-Prozessoren genutzten Frequenzen und Schlafmodi; dabei zeigt es auch an, ob die CPU per Turbo Boost auf die höchsten Taktfrequenzen wechselt.
- Zum Kernel stieß ferner x86_energy_perf_policy, das neueren Intel-Prozessoren Hinweise liefert, die beim Abwägen zwischen einer Energie-effizienten oder schnellstmöglichen Arbeitsweise helfen.
- In das Tool-Verzeichnis verschoben haben die Kernel-Hacker das Programm slabinfo, das einige Interna zur Speicherverwaltung des Kernels ausgibt.
- Über eine Kernel-Erweiterung und zwei Userspace-Programme vhost_test und virtio_test können Entwickler einige Funktion von VirtIO und Vhost testen (1, 2)
Kleine Perlen: Infrastruktur
Die kleinen Perlen: Infrastruktur und Virtualisierung
Viele kleinere, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste mit den englischen Commit-Überschriften der jeweiligen Änderung. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend des von Linus Torvalds gepflegten Git-Zweigs mit den "offiziellen" Kernel-Quellen auf Kernel.org. Der über diese Links angezeigten Commit-Kommentar und der darunter ausgegebene Patch liefern zahlreiche weitere Informationen zur jeweiligen Änderungen.
Vor jedem Link finden sich in eckigen Klammern einige Buchstaben und Zahlen. Ein "C" kennzeichnet Patches mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten, die bei der Kernel-Konfiguration über "make menuconfig", "make xconfig" und ähnliche Werkzeuge angezeigt werden. Ein "D" steht bei Patches, die die Dokumentation verändern, die im Kernel-Zweig unterhalb von Documentation/ liegt. Ein "N" weist Änderungen aus, die eine neue Datei anlegen. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" steht für Änderungen, die inklusive Kommentar zwischen 10 und 20 KByte groß sind, eine "2" für solche, die zwischen 20 und 30 KByte Umfang haben; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.
ACPI
- [
1] ACPI, APEI, Generic Hardware Error Source POLL/IRQ/NMI notification type support - [
1] ACPICA: Implicit notify support - [
] ACPICA: Update version to 20101209 - [
CD] ACPI: delete CONFIG_ACPI_PROCFS_POWER and power procfs I/F in 2.6.39 - [
] ACPI, intel_idle: Cleanup idle= internal variables - [
] ACPI / PM: Add function for device power state initialization - [
] ACPI / PM: Add function for updating device power state consistently - [
] ACPI / PM: Add functions for manipulating lists of power resources - [
] ACPI / PM: Do not enable multiple devices to wake up simultaneously - [
] ACPI / PM: Use device wakeup flags for handling ACPI wakeup devices - [
C] ACPI: update CONFIG_ACPI_PROCFS description - [
] ACPI: Use ioremap_cache() - [
] ACPI video: introduce module parameter video.use_bios_initial_backlight - [
C N1] IPMI/ACPI: Add the IPMI opregion driver to enable ACPI to access BMC controller - [
] PNP: Set up pnp_debug via module and not via boot param. - [
CDN] thermal: Add event notification to thermal framework
Crypto & Security
- [
] crypto: cast5 - simplify if-statements - [
C] crypto: gf128mul - Remove experimental tag - [
1] crypto: rfc4106 - Extending the RC4106 AES-GCM test vectors - [
] selinux: cache sidtab_context_to_sid results - [
1] This patch adds a new security attribute to Smack called
MM
- [
] memcg: add lock to synchronize page accounting and migration - [
D] memcg: document cgroup dirty memory interfaces - [
D] memsw: deprecate noswapaccount kernel parameter and schedule it for removal - [
] memsw: handle swapaccount kernel parameter correctly - [
] mlock: only hold mmap_sem in shared mode when faulting in pages - [
N] mm: compaction: add trace events for memory compaction activity - [
] mm: compaction: perform a faster migration scan when migrating asynchronously - [
1] mm: migration: allow migration to operate asynchronously and avoid synchronous compaction in the faster path - [
1] mm: page allocator: adjust the per-cpu counter threshold when memory is low - [
D] mm: smaps: export mlock information - [
1] mm: vmscan: reclaim order-0 and use compaction instead of lumpy reclaim - [
] mm: vmscan: stop reclaim/compaction earlier due to insufficient progress if !__GFP_REPEAT - [
D] oom: allow a non-CAP_SYS_RESOURCE proces to oom_score_adj down - [
D] revert documentaion update for memcg's dirty ratio. - [
] slub tracing: move trace calls out of always inlined functions to reduce kernel code size - [
] thp: add numa awareness to hugepage allocations - [
C 1] thp: add x86 32bit support - [
] thp: _GFP_NO_KSWAPD - [
] thp: kvm mmu transparent hugepage support - [
C] thp: select CONFIG_COMPACTION if TRANSPARENT_HUGEPAGE enabled - [
C] thp: transparent hugepage config choice - [
DN1] thp: transparent hugepage support documentation - [
] thp: transparent hugepage vmstat - [
] vmstat: Optimize zone counter modifications through the use of this cpu operations - [
] vmstat: User per cpu atomics to avoid interrupt disable / enable - [
] x86, mm: avoid possible bogus tlb entries by clearing prev mm_cpumask after switching mm
PCI
- [
] PCI: Add mask bit definition for MSI-X table - [
] PCI: Disable ASPM if BIOS asks us to - [
] PCI: enable pci=bfsort by default on future Dell systems - [
] x86/PCI: irq and pci_ids patch for Intel Patsburg - [
C] x86/PCI: make Broadcom CNB20LE driver EMBEDDED and EXPERIMENTAL
Scheduler
- [
] sched: Add some clock info to sched_debug - [
] sched: Add sysctl_sched_shares_window - [
] sched: Display autogroup names in /proc/sched_debug - [
D] sched, docs: Update schedstats documentation to version 15 - [
1] sched: Implement on-demand (active) cfs_rq list - [
1] sched: Simplify cpu-hot-unplug task migration
Tracing & Debugging
- [
D] Documentation/trace/events.txt: Remove obsolete sched_signal_send. - [
D] kdump: update kexec-tools URL and Vivek's email - [
1] kprobes: Support delayed unoptimizing - [
] perf: Add calls to suspend trace point - [
] perf annotate: Document missing options. - [
N] perf bench: Add feature that measures the performance of the arch/x86/lib/memcpy_64.S memcpy routines via 'perf bench mem' - [
] perf bench: Print both of prefaulted and no prefaulted results by default - [
] perf buildid-list: Document missing options - [
C] perf: Clean up power events by introducing new, more generic ones - [
] perf diff: Document missing options - [
] perf: Dynamic pmu types - [
] perf evsel: Introduce per cpu and per thread open helpers - [
] perf kvm: Document missing options - [
] perf lock: Document missing options - [
] perf probe: Fix line range description since a single file is allowed - [
] perf record: Add "nodelay" mode, disabled by default - [
] perf record: Add option to disable collecting build-ids - [
] perf record: Document missing options - [
] perf report: Allow user to specify path to kallsyms file - [
] perf report: Document missing options - [
] perf sched: Document missing options - [
1] perf script: Finish the rename from trace to script - [
] perf session: Allocate chunks of sample objects - [
] perf session: Cache sample objects - [
] perf session: Keep file mmaped instead of malloc/memcpy - [
1] perf stat: Add csv-style output - [
1] perf stat: Add no-aggregation mode to -a - [
] perf stat: Document missing options - [
] perf stat: Use --big-num format by default - [
1] perf symbols: Add symfs option for off-box analysis using specified tree - [
] perf symbols: Improve kallsyms symbol end addr calculation - [
] perf test: Add test for counting open syscalls - [
2] perf tools: Ask for ID PERF_SAMPLE_ info on all PERF_RECORD_ events - [
] perf tools: Build with frame pointer - [
N4] perf tools: Introduce event selectors - [
] perf top: Document missing options - [
] perf trace: Document missing options - [
] perf, x86: Detect broken BIOSes that corrupt the PMU - [
] perf, x86: P4 PMU - describe config format - [
C 1] rcu: add tracing for TINY_RCU and TINY_PREEMPT_RCU
Virtualization
- [
D] KVM: Add PV MSR to enable asynchronous page faults delivery. - [
D] KVM: Document device assigment API - [
] KVM: fast-path msi injection with irqfd - [
C N2] KVM: Halt vcpu if page it tries to access is swapped out - [
1] KVM: Handle async PF in a guest. - [
D] KVM: Let host know whether the guest can handle async PF in non-userspace context. - [
D] KVM paravirt: Add async PF initialization to PV guest. - [
] KVM: pre-allocate one more dirty bitmap to avoid vmalloc() - [
] KVM: SVM: add new SVM feature bit names - [
] KVM: use kmalloc() for small dirty bitmaps - [
] KVM: VMX: add module parameter to avoid trapping HLT instructions (v5) - [
] KVM: VMX: Optimize atomic EFER load - [
D] lguest: document --rng in example Launcher - [
D] lguest: example launcher to use guard pages, drop PROT_EXEC, fix limit logic - [
D] lguest: --username and --chroot options - [
] virtio: remove virtio-pci root device - [
] VMware balloon: stop locking pages when hypervisor tells us enough
Various
- [
D] cgroups: remove deprecated subsystem from examples. - [
] deb-pkg: Make deb-pkg generate a seperate linux-libc-dev deb - [
] deb-pkg: s/hdr/kernel_headers_/ && s/header/libc_headers_/ - [
D] Documentation: complete crashkernel= parameter documentation - [
D] Documentation/dontdiff: add further autogenerated files to ignore list - [
D] Documentation/email-clients.txt: update Thunderbird docs with wordwrap plugin - [
D] Documentation/email-clients.txt: warn about word wrap bug in KMail - [
D] Documentation/kbuild: add info that 'choice' can have a symbol name - [
D] Documentation: update kernel-docs.txt - [
] fixdep: use hash table instead of a single array - [
CD 1] genirq: Remove __do_IRQ - [
1] hrtimers: Convert hrtimers to use timerlist infrastructure - [
] kbuild: add numeric --set-val option to scripts/config - [
] kbuild: create linux-headers package in deb-pkg - [
D] kbuild, deb-pkg: support overriding userland architecture - [
D] kbuild: introduce HDR_ARCH_LIST for headers_install_all - [
] kconfig: add more S_INT and S_HEX consistency checks - [
D] kconfig: the day kconfig warns about "select"-abuse has come - [
] ktest: Added better console, add test build - [
N] ktest: Added compare script to test ktest.pl to sample.conf - [
1] ktest: Added config_bisect test type - [
] ktest: Added continuing on success, clear log and timeout - [
] ktest: Added force stop after success and failure - [
] ktest: Added patchcheck - [
] ktest: Added reboot on success - [
N3] ktest: Added sample.conf, new %default option format - [
1] ktest: Add open and close console and start stop monitor - [
] ktest: Add POST_INSTALL to allow initrds to be created - [
] ktest: Add poweroff after halt and powercycle after reboot - [
] ktest: Add reverse bisect, better logging, copyright - [
] ktest: Allow a test case to undefine a default value - [
] ktest: Ask for the manditory config options instead of just failing - [
1] ktest: Bisecting, install modules, add logging - [
] ktest/cleanups: Added version 0.2, ssh as options - [
] ktest: Copy the last good and bad configs in config_bisect - [
] ktest: For grub reboot, use run_ssh instead of run_command - [
] ktest: New features: noclean, dodie, poweroff on error and success - [
] ktest: New features reboot on error, make options - [
2] ktest: New TEST_START instead of using [], and use real SHA1s - [
] ktest: Output something easy to parse for failure or success - [
] ktest: Parse off the directory name in useconfig for failures - [
] ktest: Updated the sample.conf for the latest options - [
] ktest: Use different temp config name for minconfig - [
] ktest: Use oldnoconfig instead of yes command - [
] ktest: Use $output_config instead of typing $outputdir/.config - [
] ktest: Write to stdout if no log file is given - [
] lib: hex2bin converts ascii hexadecimal string to binary - [
] percpucounter: Optimize __percpu_counter_add a bit through the use of this_cpu() options. - [
D 1] PM / Runtime: Add synchronous runtime interface for interrupt handlers (v3) - [
] printk: Use this_cpu_{read|write} api on printk_pending - [
1] rcu: add priority-inversion testing to rcutorture - [
C] rcu: demote SRCU_SYNCHRONIZE_DELAY from kernel-parameter status - [
D] rcu: document TINY_RCU and TINY_PREEMPT_RCU tracing. - [
C] rcu: Make synchronize_srcu_expedited() fast if running readers - [
] rcu: move TINY_RCU from softirq to kthread - [
D] rcu: update documentation/comments for Lai's adoption patch - [
D] remove doc for obsolete dynamic-printk kernel-parameter - [
2] RTC: Rework RTC code to use timerqueue for events - [
] scripts/checkpatch.pl: add check for multiple terminating semicolons and casts of vmalloc - [
D] scripts/coccinelle: update for compatability with Coccinelle 0.2.4 - [
C] sparc: Use generic irq Kconfig - [
C N1] SPI: Add SPI controller driver for the Atheros AR71XX/AR724X/AR913X SoCs - [
] spi: davinci: add support for interrupt mode - [
C] spi: Enable SPI driver for S5P6440 and S5P6450 - [
C] spi/imx: Add i.MX53 support - [
1] spi/pxa2xx: Add chipselect support for Sodaville - [
D] sysctl: remove obsolete comments - [
C] tile: Use generic irq Kconfig - [
N] timers: Introduce timerlist infrastructure. - [
N] timers: Rename timerlist infrastructure to timerqueue - [
DN] tty: add 'active' sysfs attribute to tty0 and console device - [
D] workqueue: deprecate cancel_rearming_delayed_work[queue]()
Kleine Perlen: Architektur-Code
Die kleinen Perlen: Architektur-Code
x86
- [
N1] ce4100: Add PCI register emulation for CE4100 - [
] oprofile, x86: Add support for 6 counters (AMD family 15h) - [
] oprofile, x86: Add support for AMD family 15h - [
CDN] x86: Add CE4100 platform support - [
] x86: Allow platforms to force enable apic - [
1] x86, amd-nb: Cleanup AMD northbridge caching code - [
C 2] x86, amd-nb: Complete the rename of AMD NB and related code - [
] x86, AMD, PCI: Add AMD northbridge PCI device id for CPU families 12h and 14h - [
] x86, cacheinfo: Cleanup L3 cache index disable support - [
] x86, cpu: Only CPU features determine NX capabilities - [
] x86, dmi, debug: Log board name (when present) in dmesg/oops output - [
] x86, hwmon: Add core threshold notification to therm_throt.c - [
] x86: Make relocatable kernel work with new binutils - [
D] x86: Make tsc=reliable override boot time stability checks - [
] x86: mrst: Add audio driver bindings - [
] x86, mrst: Add explanation for using 1960 as the year offset for vrtc - [
] x86: mrst: Add Moorestown specific reboot/shutdown support - [
C 2] x86/mrst: Add SFI platform device parsing code - [
N] x86: mrst: Add vrtc driver which serves as a wall clock device - [
D] x86, NMI: Add back unknown_nmi_panic and nmi_watchdog sysctls - [
] x86, NMI: Add NMI symbol constants and rename memory parity to PCI SERR - [
] x86, NMI: Add priorities to handlers - [
1] x86, nmi_watchdog: Remove the old nmi_watchdog - [
C] x86: OLPC: convert olpc-xo1 driver from pci device to platform device - [
] x86, olpc: Speed up device tree creation during boot - [
C N] x86/platform: Add Eurobraille/Iris power off support - [
N] x86: platform: Move iris to x86/platform where it belongs - [
C] x86: this_cpu_cmpxchg and this_cpu_xchg operations - [
] x86: Unify "numa=" command line option handling - [
] x86: Use PCI method for enabling AMD extended config space before MSR method - [
1] x86: Use this_cpu_ops to optimize code - [
] x86, UV, BAU: Extend for more than 16 cpus per socket
- [
] Added video data to support tvout on rx51 - [
C 2] ARM: 6384/1: Remove the domain switching on ARMv6k/v7 CPUs - [
CDN1] ARM: 6396/1: Add SWP/SWPB emulation for ARMv7 processors - [
C N] ARM: 6447/3: sa1100: Put nanoEngine support back in the kernel - [
N1] ARM: 6458/1: pcmcia: Adds nanoEngine PCMCIA support. - [
C N1] ARM: 6459/2: sa1100: Add nanoEngine PCI support. - [
C] ARM: 6487/1: add CONFIG_CRASH_DUMP to Kconfig - [
C] ARM: 6511/1: ftrace: add ARM support for C version of recordmcount - [
N] ARM: 6514/1: mach-shmobile: Add zboot support for SuperH Mobile ARM - [
N] ARM: 6515/1: Add zboot support for SuperH Mobile ARM - [
C] ARM: 6532/1: Allow machine to specify it's own IRQ handlers at run-time - [
C N3] ARM: Add support for the display controllers in VT8500 and WM8505 - [
] ARM: cns3xxx: Add architecture definition for EHCI/OHCI controller - [
N] ARM: CPU hotplug: add Versatile Express hotplug CPU support - [
C 1] ARM: DMA: add support for DMA debugging - [
C N] ARM: Dove: add support for CM-A510 machine. - [
] ARM: Dove: add support for GPIOs 64-71 - [
N1] ARM: Dove: add support for multi-purpose pins configuration - [
C] ARM: ftrace: enable function graph tracer - [
] ARM: ftrace: function graph tracer support - [
] ARM i.MX51: Add ipu clock support - [
9] ARM i.MX51: Full iomux support - [
C] ARM i.MX53: enable fec driver on EVK board - [
C] ARM i.MX53 enable i2c on EVK board - [
C N] ARM i.MX53 enable LOCO board bootup - [
C] ARM i.MX53 enable sdhc support on EVK board - [
C N] ARM i.MX53 enable SMD board bootup - [
C] ARM i.MX53 enable spi on EVK board - [
C N1] ARM i.MX53: Make MX53 EVK bootable - [
N5] ARM: imx: Add core definitions for MX53 - [
C N2] ARM: imx: fix name for functions adding sdhci-esdhc-imx devices - [
C 1] ARM: imx: move mx25 support to mach-imx - [
C] ARM: imx/mx25_3ds: Add USB support - [
C] ARM: imx/mx27_3ds: Add debug board support - [
C] ARM: imx/mx27_3ds: Add PMIC support - [
C] ARM: imx/mx27_3ds: Add USB OTG support - [
C] ARM: imx/mx27_3ds: Add watchdog support - [
] ARM: mach-shmobile: Add eMMC support through MMCIF on AG5EVM - [
C N] ARM: mach-shmobile: Add mackerel board support - [
C N9] ARM: mach-shmobile: Add sh73a0 pinmux support - [
C] ARM: mach-shmobile: Enable SMP support - [
C N2] ARM: mach-shmobile: Initial AG5 and AG5EVM support - [
] ARM: mach-shmobile: mackerel: Add Accelerometer sensor support - [
] ARM: mach-shmobile: mackerel: Add FSI-AK4643 support - [
] ARM: mach-shmobile: mackerel: Add GPS support - [
] ARM: mach-shmobile: mackerel: Add HDMI sound support - [
] ARM: mach-shmobile: mackerel: add HDMI video support - [
] ARM: mach-shmobile: mackerel: Add keypad tca6408a support - [
] ARM: mach-shmobile: mackerel: Add LCDC support - [
] ARM: mach-shmobile: mackerel: Add LEDs support - [
] ARM: mach-shmobile: mackerel: Add lost GPIO_FN_LCDD 18 - 23 - [
N] ARM: mach-shmobile: mackerel: Add mackerel defconfig - [
] ARM: mach-shmobile: mackerel: Add mmcif support - [
] ARM: mach-shmobile: mackerel: Add sdhi support - [
] ARM: mach-shmobile: mackerel: Add SMSC support - [
] ARM: mach-shmobile: mackerel: Add support get_cd in CN23 - [
] ARM: mach-shmobile: mackerel: Add touchscreen ST1232 support - [
] ARM: mach-shmobile: mackerel: Add USB1(Host) support - [
N] ARM: mach-shmobile: mackerel: Add zboot support - [
] ARM: mach-shmobile: Mackerel VGA camera support - [
] ARM: mach-shmobile: sh7372 Enable SDIO IRQs for Mackerel - [
N1] ARM: mach-shmobile: sh73a0 INTCS support - [
] ARM: mach-shmobile: sh73a0 TMU support - [
N] ARM: mach-shmobile: SMP base support - [
C N] ARM: mmp: append brownstone support - [
] ARM: mx28: update clock and device name for dual fec support - [
C 1] ARM: mx3: introduce SOC_IMX31 and SOC_IMX35 - [
C] ARM: mx3/mx31_3ds: Add support for OTG host mode - [
C N8] arm: mx50: add core functions support except clock - [
C N] arm: mx50: add mx50 reference design board support - [
C 1] ARM: mx5: introduce SOC_IMX51 - [
C] ARM: mx5/mx51_babbage: Add watchdog support - [
N8] ARM: mxs: Add clock support - [
N2] ARM: mxs: Add core definitions - [
N1] ARM: mxs: Add gpio support - [
N] ARM: mxs: Add helper definition and function - [
N] ARM: mxs: Add initial mx23evk support - [
N] ARM: mxs: Add initial mx28evk support - [
N] ARM: mxs: Add interrupt support - [
N7] ARM: mxs: Add iomux support - [
N] ARM: mxs: Add low-level debug UART support - [
N] ARM: mxs: Add reset routines - [
N] ARM: mxs: Add static memory mapping - [
N] ARM: mxs: Add timer support - [
] arm: omap4: usb: add platform init code for EHCI - [
C N] arm: omap: add minimal support for RM-680 - [
C N] ARM: pxa: add iwmmx support for PJ4 - [
C] ARM: pxa: Colibri PXA320 PCMCIA driver - [
C 1] ARM: pxa: Push Colibri evalboard MFP into module files - [
C N2] ARM: pxa: support pxa95x - [
C N] ARM: pxa: Toradex Colibri PXA270 CF support - [
C N] ARM: S3C2416: Add platform helpers for setup SDHCI - [
C N] ARM: S5P: Add platform support for MIPI CSIS devices - [
C N1] ARM: S5P: Add Support System MMU - [
N1] ARM: S5PV310: Add support CPUFREQ - [
C N1] ARM: S5PV310: Add support Power Domain - [
C N] ARM: S5PV310: Add Support System MMU - [
C] ARM: S5PV310: Add support System MMU on SMDKV310 - [
C] ARM: S5PV310: Universal SDHCI devices support - [
C N] ARM: SAMSUNG: Add support for Power Domain control - [
C N] ARM: sched_clock: provide common infrastructure for sched_clock() - [
] ARM: ux500: prcmu db8500 v2 support - [
C N] AT91: Acme Systems FOX Board G20 board files - [
C N1] AT91: Support for gsia18s board - [
] da850-evm: add UI Expander pushbuttons - [
] davinci: am18x/da850/omap-l138: add support for higher speed grades - [
C] efikamx: add mmc support - [
C] efikamx: add spi nor support - [
C] Kirkwood: Add support for 6282 based QNAP devices - [
C N] msm: add SMP support for msm - [
] MSM: Add USB suport for QSD8x50 - [
] MSM: Add USB support for MSM7x30 - [
N1] msm: initial framebuffer support - [
] msm: iommu: Support cache-coherent memory access - [
C N1] msm: Secure Channel Manager (SCM) support - [
C] mx51_3ds: Add esdhc support - [
] mx51: add support for pwm - [
] MX51: Add support for usb host 2 - [
C] mx51_babbage: Add SPI flash support - [
N] mx51: support FIQ on TZIC, revised - [
] OMAP2430: hwmod data: add system DMA - [
] OMAP2+: hwmod: add support for per-class custom device reset functions - [
] OMAP3630: DSS2: Enable Pre-Multiplied Alpha Support - [
] OMAP3: Enable display on ZOOM2/3/3630SDP - [
] OMAP3: hwmod data: add system DMA - [
] OMAP3: PM: Adding debug support to Voltage and Smartreflex drivers - [
C N] OMAP3: PM: Adding smartreflex class3 driver - [
N] OMAP3: PM: Adding smartreflex device file. - [
C N3] OMAP3: PM: Adding smartreflex driver support. - [
] OMAP3: PM: Adding smartreflex hwmod data - [
N4] OMAP3: PM: Adding voltage driver support. - [
N] OMAP3: ZOOM2/3/3630SDP: Add display board file for OMAP3 - [
1] OMAP4: Adding voltage driver support - [
2] OMAP4: clockdomains: add OMAP4 PRCM data and OMAP4 support - [
] OMAP4: hwmod: add I2C hwmods for OMAP4430 - [
] OMAP4: hwmod: Add inital data for smartreflex modules. - [
1] OMAP4: hwmod data: Add IVA and DSP - [
] OMAP4: hwmod data: add system DMA - [
] omap4: l2x0: enable instruction and data prefetching - [
C N5] OMAP4: mux: Add CBL package data for OMAP4430 ES1 - [
C 4] OMAP4: mux: Add CBS package data for OMAP4430 ES2 - [
C N] omap4: opp: add OPP table data - [
C] OMAP4: Smartreflex framework extensions - [
N] OMAP7xx: GPIO: Introduce support for GPIO init - [
] OMAP: DMA: Introduce errata handling feature - [
C N1] OMAP: DSS2: Add generic DPI panel display driver - [
C N1] OMAP: DSS2: Add NEC NL8048HL11-01B display panel - [
C 1] OMAP: DSS2: remove generic DPI panel driver duplicated panel drivers - [
CDN1] omap: opp: add OMAP3 OPP table data and common init - [
] OMAP: PM: implement context loss count APIs - [
N] OMAP: powerdomain: Arch specific funcs for state control - [
1] spi: davinci: let DMA operation be specified on per-device basis - [
C N1] spi/dw_spi: add DMA support - [
N] ux500: Add DMA support for U5500 - [
N] ux500: Add eMMC support in U5500. - [
C] ux500: allow 5500 and 8500 to be built together - [
] ux500: mop500: add TC35892 and MicroSD slot support
PPC
- [
] powerpc/4xx: Add Canyonlands suspend and idle support - [
] powerpc/4xx: Add Kilauea suspend and idle support - [
CDN1] powerpc/4xx: Add suspend and idle support - [
C] powerpc/512x: add MPC8308 dma support - [
C] powerpc/5xxx: extend mpc8xxx_gpio driver to support mpc512x gpios - [
] powerpc/83xx: add DMA controller to mpc8308 device-tree node - [
C N1] powerpc: Add support for new hcall H_BEST_ENERGY - [
N] powerpc: Add support for popcnt instructions - [
] powerpc: Add VPHN firmware feature - [
] powerpc: Enable 64kB pages and 1024 threads in pseries config - [
D] powerpc: Fix two typos in Documentation/powerpc/booting-without-of.txt - [
D] powerpc/pseries: Add kernel parameter to disable batched hcalls
Various
- [
C N1] Blackfin: DNP5370: new board port - [
] LEON: added raw AMBA vendor/device number to find TIMER, IRQCTRL - [
C] m68knommu: add support for the ColdFire 547x family of processors - [
] m68knommu: create optimal separate instruction and data cache for ColdFire - [
C] m68knommu: support ColdFire caches that do copyback and write-through - [
C] MIPS: add CONFIG_VIRTUALIZATION for virtio support - [
C N] MIPS: Add generic support for multiple machines within a single kernel - [
C N4] MIPS: Add initial support for the Atheros AR71XX/AR724X/AR931X SoCs - [
] MIPS: Add LDX and LWX instructions to uasm. - [
C N] MIPS: ath79: add common GPIO buttons device - [
C N] MIPS: ath79: add common GPIO LEDs device - [
C N] MIPS: ath79: add common SPI controller device - [
] MIPS: ath79: add common watchdog device - [
C N] MIPS: ath79: add common WMAC device for AR913X based boards - [
C N1] MIPS: ath79: add GPIOLIB support - [
C N] MIPS: ath79: Add initial support for the Atheros AP81 reference board - [
C N] MIPS: ath79: add initial support for the Atheros PB44 reference board - [
C N] MIPS: ath79: utilize the MIPS multi-machine support - [
C N] MIPS: jump label: Add MIPS support. - [
] of/flattree: Add non-boottime device tree functions - [
N9] of/flattree: Update dtc to current mainline. - [
1] S390: dasd: add High Performance FICON multitrack support - [
1] S390: irq: have detailed statistics for interrupt types - [
] S390: Randomize lower bits of stack address - [
] S390: Randomize mmap start address - [
] S390: zcrypt: Introduce check for 4096 bit support. - [
] S390: zcrypt: support for 4096 bit keys for cex3a - [
C] sh: Add a new mach type for alpha project boards. - [
] sh: Add EHCI support for SH7786. - [
C N] sh: Add support for AP-SH4A-3A board. - [
C N] sh: Add support for AP-SH4AD-0A board. - [
C] sh: Enable optional gpiolib for all CPUs with pinmux tables. - [
C N2] sh: machvec IO death. - [
C] sh: support XZ-compressed kernel. - [
] SPARC/LEON: added support for IRQAMP IRQ Controller - [
C] um: mark CONFIG_HIGHMEM as broken
Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)