Kernel-Log – Was 2.6.37 bringt (4): Architektur- und Infrastruktur-Code
Zum Kernel stieĂźen erste Teile der UnterstĂĽtzung zum Betrieb als Xen-Host (Dom0). LZO-Komprimierung soll den Wechsel in den und aus dem Ruhezustand beschleunigen. Nach jahrelanger Arbeit kommen fast alle Bereiche des Kernels nun ohne das Big Kernel Lock (BKL) aus.
- Thorsten Leemhuis
Bei der Freigabe von 2.6.37-rc6 hat Linus Torvalds vergangene Woche nochmal betont, den Linux-Kernel 2.6.37 nach den Urlaubstagen rund um den Jahreswechsel freigeben zu wollen. Zudem laufe es derzeit nicht ganz so ruhig, wie er es gerne hätte – das gilt vermutlich auch für den in Kürze erwartete siebte Vorabversion, denn kürzlich wurde eine Neuerung rückgängig gemacht, die die Verteilung der Hardware-Ressourcen hatte verbessern sollen.
Einen Überblick über diese und zahlreiche anderen Änderungen rund um den plattformspezifischen und Infrastruktur-Code des Kernels liefert der folgende vierte Teil der Kernel-Log-Mini-Serie "Was 2.6.37 bringt". Der erste Teil der Serie hatte sich bereits mit den Änderungen rund um Grafik-Hardware beschäftigt, der zweite mit denen rund um Dateisysteme und der dritte mit Anpassungen am Netzwerk- und Storage-Code. Zwischen den Jahren folgt der fünfte und letzte Teil, der sich mit weiteren Treibern und der sie umgebenden Kernel-Subsysteme beschäftigt.
Bye bye Big Kernel Lock
Einer Neuerung von 2.6.37 ließ Linus Torvalds besondere Aufmerksamkeit zukommen, indem er sie bei der Vorstellung der ersten Vorabversion von 2.6.37 explizit erwähnte: Die Kernbereiche des Linux-Kernels sind nun nicht mehr auf das Big Kernel Lock (BKL) angewiesen. Dabei handelt es sich um eine Locking-Technik aus den Anfangszeiten der Multiprozessor-Unterstützung von Linux, die Konflikte beim gleichzeitigen Zugriff auf zentrale Datenstrukturen im Kernel vermeidet. Sie war damals vergleichsweise einfach umsetzbar, sperrt aber subsystemübergreifend – das wirkt sich bei Systemen mit vielen Prozessorkernen negativ auf die Performance aus und kann zu langen Latenzen bei Systemaufrufen führen, die nicht nur im Echtzeit-Umfeld unerwünscht sind.
Über eine neue Option lassen sich jetzt sogar Kernel komplett ohne BKL konfigurieren. Auf eine Handvoll noch auf das BKL angewiesene Treiber und Dateisysteme muss man dann aber verzichten – die meisten sind für aktuelle Systeme eher uninteressant, wenn man vom UDF-Dateisystem absieht. Patches, damit auch das unter anderem für manche DVDs benötigte Dateisystem ohne das BKL arbeitet, kamen aber zu spät zur Aufnahme bei 2.6.37 und dürften in 2.6.38 einziehen.
Prozess-Management und Tracing
Der Scheduler versucht nun ein Verschieben von Echtzeit-Tasks auf andere Prozessorkerne zu vermeiden. Bei der Prozessverteilung rechnet der Scheduler die Zeit, die der Prozessor mit der Verarbeitung von IRQs verbraucht, nicht mehr dem gerade aktiven jeweiligen Prozess zu, damit der nicht weniger Zeit als vorgesehen erhält.
Über den Schalter "-V" kann das Probe-Subkommando von Perf nun an Probe-Points alle lokalen Variablen auflisten; mit Hilfe von "--externs" lassen sich alle globalen Variablen auflisten, die zugänglich sind. Neu ist auch die rudimentäre Unterstützung für Module in "perf probe".
Die neuen Jump-Label (u. a. 1, 2, 3, 4, 5) sollen den Overhead rund um die An- und Ausschaltfunktionen für Tracepoints weiter verringern – Details erläutert ein kurzer Artikel bei LWN.net. Im Feldtest zeigte sich allerdings, dass das Ganze doch noch nicht wie gewollt funktioniert, daher wird die Technik vor der Fertigstellung von 2.6.37 möglicherweise noch deaktiviert.
Security
Der Crypto-Daemon des Kernels bietet nun ein Interface für AEAD (Authenticated Encryption with Associated Data). Über einen Sysctl-Aufruf lässt sich nun festlegen, ob normale Anwender oder nur solche mit der Capability CAP_SYS_ADMIN Zugriff auf die Syslog-Informationen haben, die sich mit dmesg auslesen lassen; das soll Angriffe erschweren, die Informationen aus dem Syslog zur Hilfe nehmen.
Ursprünglich sollten Lesebeschränkungen für /proc/kallsyms Angreifern das Leben weiter erschweren – die Änderung wurde aufgrund von Problemen mit Userland-Anwendungen aber zurückgezogen. Hintergründe dazu liefert LWN.net im Artikel "Making attacks a little harder"; einige Tage nach Rücknahme der Änderung wurde eine Umsetzung mit Capabilities vorgeschlagen, doch auch die fand fürs erste keinen Anklang.
Virtualisierung
Unter den von den Xen-Entwicklern für Linux 2.6.37 beigesteuerten Änderungen war auch der "Initial Domain Support", der den Kernel um Funktionen zum Betrieb als Dom0 erweitert (u. a. 1, 2, 3, 4, 5, 6, 7). Xen-Anwendern ist das aber fürs erste keine große Hilfe, da der Treiber zum Aufsetzen der Xen-Backends fehlt, über die die Gastsysteme auf Datenträger und Netzwerk zugreifen. Die Xen-Entwickler planen, den dafür zuständigen Code zur Aufnahme bei 2.6.38 einzusenden, sodass mit dieser Version der Dom0-Betrieb möglich sein könnte. Beim diesem und dem jetzt in den Kernel integrierten Xen-Code handelt es sich jedoch um eine abgespeckte Variante, die weniger Funktionen bietet als aktuelle Xen-Versionen oder der XenServer von Citrix.
[pagebreak ACPI, PCI und mehr]
ACPI und PCI
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.
Verschiedenes
- 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.
[pagebreak Die kleinen Perlen]
Die kleinen Perlen
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 Hilfetexte und Konfigurationsoptionen 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 etwa 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, PNP
- [
CÂ Â 1]Â ACPI ac/battery/sbs: sysfs I/F always built in, procfs I/F disabled by default - [
   1] ACPI / ACPICA: Defer enabling of runtime GPEs (v3) - [
   Â] ACPI ac: update AC status upon sysfs query - [
   Â] ACPI: add FW_BUG to OSI(Linux) message - [
   Â] ACPI: Add interfaces for ioremapping/iounmapping ACPI registers - [
   Â] ACPI battery: support percentage battery remaining capacity - [
   Â] ACPI battery: update status upon sysfs query - [
  N3] ACPICA/ACPI: Add new host interfaces for _OSI support - [
   Â] ACPICA: Add ACPI_INLINE configuration parameter - [
   Â] ACPICA: Add repair for _HID and _CID strings - [
   Â] ACPICA: Add Vista SP2 to supported _OSI strings - [
  N2] ACPICA: Obsolete the acpi_os_derive_pci_id OSL interface - [
   Â] ACPICA: Update version to 20100806 - [
   Â] ACPICA: Update version to 20100915 - [
   Â] ACPICA: Update version to 20101013 - [
   Â] ACPI: debugfs custom_method open to non-root - [
   Â] ACPI: Maintain a list of ACPI memory mapped I/O remappings - [
   Â] ACPI: Make Embedded Controller command timeout delay configurable - [
CÂ Â Â]Â ACPI: Only processor needs CPU_IDLE - [
   Â] ACPI: Page based coalescing of I/O remappings optimization - [
   Â] PNPACPI: cope with invalid device IDs - [
   Â] PNP: log PNP resources, as we do for PCI
BKL removal
- [
   Â] autofs4: Only declare function when CONFIG_COMPAT is defined - [
   Â] autofs: Only declare function when CONFIG_COMPAT is defined - [
   2] BKL: Explicitly add BKL around get_sb/fill_super - [
   Â] BKL: Remove BKL from afs - [
   Â] BKL: Remove BKL from Amiga FFS - [
   Â] BKL: Remove BKL from autofs4 - [
   Â] BKL: Remove BKL from BFS - [
   Â] BKL: Remove BKL from cgroup - [
   Â] BKL: Remove BKL from CifsFS - [
   Â] BKL: Remove BKL from do_new_mount() - [
   Â] BKL: Remove BKL from ecryptfs - [
   Â] BKL: Remove BKL from ext2 filesystem - [
   Â] BKL: Remove BKL from ext3 fill_super() - [
   Â] BKL: Remove BKL from ext3_put_super() and ext3_remount() - [
   Â] BKL: Remove BKL from ext4 filesystem - [
   Â] BKL: Remove BKL from fat - [
   Â] BKL: remove BKL from freevxfs - [
   Â] BKL: Remove BKL from HFS - [
   Â] BKL: Remove BKL from isofs - [
   Â] BKL: Remove BKL from jffs2 - [
   Â] BKL: Remove BKL from JFS - [
   5] BKL: Remove BKL from ncpfs - [
   Â] BKL: Remove BKL from NILFS2 - [
   Â] BKL: Remove BKL from NTFS - [
   Â] BKL: Remove BKL from OCFS2 - [
   Â] BKL: remove BKL from qnx4 - [
   Â] BKL: Remove BKL from squashfs - [
   Â] BKL: Remove BKL from USB gadgetfs - [
   Â] blktrace: remove the big kernel lock - [
   6] block: autoconvert trivial BKL users to private mutex - [
   Â] dabusb: remove the BKL - [
   5] drivers: autoconvert trivial BKL users to private mutex - [
   1] fs/locks.c: prepare for BKL removal - [
   Â] hpet: kill BKL, add compat_ioctl - [
   Â] init/main.c: remove BKL notations - [
   Â] ipmi: autoconvert trivial BKL users to private mutex - [
   9] llseek: automatically add .llseek fop - [
   Â] lockd: Mostly remove BKL from the server - [
CÂ Â Â]Â lockd: push lock_flocks down - [
CÂ Â Â]Â locks: turn lock_flocks into a spinlock - [
   Â] mac: autoconvert trivial BKL users to private mutex - [
CÂ Â 1]Â [media] v4l: kill the BKL - [
   Â] mtd: autoconvert trivial BKL users to private mutex - [
   Â] ncpfs: Lock socket in ncpfs while setting its callbacks - [
   Â] Phonet: add to MAINTAINERS and add myself - [
   Â] rtmutex-tester: make it build without BKL - [
   2] scsi: autoconvert trivial BKL users to private mutex - [
   Â] sunrpc: remove the big kernel lock - [
   1] V4L/DVB: bttv: fix driver lock and remove explicit calls to BKL [   1] V4L/DVB: em28xx: remove BKL
Crypto, Security
- [
CÂ N2]Â crypto: omap-aes - OMAP2/3 AES hw accelerator driver - [
   Â] MAINTAINERS: Add maintainer entries for padata/pcrypt - [
CÂ Â Â]Â move async raid6 test to lib/Kconfig.debug - [
   3] SELinux: allow userspace to read policy back out of the kernel - [
  N1] selinux: fast status update interface (/selinux/status) - [
   Â] selinux: implement mmap on /selinux/policy
Memory Management
- [
 D Â] delay-accounting: reimplement -c for getdelays.c to report information on a target command - [
 D Â] doc: clarify the behaviour of dirty_ratio/dirty_bytes - [
   Â] HWPOISON/signalfd: add support for addr_lsb - [
   Â] mm: add account_page_writeback() - [
   Â] mm: compaction: fix COMPACTPAGEFAILED counting - [
 DNÂ] mm: highmem documentation - [
   Â] mm: retry page fault when blocking on disk transfer - [
   Â] oom: add per-mm oom disable count - [
   Â] oom: avoid killing a task if a thread sharing its mm cannot be killed - [
 DNÂ] oom: document obsolete oom_adj tunable - [
   Â] oom: kill all threads sharing oom killed task's mm - [
   1] slub: Dynamically size kmalloc cache allocations - [
CÂ Â Â]Â slub: Enable sysfs support for !CONFIG_SLUB_DEBUG - [
   Â] SLUB: Optimize slab_free() debug check - [
   1] writeback: do not sleep on the congestion queue if there are no congested BDIs or if significant congestion is not being encountered in the current zone
PCI, PCMCIA
- [
   1] genirq: Implement a sane sparse_irq allocator - [
   Â] genirq: Implement irq reservation - [
   Â] genirq: Implement sane enumeration - [
CÂ Â Â]Â genirq: Provide config option to disable deprecated code - [
CÂ NÂ]Â genirq: Provide Kconfig - [
CÂ Â 1]Â genirq: Remove the now unused sparse irq leftovers - [
 D Â] genirq-update-kerneldoc.patch - [
   Â] MAINTAINERS: Add IRQ subsystem - [
   Â] PCI: add PCI vendor id for STmicroelectronics - [
   Â] PCI: add quirk for non-symmetric-mode irq routing to versions 0 and 4 of the MCP55 northbridge - [
   Â] PCI: Add support for polling PME state on suspended legacy PCI devices - [
   Â] PCI: Export some PCI PM functionality - [
   Â] PCI: kill BKL in /proc/pci - [
CÂ Â Â]Â PCI: OLPC: Only enable PCI configuration type override on XO-1 - [
   Â] PCI/PCIe/AER: Disable native AER service if BIOS has precedence - [
   Â] PCI: read current power state at enable time - [
CÂ N2]Â pci root complex: support for tile architecture - [
CÂ Â Â]Â PCI: update Intel chipset names and defines - [
 D 8] pcmcia: convert pcmcia_request_configuration to pcmcia_enable_device - [
 D 4] pcmcia: do not use win_req_t when calling pcmcia_request_window() - [
   4] pcmcia: introduce autoconfiguration feature - [
 D 9] pcmcia: use autoconfiguration feature for ioports and iomem - [
   Â] /proc/stat: fix scalability of irq sum of all cpu - [
   Â] /proc/stat: scalability of irq num per cpu - [
CÂ N1]Â spi: add spi_tegra driver - [
CÂ N2]Â spi/fsl_spi: add eSPI controller support - [
   Â] spi/imx: Support different fifo sizes - [
   2] spi/pl022: add PrimeCell generic DMA support - [
CÂ N4]Â spi/topcliff: Add topcliff platform controller hub (PCH) spi bus driver - [
CÂ Â Â]Â spi/topcliff: Tidy up Kconfig help text - [
   Â] x86: avoid E820 regions when allocating address space - [
   Â] x86: avoid high BIOS area when allocating address space - [
  NÂ] x86: avoid low BIOS area when allocating address space - [
   Â] x86/PCI: irq and pci_ids patch for Intel Patsburg DeviceIDs
Power Management
- [
   Â] [CPUFREQ] add sampling_down_factor tunable to improve ondemand performance - [
   Â] intel_idle: add initial Sandy Bridge support - [
 D Â] PM: Add sysfs attr for rechecking dev hash from PM trace - [
   Â] PM / Hibernate: Fix memory corruption related to swap - [
   Â] PM / Hibernate: Restore old swap signature to avoid user space breakage - [
   Â] PM / Hibernate: Use async I/O when reading compressed hibernation image - [
CDN4]Â PM: Introduce library for device-specific OPPs (v7) - [
CDÂ Â]Â PM / OPP: Hide OPP configuration when SoCs do not provide an implementation - [
 D 1] PM / Runtime: Add no_callbacks flag - [
   1] PM / Runtime: Merge synchronous and async runtime routines [ D 3] PM / Wakeup: Introduce wakeup source objects and event statistics (v3)
Scheduler
- [
   Â] sched: Add book scheduling domain - [
   Â] sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time - [
   Â] sched: Comment updates: fix default latency and granularity numbers - [
  NÂ] sched: Create special class for stop/migrate work - [
   Â] sched: Cure more NO_HZ load average woes - [
   Â] sched: Drop all load weight manipulation for RT tasks - [
   Â] sched: Fix idle balancing - [
   Â] sched: Fix softirq time accounting - [
   Â] sched: Force balancing on newidle balance if local group has capacity - [
   Â] sched: Give CPU bound RT tasks preference - [
   Â] sched: Increment cache_nice_tries only on periodic lb - [
   Â] sched: Remove branch hints within context_switch() - [
   Â] sched: Remove irq time from available CPU power - [
   Â] sched: Try not to migrate higher priority RT tasks
Tracing
- [
CÂ Â Â]Â coredump: default CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y - [
  N2] ftrace: Add C version of recordmcount compile time code - [
   Â] ftrace/MIPS: Add module support for C version of recordmcount - [
   Â] irq: Add tracepoint to softirq_raise - [
CÂ NÂ]Â jump label: Add sparc64 support - [
CDNÂ]Â kdb: Add kdb kernel module sample - [
   Â] kdb: Allow kernel loadable modules to add kdb shell functions - [
   Â] kgdbts: prevent re-entry to kgdbts before it unregisters - [
 D Â] kprobes: Update document about irq disabled state in kprobe handler - [
   Â] lockdep: Add improved subclass caching - [
  NÂ] netdev: Add tracepoints to netdev layer - [
   Â] oprofile, x86: Adding backtrace dump for 32bit process in compat mode - [
   Â] oprofile, x86: Add support for AMD family 12h - [
   Â] oprofile, x86: Add support for AMD family 14h - [
   Â] oprofile, x86: Add support for IBS branch target address reporting - [
   Â] oprofile, x86: Add support for IBS periodic op counter extension - [
  N1] perf: Add a script to show packets processing - [
   Â] perf hists browser: Introduce "expand/collapse all callchains" action - [
   Â] perf: Optimize context ops - [
   Â] perf: Optimize sw events - [
   Â] perf: Per cpu-context rotation timer - [
   Â] perf probe: Support global variables - [
  NÂ] perf python scripting: Add futex-contention script - [
   1] perf: Remove the sysfs bits - [
   5] perf: Rework the PMU methods - [
   Â] perf scripting: Shut up 'perf record' final status - [
   Â] perf: Support for callchains merge - [
   Â] perf tools: Add --tui and --stdio to choose the UI - [
   Â] perf tools: Document event modifiers - [
   Â] perf trace scripting: remove system-wide param from shell scripts - [
   Â] perf trace: update Documentation with new perf trace variants - [
   Â] perf trace: update usage - [
   Â] perf ui browser: Add routines to compactly specify exit keys - [
   2] perf, x86, Pentium4: Add RAW events verification - [
   Â] skb: Add tracepoints to freeing skb - [
   Â] tracing: Add funcgraph-irq option for function graph tracer. - [
   Â] tracing: Graph support for wakeup tracer - [
   Â] tracing, perf: Add more power related events - [
   Â] tracing/sched: Add sched_pi_setprio tracepoint - [
 D 3] tracing, vmscan: add trace events for LRU list shrinking
Virtualization
- [
   Â] KVM: create aggregate kvm_total_used_mmu_pages value - [
 D Â] KVM: document 'kvm.mmu_audit' parameter - [
 D Â] KVM: Document that KVM_GET_SUPPORTED_CPUID may return emulated values - [
 D Â] KVM: fix the description of kvm-amd.nested in documentation - [
   Â] KVM: MMU: Add infrastructure for two-level page walker - [
CÂ Â Â]Â KVM: MMU: support disable/enable mmu audit dynamicly - [
 DNÂ] KVM: PPC: Add Documentation about PV interface - [
 D Â] KVM: PPC: Add documentation for magic page enhancements - [
 D Â] KVM: PPC: Add get_pvinfo interface to query hypercall instructions - [
 D Â] KVM: PPC: Add mtsrin PV code - [
 D Â] KVM: PPC: Document KVM_INTERRUPT ioctl - [
   Â] KVM: PPC: Expose magic page support to guest - [
CÂ NÂ]Â KVM: PPC: Generic KVM PV guest support - [
  N1] KVM: PPC: Implement hypervisor interface - [
   Â] KVM: PPC: Introduce shared page - [
   Â] KVM: PPC: KVM PV guest stubs - [
   Â] KVM: PPC: Magic Page Book3s support - [
   Â] KVM: S390: Add virtio hotplug add support - [
   Â] KVM: SVM: Implement MMU helper functions for Nested Nested Paging - [
   Â] KVM: SVM: Initialize Nested Nested MMU context on VMRUN - [
   Â] KVM: SVM: Report Nested Paging support to userspace - [
   Â] KVM: x86: Add clock sync request to hardware enable - [
   Â] KVM: x86: Add helper functions for time computation - [
 DN3] KVM: x86: Add timekeeping documentation - [
   Â] KVM: x86 emulator: add bsf/bsr instruction emulation - [
   Â] KVM: x86 emulator: add CALL FAR instruction emulation (opcode 9a) - [
   Â] KVM: x86 emulator: add CBW/CWDE/CDQE instruction emulation - [
   Â] KVM: x86 emulator: Add into, int, and int3 instructions (opcodes 0xcc-0xce) - [
   Â] KVM: x86 emulator: Add IRET instruction - [
   Â] KVM: x86 emulator: add JrCXZ instruction emulation - [
   Â] KVM: x86 emulator: add LDS/LES/LFS/LGS/LSS instruction emulation - [
   Â] KVM: x86 emulator: add LOOP/LOOPcc instruction emulation - [
   Â] KVM: x86 emulator: add setcc instruction emulation - [
   Â] KVM: x86 emulator: add Src2Imm decoding - [
   Â] KVM: x86 emulator: add SrcImmU16 operand type - [
   Â] KVM: x86 emulator: Add stc instruction (opcode 0xf9) - [
   Â] KVM: x86 emulator: Add unary mul, imul, div, and idiv instructions - [
   Â] KVM: x86 emulator: add XADD instruction emulation - [
   Â] KVM: x86 emulator: implement CALL FAR (FF /3) - [
   Â] KVM: x86 emulator: implement CWD (opcode 99) - [
   Â] KVM: x86 emulator: implement DAS (opcode 2F) - [
   Â] KVM: x86 emulator: implement IMUL REG, R/M, imm8 (opcode 6B) - [
   Â] KVM: x86 emulator: implement IMUL REG, R/M, IMM (opcode 69) - [
   Â] KVM: x86 emulator: implement IMUL REG, R/M (opcode 0F AF) - [
   Â] KVM: x86 emulator: implement RDTSC (opcode 0F 31) - [
   Â] KVM: x86 emulator: implement RET imm16 (opcode C2) - [
   Â] KVM: x86 emulator: implement SCAS (opcodes AE, AF) - [
   Â] KVM: x86 emulator: support byte/word opcode pairs - [
   1] KVM: x86 emulator: use correct type for memory address in operands - [
 D Â] KVM: x86: explain 'no-kvmclock' kernel parameter - [
   Â] KVM: x86: Fix deep C-state TSC desynchronization - [
   Â] KVM: X86: Report SVM bit to userspace only when supported - [
   Â] KVM: x86: Robust TSC compensation - [
   Â] KVM: x86: Warn about unstable TSC - [
 D Â] lguest: replace VIRTIO_F_BARRIER support with VIRTIO_F_FLUSH support - [
   Â] MAINTAINERS: Add myself for Xen PCI and Xen SWIOTLB maintainer. - [
   Â] MAINTAINERS: Add myself to the Xen Hypervisor Interface and remove Chris Wright. - [
 D Â] paravirt: noreplace-paravirt is implemented for x86 and ia-64 - [
  NÂ] xen: add /proc/xen/xsd_{kva,port} to xenfs - [
   Â] xen: add support for PAT - [
   Â] xenbus: Xen paravirtualised PCI hotplug support. - [
CÂ Â 1]Â xen: convert p2m to a 3 level tree - [
  NÂ] xen: define BIOVEC_PHYS_MERGEABLE() - [
   Â] xen: implement "extra" memory to reserve space for pages not present at boot - [
   Â] xen: re-enable boot-time ballooning - [
  NÂ] xen: register xen pci notifier
Various
- [
  NÂ] atomic: add atomic_inc_not_zero_hint() - [
   Â] Audit: add support to match lsm labels on user audit messages - [
 D Â] cgroup: add clone_children control file - [
   Â] cgroup: make the mount options parsing more accurate - [
 D Â] cgroup: notify ns_cgroup deprecated - [
   Â] Coccinelle: Add a new mode named 'chain' - [
  NÂ] Coccinelle: Add api/kstrdup.cocci - [
  NÂ] Coccinelle: Add api/memdup.cocci - [
  NÂ] Coccinelle: Add api/memdup_user - [
   Â] Coccinelle: Add contextual message - [
  NÂ] Coccinelle: Add free/kfree.cocci - [
  NÂ] Coccinelle: Add iterators/fen.cocci - [
  NÂ] Coccinelle: Add iterators/itnull.cocci - [
  NÂ] Coccinelle: Add iterators/list_entry_update.cocci - [
  NÂ] Coccinelle: Add locks/call_kern.cocci - [
  NÂ] Coccinelle: Add locks/double_lock.cocci - [
  NÂ] Coccinelle: Add locks/mini_lock.cocci - [
  NÂ] Coccinelle: Add misc/doubleinit.cocci - [
  NÂ] Coccinelle: Add misc/ifcol.cocci - [
  NÂ] Coccinelle: Add null/eno.cocci - [
  NÂ] Coccinelle: Add null/kmerr.cocci - [
  NÂ] Coccinelle: Find doubled arguments to boolean or bit operators. - [
  NÂ] Coccinelle: Find nested lock+irqsave functions that use the same flags variables. - [
 D Â] Coccinelle: Fix documentation - [
 D Â] Coccinelle: Update documentation - [
   Â] debugfs: mark me as the maintainer - [
 D Â] docbook: add idr/ida to kernel-api docbook - [
 D Â] Documentation/development-process: more staging info - [
 D Â] Documentation/development-process: use -next trees instead of staging - [
 D Â] Documentation/filesystems/proc.txt: improve smaps field documentation - [
 D 1] Documentation/kbuild: major edit of modules.txt sections 1-4 - [
 D 1] Documentation/kbuild: major edit of modules.txt sections 5-8 - [
 D Â] Documentation/kbuild: modules.txt cleanup - [
 D Â] Documentation: make configfs example code simpler, clearer - [
 D Â] Documentation/timers/hpet_example.c: add supporting info for hpet_example - [
 D Â] documentation: update sysrq.txt magic sysrq keys - [
CÂ Â 1]Â driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices - [
   Â] Dynamic Debug: Initialize dynamic debug earlier via arch_initcall - [
   Â] Dynamic Debug: Split out query string parsing/setup from proc_write - [
   Â] fanotify: implement fanotify listener ordering - [
   Â] hpet: fix unwanted interrupt due to stale irq status bit - [
   Â] IMA: use rbtree instead of radix tree for inode information cache - [
   Â] kbuild: fix oldnoconfig to do the right thing - [
CÂ N1]Â kbuild: migrate all arch to the kconfig mainmenu upgrade - [
 D Â] kbuild: Really don't clean bounds.h and asm-offsets.h - [
   Â] kconfig: allow build-time definition of the internal config prefix - [
   Â] kconfig: Allow frontends to display messages themselves - [
   Â] kconfig: allow PACKAGE to be defined on the compiler's command-line - [
   Â] kconfig: expand by default the rootmenu's prompt - [
   Â] kconfig: Fix missing declaration of variable $dir in streamline_config.pl - [
   Â] kconfig: Fix streamline_config to read multi line deps in Kconfig files - [
   Â] kconfig: Have streamline_config process menuconfigs too - [
 D Â] kconfig: implement the `mainmenu' directive - [
   Â] kconfig: Make localmodconfig handle environment variables - [
   5] kconfig: regen parser - [
   Â] kconfig: rephrase help text not to mention the internal prefix - [
   1] kconfig: rephrase help texts/comments not to include the package name - [
   Â] kconfig: replace KERNELVERSION usage by the mainmenu's prompt - [
CÂ Â Â]Â lib/Kconfig.debug: add list_sort debugging switch - [
CÂ Â Â]Â namespaces: remove pid_ns and net_ns experimental status - [
   Â] nconfig: Fix help for choice menus - [
CÂ Â Â]Â percpu_counter: add debugobj support - [
   Â] percpu: Optimize __get_cpu_var() - [
CÂ Â 1]Â percpu: use percpu allocator on UP too - [
CÂ Â 1]Â percpu: use percpu allocator on UP too - [
 D Â] /proc/pid/pagemap: document in Documentation/filesystems/proc.txt - [
 D Â] /proc/pid/smaps: export amount of anonymous memory in a mapping - [
   Â] /proc/swaps: support polling - [
  NÂ] ramoops: use the platform data structure instead of module params - [
CÂ Â Â]Â rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter - [
   Â] rcu: add boot parameter to suppress RCU CPU stall warning messages - [
 D Â] rcu: add shiny new debug assists to Documentation/RCU/checklist.txt - [
 D Â] rcu: Add tracing data to support queueing models - [
   Â] rcu: allow RCU CPU stall warning messages to be controlled in /sys - [
CÂ Â Â]Â rcu: Allow RCU CPU stall warnings to be off at boot, but manually enablable - [
   Â] rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU - [
 D Â] rcu: document ways of stalling updates in low-memory situations - [
CÂ Â Â]Â rcu: Fix RCU_FANOUT help message - [
CÂ Â Â]Â rcu: make CPU stall warning timeout configurable - [
CÂ Â Â]Â rcu: restrict TREE_RCU to SMP builds with !PREEMPT - [
 D Â] rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes - [
   Â] README: cite nconfig - [
   Â] Revert "kconfig: Temporarily disable dependency warnings" - [
   Â] ring-buffer: Micro-optimize with some strategic inlining - [
   Â] ring-buffer: Pass delta by value and not by reference - [
   Â] ring-buffer: Pass timestamp by value and not by reference - [
   Â] scripts/extract-ikconfig: add support for bzip2, lzma and lzo - [
   Â] scripts/get_maintainer.pl: add default --git-fallback, remove default --git - [
   Â] scripts/get_maintainer.pl: Add --git-blame --rolestats "Authored lines" information - [
   Â] scripts/get_maintainer.pl: add interactive mode - [
   3] scripts/get_maintainer.pl: improve --interactive UI - [
   Â] scripts/setlocalversion: update comment - [
  NÂ] TTY: create drivers/tty and move the tty core files there - [
  NÂ] TTY: create drivers/tty/vt and move the vt code there - [
CÂ Â 3]Â Update broken web addresses in arch directory. - [
CÂ Â 9]Â Update broken web addresses in the kernel. - [
 D Â] Update call_rcu() usage, add synchronize_rcu() - [
 D Â] Update documentation to note the passage of INIT_RCU_HEAD() - [
CÂ Â Â]Â vmcore: it is not experimental any more - [
   Â] vmlinux.lds.h: lower init ramfs alignment to 4 - [
 D Â] workqueue: add and use WQ_MEM_RECLAIM flag - [
   Â] writeback: add nr_dirtied and nr_written to /proc/vmstat - [
   Â] writeback: add /sys/devices/system/node/<node>/vmstat - [
   Â] writeback: report dirty thresholds in /proc/vmstat - [
   Â] xconfig: Change the titlebar if using Qt3
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)