Kernel-Log – Was 2.6.33 bringt (4): Architektur und Virtualisierung
Dank einiger Änderungen am x86- und KVM-Code soll der Kernel-eigene Hypervisor schneller arbeiten. Abermals überarbeitet und erheblich erweitert haben die Kernel-Entwickler die recht junge Tracing-Infrastruktur. Der Power- und PowerPC-Code unterstützt nun auch die Spielkonsolen Gamecube und Wii.
- Thorsten Leemhuis
Bei der Freigabe von Linux 2.6.33-rc7 Ende vergangener Woche zeigt sich Linus Torvalds ein wenig unzufrieden, weil der Hauptentwicklungszweig derzeit mehr Fehler zeige, als ihm lieb ist. Er forderte die Entwickler auf, sich die Liste mit bekannten Fehlern der Vorabversion von 2.6.33 nochmal genauer anzusehen und deutet an, dass er vermutlich noch eine achte Vorabversion freigeben wird, bevor er Linux 2.6.33 veröffentlicht.
Der folgende vierte Teil der Mini-Serie "Was 2.6.33 bringt" widmet sich den Neuheiten rund um den Code für Architektur-Unterstützung, Kernel-Infrastruktur, Tracing und Virtualisierung. Den bedeutsamsten Änderungen rund um die Netzwerkunterstützung, Dateisysteme, das Storage-Subsystem und Grafikhardware hatten sich der erste, zweite und dritte Teil der Serie gewidmet.
Virtualisierung
Zahlreiche Verbesserungen gab es an der maßgeblich von Red Hat vorangetriebenen Virtualisierungslösung KVM (Kernel-based Virtual Machine). So interagiert der Kernel-eigene Hypervisor jetzt besser mit dem für das Hoch- und Runtertakten moderner Prozessoren zuständigen Cpufreq-Framework. Einige andere Änderungen an KVM sollen zusammen mit Anpassungen im X86-Code den Verwaltungsaufwand beim Context Switch reduzieren und dadurch die Performance verbessern (1, 2).
KVM blockiert die Virtualisierungsfunktionen moderner CPUs jetzt nur noch, wenn sie auch gebraucht werden; dadurch arbeiten andere Virtualisierungslösungen nun auch ohne ein vorheriges Entladen der für KVM zuständigen Kernel-Module, sofern KVM nicht aktiv ist. Speicherbereiche, die das bei Linux 2.6.32 eingeführte und im Umfeld von KVM entstandene KSM (Kernel Shared Memory) zusammengelegt hat, kann der Kernel jetzt in den Swap-Speicher verlagern. Verbesserungen gab es zudem für den Betrieb von paravirtualisierten Xen-Gastsystemen.
Der mit KVM verwandte, maßgeblich von Novell vorangetriebene sowie speziell auf High Performance Computing (HPC) und Echtzeitanwendungen ausgelegte Hypervisor AlacrityVM war zur Aufnahme bei 2.6.33 vorgeschlagen, blieb aber genau wie das verteilte Dateisystem Ceph außen vor. Laut Torvalds waren dafür einerseits Zeitgründe verantwortlich, anderseits hätten sich zu wenig Kernel-Entwickler und Distributoren für die Aufnahme stark gemacht.
Zuvor hatten bereits einige Kernel-Hacker den AlacrityVM-Entwicklern unzureichende Kooperation mit den KVM-Entwicklern vorgeworfen, was zu einer recht langen Diskussion führte; LWN.net hat die Hintergründe in einem Artikel zusammengefasst.
Tracing
Abermals stark erweitert und überarbeitet haben die Entwickler die Tracing-Infrastruktur rund um Ftrace und die früher Performance Counter genannten Performance Events (1, 2, 3). Über die neuen "kprobe-based event tracer" lassen sich Tracepoints nun zur Laufzeit an nahezu beliebige Stellen des Kernels einfügen (Dokumentation); nutzen können Anwender diese Infrastruktur mit dem Linux beiliegenden Programm "perf" und dessen neuem Unterkommando "probe".
Details zu einer früheren Entwicklerversion des nun aufgenommenen Codes liefert ein im vergangenen Sommer bei LWN.net veröffentlichter Artikel. Dort finden sich auch drei Artikel von Steven Rostedt, in der er die Möglichkeiten der teilweise von ihm mitentwickelten Tracing-Funktionen des Linux-Kernel beschreibt – der neuste stammt aus dem Januar und beschäftigt sich mit einigen fortgeschrittenen Einsatzmöglichkeiten der Tracing-Infrastruktur, verweist aber auf zwei frühere Artikel, die Grundlagen erläutern.
Durch einige andere Änderungen am Kernel lassen sich nun mehrere Prozesse gleichzeitig observieren oder die Nutzung des Big Kernel Lock (BKL) besser diagnostizieren. Die Analysedaten kann man in Zukunft über reguläre Ausdrücke filtern; ausgebaut haben die Kernel-Entwickler auch die Unterstützung für Perl-Skripte beim Perf-Kommando (u. a. 1, 2, 3, Dokumentation). Dessen mit 2.6.33 neue Unterkommando "bench" bietet einige Funktionen zur Geschwindigkeitsmessung (u. a. 1 2, 3, 4, Dokumentation). Neu sind auch die Perf-Unterkommandos "kmem" und "diff" sowie bessere Unterstützung für Kernel-Module in Perf.
Linux auf Gamecube und Wii
Der Architektur-Code für Power- und PowerPC-CPUs bringt nun Unterstützung für die von Nintendo gefertigten Spielkonsolen Gamecube und Wii mit (u. a. 1, 2); weitere Details dazu finden sich auf der Webseite des Projekts GC-Linux und über die Commit-Links am Ende dieses Artikels.
Kernel und Initial-Ramdisk (Initrd) lassen sich bei ARM-, MIPS und x86-Systemen nun mit LZO komprimieren, das laut Commit-Kommentar zwar nicht so effizient packt wie Gzip, aber auf ARM-Systemen deutlich schneller zu entpacken sei (1, 2, 3, 4, 5). Am ARM-Code gab es wieder eine große Zahl an Verbesserungen für dutzende verschiedene Systeme mit ARM-CPU oder -Kern; neu ist etwa die Unterstützung für den von Marvell gefertigten SOC (System-on-a-Chip) Dove (88AP510).
Auch der Code für andere Architekturen wurde um Unterstützung für Prozessoren und Systeme erweitert, von denen selbst viele eingefleischte Linux-Fans noch nie was gehört haben dürften – der MIPS-Code etwa wird ab Linux 2.6.33 Ciscos "Powertv cable settop box" unterstützen, die auf dem MIPS 24Kc basiert. Neu dabei ist auch Code für den Loongson 2F.
Im Umfeld der Realtime-Entwickler entstanden zahlreiche Änderungen, die die Nutzung des Big Kernel Lock (BKL) weiter reduzieren. Eine größere Umbenennung der Kernel-intern zum Locking kritischer Bereiche genutzten Spinlocks führt dazu, dass die mit aktivem Warten arbeitenden Sperrfunktionen, die auch in Zukunft nicht unterbrochen werden dürfen, nun arch_spinlock_t heißen. Diese Umstrukturierung erleichtert den Entwicklern der Echtzeitunterstützung für Linux die Arbeit erheblich und legt die Basis für den Umzug der "Sleeping Spinlocks" aus dem Realtime-/RT-Tree in den offiziellen Linux-Kernel.
Die Sleeping Spinlocks machen auch das Gros der Spinlocks unterbrechbar, die bislang durch aktives Warten versuchen, möglichst schnell exklusiven Zugriff auf gemeinsam genutzte Datenstrukturen zu bekommen – das ist der letzte größere Baustein für ordentliche Echtzeit-Eigenschaften, der dem offiziellen Linux-Kernel noch fehlt. Details zu der Umbenennung finden sich in einer kurzen Notiz bei LWN.net; zwei ältere Artikel liefern weitere Artikel zu den Sleeping Spinlocks und dem Entwicklungsstand des RT-Trees (1, 2).
ACPI, PCI und Power-Managent
Über Dateien im Sysfs lässt sich in Zukunft erkennen, falls das BIOS den Wechsel auf die maximale CPU-Frequenz in bestimmten Betriebsarten eines Gerätes via ACPI blockiert.
Rafael J. Wysocki hatte einige Patches zur Aufnahme eingesandt, durch die der Kernel einige Geräte beim Wechsel in oder aus dem Standby parallel statt sequenziell aufweckt oder schlafen legt. Das soll den Wechsel in oder aus dem Bereitschaftsmodus beschleunigen. Linus Torvalds wies die Änderungen aber mit recht deutlichen Worten als "völlig kaputt" zurück; Details dazu und den Patches liefert ein Artikel bei LWN.net.
Wysocki sparte die Änderungen daher fürs erste aus und übermittelte unter anderem einige Patches, die die bei 2.6.32 überarbeitete Infrastruktur zur Nutzung von Stromspartechniken von I/O-Geräten zur Laufzeit verbessern. Den Code zum "Asynchronous suspend and resume" hat er aber zwischenzeitlich überarbeitet und dürfte bei 2.6.34 einen weiteren Anlauf wagen.
Staccato
- Bei Scheduler gab es diesmal nur kleinere Änderungen.
- Das bei 2.6.32 eingeführte HWPOISON erhielt Fehlerkorrekturen und einige Verbesserungen.
- Bei der Kernel-Konfiguration lässt sich in Zukunft das vom Kernel Standardmäßig genutzte Linux Security Modules (LSM) festlegen.
- SELinux kann nun Klassen und Berechtigungen dynamisch beim Laden der Sicherheitsrichtlinien feststellen ("Modify SELinux to dynamically discover class and permission values upon policy load [...]").
- Durch die bei 2.6.33 neue Unterstützung für die PCLMULQDQ-Instruktion kann der Kernel bestimmte Aufgaben bei der Hash-Berechnung an Intel-Prozessoren auslagern, die diese Instruktion unterstützen.
Die kleinen Perlen
Viele weiteren nicht ganz so wichtige, 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 Kernel-Quellen auf Kernel.org. Im Webfrontend liefern normalerweise der Commit-Kommentar und der Patch selbst zahlreiche weitere Informationen zur jeweiligen Änderungen.
Crypto and Security
- crypto: hash - Remove legacy hash/digest code
- crypto: padlock-sha - Add import/export support
- LSM: Add security_path_chmod() and security_path_chown().
- LSM: Add security_path_chroot().
- remove CONFIG_SECURITY_FILE_CAPABILITIES compile option
- security/tomoyo: Add a special case to handle accesses through the internal proc mount.
- TOMOYO: Add recursive directory matching operator support.
Memory Management
- Documentation: ABI: /sys/devices/system/cpu/cpu#/node
- hugetlb: add nodemask arg to huge page alloc, free and surplus adjust functions
- hugetlb: add per node hstate attributes
- hugetlb: handle memory hot-plug events
- hugetlb: update hugetlb documentation for NUMA controls
- hugetlb: use only nodes with memory for huge pages
- HWPOISON: Add Andi Kleen as hwpoison maintainer to MAINTAINERS
- HWPOISON: add an interface to switch off/on all the page filters
- HWPOISON: add fs/device filters
- HWPOISON: add memory cgroup filter
- HWPOISON: add page flags filter
- HWPOISON: Add soft page offline support
- HWPOISON: Add unpoisoning support
- HWPOISON: limit hwpoison injector to known page types
- memcg: add mem_cgroup_cancel_charge()
- mm: add numa node symlink for cpu devices in sysfs
- mm: add numa node symlink for memory section in sysfs
- mm hugetlb: add hugepage support to pagemap
- nommu: fix malloc performance by adding uninitialized flag
- NOMMU: Optimise away the {dac_,}mmap_min_addr tests
- page-types: add standard GPL license header
- page-types: constify read only arrays
- page-types: learn to describe flags directly from command line
- page-types: unsigned cannot be less than 0 in add_page()
- page-types: whitespace alignment
- readahead: add blk_run_backing_dev
ACPI and PCI
- ACPI: add kernel tainting after overriding an ACPI control method
- ACPICA: Add more conversions to predefined name repair module
- ACPICA: Add repair for bad _BIF/_BIX packages
- ACPICA: Add repair for bad _FDE/_GTM buffers
- ACPICA: Add repair for bad _MAT buffers
- ACPICA: Add repair for predefined methods that must return sorted lists
- ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C
- ACPI: introduce kernel parameter acpi_sleep=sci_force_enable
- ACPI: support customizing ACPI control methods at runtime
- dmar: support for parsing Remapping Hardware Static Affinity structure
- intr-remap: generic support for remapping HPET MSIs
- ipmi: add PNP discovery (ACPI namespace via PNPACPI)
- PCI: add debug output for DMA mask info
- PCI: PCIe AER: honor ACPI HEST FIRMWARE FIRST mode
- PCI: support device-specific reset methods
- pcmcia: add new CIS access helpers
- pcmcia: autoload module pcmcia
- pcmcia: convert net pcmcia drivers to use new CIS helpers
- pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page()
- pcmcia: pcmcia_request_window() doesn't need a pointer to a pointer
- pcmcia: remove deprecated handle_to_dev() macro
- pcmcia: rework the irq_req_t typedef
- pcmcia/staging: update comedi drivers
- pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (char)
- pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (isdn)
- pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (net)
- pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (ray-cs.c)
- pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (scsi)
- pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (wireless)
- pcmcia: use dynamic debug in PCMCIA socket drivers
- PNP: add interface to retrieve ACPI device from a PNPACPI device
- thermal: add sanity check for the passive attribute
Power Management
- [CPUFREQ] Documentation: ABI: /sys/devices/system/cpu/cpu#/cpufreq/
- [CPUFREQ] Document units for transition latency
- [CPUFREQ] powernow-k6: set transition latency value so ondemand governor can be used
- PCI/PM: Use per-device D3 delays
- PM: Add flag for devices capable of generating run-time wake-up events
- PM: Add initcall_debug style timing for suspend/resume
- PM: Make the initcall_debug style timing for suspend/resume complete
- PM: Measure device suspend and resume times
- PM / Runtime: Make documentation of runtime_idle() agree with the code
- PM: Runtime PM documentation update
- PM / Runtime: Use device type and device class callbacks
- PM: Use pm_runtime_put_sync in system resume
Scheduler
- sched: Add pre and post wakeup hooks
- sched: Add USER_SCHED to feature removal list
- sched, cpuacct: Fix niced guest time accounting
- sched: Fix missing sched tunable recalculation on cpu add/remove
- sched: Make tunable scaling style configurable
- sched: Rate-limit newidle
Tracing
- Add a tracepoint for block request remapping
- Documentation: Update ftrace-design.txt
- Documentation: Update mmiotrace.txt
- Documentation: Update tracepoint-analysis.txt
- ftrace: add kernel command line graph function filtering
- hw-breakpoints: Add two reserved fields for future extensions
- hw-breakpoints: ftrace plugin for kernel symbol tracing using HW Breakpoint interfaces
- hw-breakpoints: introducing generic hardware breakpoint handler interfaces
- hw-breakpoints: Rewrite the hw-breakpoints layer on top of perf events
- hw-breakpoints: sample HW breakpoint over kernel data address
- hw-breakpoints: x86 architecture implementation of Hardware Breakpoint interfaces
- lockstat: Fix min, max times in /proc/lock_stats
- oprofile/x86: add Xeon 7500 series support
- perf: Add kernel side syscall events support for breakpoints
- perf: Add perf-probe document
- perf bench: Add "all" pseudo subsystem and "all" pseudo suite
- perf bench: Add new directory and header for new subcommand 'bench'
- perf bench: Add subcommand 'bench' to the Makefile
- perf buildid-list: New plumbing command
- perf/core: Provide a kernel-internal interface to get to performance counters
- perf kmem: Add help file
- perf kmem: Add --sort hit and --sort frag
- perf probe: Add glob matching support on --del
- perf probe: Add perf probe command support without libdwarf
- perf/probes: Support function entry relative line number
- perf/probes: Update Documentation/perf-probe.txt
- perf probe: Support --del option
- perf probe: Support event name for --add option
- perf probe: Support vmlinux on cwd by default
- perf sched: Add -C option to measure on a specific CPU
- perf sched: Add max delay time snapshot
- perf stat: Add branch performance metric
- perf timechart: Add a process filter
- perf tools: Add debugfs utility routines for perf
- perf tools: Add for_each macros for strlist
- perf tools: Add ia64 support for tools/perf/
- perf tools: Add support for breakpoint events in perf tools
- perf tools: Add V=2 option to help debug config issues
- perf tools: Create util/sort.and use it
- perf tools: Introduce bitmask'ed additional headers
- perf top: Support userspace symbols too
- perf trace: Add a scripts/perl/bin for perf trace shell scripts
- perf trace: Add filter Suppport
- perf trace: Add scripting ops
- perf trace/scripting: Add Fedora libperl install note to doc
- perf trace/scripting: Add 'record' and 'report' options
- perf trace/scripting: Add support for script args
- perf trace/scripting: Don't display 'scripting unsupported' msg unnecessarily
- perf trace/scripting: List available scripts
- powerpc: tracing: Add hypervisor call tracepoints
- powerpc: tracing: Add powerpc tracepoints for interrupt entry and exit
- powerpc: tracing: Add powerpc tracepoints for timer entry and exit
- rcu: Update trace.txt documentation for blocked-tasks lists
- rcu: Update trace.txt documentation to reflect recent changes
- selinux: drop remapping of netlink classes
- trace-kprobe: Support delete probe syntax
- tracing: Add kprobes event profiling interface
- tracing: Add pipe_close interface
- tracing: Add stack trace to irqsoff tracer
- tracing: allow to change permissions for text with dynamic ftrace enabled
- tracing/documentation: Cover new frame pointer semantics
- tracing: Document HAVE_SYSCALL_TRACEPOINTS needs
- tracing/kprobes: Add argument name support
- tracing/kprobes: Add event profiling support
- tracing/kprobes: Add $ prefix to special variables
- tracing/kprobes: Add probe handler dispatcher to support perf and ftrace concurrent use
- tracing/kprobes: Disable kprobe events by default after creation
- tracing/kprobes: Make special variable names more self-explainable
- tracing/kprobes: Remove '$ra' special variable
- tracing/kprobes: Rename Kprobe-tracer to kprobe-event
- tracing/kprobes: Show event name in trace output
- tracing/kprobes: Support custom subsystem for each kprobe event
- tracing: Kprobe-tracer supports more than 6 arguments
- tracing/profile: Add filter support
Virtualization
- core, x86: Add user return notifiers
- KVM: allow userspace to adjust kvmclock offset
- KVM: Enable 32bit dirty log pointers on 64bit host
- KVM: SVM: Add tracepoint for injected #vmexit
- KVM: SVM: Add tracepoint for invlpga instruction
- KVM: SVM: Add tracepoint for nested #vmexit
- KVM: SVM: Add tracepoint for nested vmrun
- KVM: SVM: Add tracepoint for skinit instruction
- KVM: SVM: Add tracepoint for #vmexit because intr pending
- KVM: SVM: Support Pause Filter in AMD processors
- KVM: VMX: Add support for Pause-Loop Exiting
- KVM: x86: Add KVM_GET/SET_VCPU_EVENTS
- KVM: x86 emulator: Add pusha and popa instructions
- KVM: x86: Extend KVM_SET_VCPU_EVENTS with selective updates
- KVM: Xen PV-on-HVM guest support
Architecture Support
X86
- core, x86: Add user return notifiers
- cs5535: add a generic MFGPT driver
- cs5535: drop the Geode-specific MFGPT/GPIO code
- x86: Add a Kconfig option to turn the copy_from_user warnings into errors
- x86: Add Dell OptiPlex 760 reboot quirk
- x86: Add new Intel CPU cache size descriptors
- x86: Add quirk for Intel DG45FC board to avoid low memory corruption
- x86: Allow x86-32 instruction decoder selftest on x86-64
- x86: AMD Geode LX optimizations
- x86/amd-iommu: Remove support for domain sharing
- x86, apic: Enable lapic nmi watchdog on AMD Family 11h
- x86, apic: Explain show_lapic= in kernel parameters list
- x86, apic: Limit apic dumping, introduce new show_lapic= setup option
- x86, apic: Use apic noop driver
- x86: arch specific support for remapping HPET MSIs
- x86: ASUS P4S800 reboot=bios quirk
- x86, compress: Force i386 instructions for the decompressor
- x86: Disable HPET MSI on ATI SB700/SB800
- x86: Eliminate redundant/contradicting cache line size config options
- x86, hpet: Disable per-cpu hpet timer if ARAT is supported
- x86: Instruction decoder API
- x86, mce: Thermal monitoring depends on APIC being enabled
- x86, mm: Report state of NX protections during boot
- x86, msr: Add support for non-contiguous cpumasks
- x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage
- x86: Reenable TSC sync check at boot, even with NONSTOP_TSC
- x86: Regex support and known-movable symbols for relocs, fix _end
- x86: Relegate CONFIG_PAT and CONFIG_MTRR configurability to EMBEDDED
- x86: Remove usedac in feature-removal-schedule.txt
- x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG)
- x86, setup: Store the boot cursor state
- x86: UV RTC: Add clocksource only boot option
- x86: X86 instruction decoder build-time selftest
ARM
- add gpiolib support to ucb1x00
- Add KZM-ARM11-01 support
- ALSA: ARM: add Raumfeld audio support
- AM35xx: Add support for AM3517 EVM board
- ARM: 5770/1: Add DMA Engine support to at91sam9g45
- ARM: 5775/1: ep93xx: add keypad core support
- ARM: 5778/1: AT91: Add cpuidle support
- ARM: 5782/1: at91: support for eco920
- ARM: 5786/1: Introduce plat-nomadik, MTU code re-organization
- ARM: 5791/1: ARM: MM: use 64bytes of L1 cache on plat S5PC1xx
- ARM: 5813/1: SA1100: h3100/h3600: add htc-egpio driver
- ARM: 5823/1: SA1100: h3100/h3600: add support for gpio-keys
- ARM: 5831/1: ARM: U8500 core machine support
- ARM: 5834/1: ARM: U8500 integrate to ARM architecture
- ARM: 5841/1: a driver for on-chip ETM and ETB
- ARM: 5842/1: add spi resource support for nuc900
- ARM: 5843/1: OMAP3: add AMBA devices for ETM and ETB
- ARM: 5846/1: MAINTAINERS: Add arm Nomadik support
- ARM: Add an earlyprintk debug console
- ARM: Add Tauros2 L2 cache controller support
- Armadillo500 Add i2c second bus support.
- Armadillo500 Add support for onboard GPIO Buttons.
- Armadillo500 Add support for Seiko Instruments S-35390A rtc over i2c.
- ARM: H1940: add lcd/backlight device definition
- ARM: H1940: add mmc device
- ARM: H1940: Convert h1940 bluetooth driver to rfkill
- ARM: Kill CONFIG_CPU_32
- ARM: Kirkwood: Add LaCie Network Space v2 support
- ARM: Kirkwood: Add MPP36 for QNAP TS-11x/TS-21x
- ARM: Kirkwood: Add QNAP TS-110/TS-210 to Kconfig help text
- ARM: Kirkwood: Add support for QNAP TS-41x Turbo NAS
- ARM: MX3: add MMC/SDHC support to mx31lite-db.c
- ARM: MX3: add NOR flash support via physmap mtd driver
- ARM: MX3: Add pad config for MMC pins on lilly-db
- ARM: MX3: add SPI devices for mx31lite
- ARM: MX3: add SPI functions for lilly1131-db
- ARM: MX3: add support for GPIO LEDs on litekit db
- ARM: MX3: add support for mc13783 on lilly-db
- ARM: MX3: add USB functions for mx31litekit
- ARM OMAP3: RX-51 board - add initialization of gpio keys
- ARM: OMAP4: PM: Add init api for DPLL nodes
- ARM: OMAP4: PM: Adds PRM register defs for OMAP4
- ARM: OMAP4: PM: Adds PRM register shift and mask bits
- ARM: OMAP4: PM: Add support for OMAP4 dpll api's
- ARM: OMAP4: PM: OMAP4 clock tree and clkdev registration
- ARM: OSIRIS: DVS (Dynamic Voltage Scaling) supoort.
- ARM: pxa: add apmu clock support in mmp
- ARM: pxa: add missing irq events for pxa168
- ARM: pxa: add nand device and clock for pxa168/pxa910
- ARM: pxa: add nand support in aspensite board
- ARM: pxa: add onenand support for SAAR
- ARM: pxa: add onenand support for TTC-DKB
- ARM: pxa/cm-x300: add ac97 controller registration
- ARM: pxa/cm-x300: add da9030 support
- ARM: pxa/cm-x300: add PWM backlight support
- ARM: pxa/cm-x300: add PWM backlight support
- ARM: pxa/cm-x300: add support for PXA310 cpu
- ARM: pxa/cm-x300: add TDO35S lcd support
- ARM: pxa/cm-x300: add Wi2Wi chip (Bluetooth and WiFi) initialization
- ARM: pxa/cm-x300: enable USB port 2 for PXA300
- ARM: pxa/ezx: add camera support for A780 and A910 EZX phones
- ARM: pxa/ezx: add leds-lp3944 support for A910 EZX phone
- ARM: pxa: introduce CONFIG_MACH_ZYLONITE{300,320} for CPU_PXA* removing
- ARM: pxa: make CPU_PXA* to be selectable hidden options
- ARM: pxa: re-order platforms in Kconfig and Makefile
- ARM: pxa/treo: add Palm Centro 685 support
- ARM: pxa/treo: generalisation of Treo680 code
- ARM: pxa/zeus: basic support for Arcom Zeus SBC
- ARM: S3C24XX: Add documentation for arch/arm/plat-s3c24xx/include/plat/mci.h
- ARM: S3C24XX: machine support for Simtec Audio
- ARM: S3C64XX: add HSMMC2 support
- ARM: S3C64XX: add support for all group 0 external interrupts
- ARM: S3C: Add NAND device platform data set call
- ARM: S5PC1XX: add cpu idle and system reset support
- ARM: S5PC1XX: add GPIO L banks to register definition
- ARM: S5PC1xx: add gpiolib and external/gpio interrupt support
- ARM: S5PC1xx: add platform helpers for i2c adapter devices
- ARM: S5PC1xx: add platform helpers for s3c-fb device
- ARM: S5PC1xx: add platform helpers for SDHCI host controllers
- ARM: SAMSUNG: Add plat-samsung as starting point for plat-s3c* moves
- AT91: add touchscreen support for at91sam9g45ekes
- at91: at91sam9g20ek modify dual slot evaluation kit
- collie: support pda_power driver
- da850/omap-l138: add callback to control LCD panel power
- DA8xx/OMAP-L1xx: Add high speed SD/MMC capabilities
- davinci: add CPU idle driver
- davinci: Add DA830/OMAP-L137 EVM specific pinmux setting for McASP1
- davinci: add generic CPUFreq driver for DaVinci
- davinci: Add LCD Graphics support for DA830/OMAP-L137 EVM
- davinci: Add MMC/SD support for DA830/OMAP-L137 EVM
- davinci: Add NAND support for DA830/OMAP-L137 EVM platform
- davinci: Add RTC support for DA8xx/OMAP-L13x SoC's
- davinci: Add support for Sharp LCD035Q3DG01 graphical LCD
- davinci: da830: add support for new silicon revisions
- davinci: DA830/OMAP-L137 EVM: use runtime detection for UI card
- davinci: DA850/OMAP-L138: add frequency scaling support
- davinci: DA850/OMAP-L138: add voltage regulation support
- davinci: DA850/OMAP-L138 EVM: add support for TPS65070 PMIC
- davinci: DA850/OMAP-L138 EVM: register for CPUFreq support
- davinci: DA850/OMAP-L138 EVM: register for cpuidle support
- davinci: DA8XX/OMAP-L1XX: add support for cpuidle driver register
- Davinci: DM365: Add platform device for McBSP
- Davinci: DM365: Enable DaVinci Key Scan support for DM365 EVM
- DaVinci: DM365: Enable DaVinci RTC support for DM365 EVM
- davinci: dm646x: Add support for 3.x silicon revision
- davinci: dm646x-evm: Add platform data for NAND
- davinci: DMx and da8xx defconfig updates
- davinci: fb: add cpufreq support
- davinci: Initial support for Neuros OSD2 platform.
- davinci: mmc: add cpufreq support
- davinci: RMII support for DA850/OMAP-L138 EVM
- davinci: support changing the clock rate in clock framework
- davinci: support re-parenting a clock in the clock framework
- iop: clockevent support
- iop: clocksource support
- iop: enable generic time
- IXP4xx: Extend PCI MMIO indirect address space to 1 GB.
- msm: add minimal board file for HTC Dream device
- mx25: add support for FEC on i.MX25
- mx27: Add basic support for Maxtrack i-MXT TD60
- mx27: mxt_td60: Add support to SD/MMC
- mx31moboard: camera support
- mx31moboard: SPI and MC13783 voltage regulator support
- mx31moboard: support for pin linked for battery presence check
- mx31moboard: support for usbh1 and usbh2
- mx35: add usb gadget support in mx35pdk.c
- mx3: Add SSI pins to iomux table
- mx3: add support for the mt9v022 camera sensor to pcm037 platform
- MXC: Add a digital audio multiplexer driver
- MXC: Add support for ULPI Viewports
- mxc: mx1/mx2 DMA: add a possibility to create an endless DMA transfer
- MXC NFC: Add the clock resource to support NFC in i.MX35
- omap1: Add board support and LCD for HTC Herald
- omap1: Add omap7xx USB support
- omap1: mmc: Add platform init for omap7xx
- omap1: omap_udc: Add clocking and disable vbus sense for omap7xx
- omap3630: Add HSMMC related checks
- omap: 3630sdp: introduce 3630 sdp board support
- omap3: Add CompuLab CM-T35 board support
- omap3: Add CompuLab CM-T35 defconfig
- omap3: Add minimal IGEP v2 support
- omap3: Allow EHCI to be built on OMAP3
- omap3: Board file of Always Innovating OMAP3-based Touch Book
- omap3evm: Add board revision function
- omap3evm: ehci: Update EHCI support on OMAP3EVM (Rev >= E)
- OMAP3 hwmod: Add automatic OCP_SYSCONFIG AUTOIDLE handling
- omap3: Introduce OMAP3630
- OMAP3: PM: CORE domain off-mode support
- OMAP3: PM: CPUidle: Add new lower-latency C1 state
- OMAP3: PM: CPUidle: base driver and support for C1-C2
- OMAP3: PM: CPUidle: support retention and off-mode C-states
- OMAP3: PM: MPU off-mode support
- OMAP3 PM: off-mode support for HS/EMU devices
- omap3: rx51: Add SDRAM init
- omap3: rx51: Add wl1251 wlan driver support
- omap3: zoom: Introduce zoom3 board support
- OMAP7XX: Clocks: Add ck_ref and armxor
- OMAP7XX: Clocks: Add omap850 support
- OMAP7XX: McBSP: Add omap850 support
- OMAP7XX: PM: Add omap850 support
- OMAP850: PM: Add an ARCH_OMAP850 check
- omap: Add OMAP4 L3 and L4 peripherals.
- omap: Add platform init code for EHCI driver
- OMAP: DSS2: Documentation for DSS2
- omap: introduce OMAP_LL_DEBUG_NONE DEBUG_LL config
- omap: mailbox: Add build specific changes to support omap mailbox
- omap: mailbox: Add resources and mailbox register base address for OMAP4 mailbox
- omap: mailbox: Adds code changes to support OMAP4 mailbox
- omap: mailbox: OMAP4 Mailbox-driver Patch to support tasklet implementation
- omap: mux: Add 36xx CBP package support
- omap: mux: Add new style pin multiplexing code for omap3
- omap: mux: Add new style pin multiplexing data for 34xx
- OMAP: Platform support for twl4030_codec MFD
- OMAP: Platform support for twl4030_codec MFD
- OMAP: PM: DMA context save/restore for off-mode support
- pxa3xx_nand: add new nand chip support
- pxa3xx_nand: update dependancy to support ARCH_MMP
- pxafb: add transparency field to pxafb_mode_info struct
- revert "ARM: pxa/cm-x300: add PWM backlight support"
- SMDKC100: add I2C0 and I2C1 buses support
- SMDKC100: add SDHCI controllers 0, 1 and 2 support
- SMDKC100: enable S3C FrameBuffer
Power
- collie: add battery driver
- Include Book3s_64 target in buildsystem
- MAINTAINERS: Add PowerPC patterns
- mpc52xx/wdt: OF property to enable the WDT on boot
- powerpc/44x: Extend Katmai dts for ADMA and RAID56 support
- powerpc/5200: add LocalPlus bus FIFO device driver
- powerpc/5200: Add mpc5200-spi (non-PSC) device driver
- powerpc/83xx: Add power management support for MPC83xx QE boards
- powerpc/85xx/86xx: Add suspend/resume support
- powerpc/85xx: Added P1020RDB Platform support.
- powerpc/85xx: Add power management support for MPC85xxMDS boards
- powerpc/86xx: Add power management support for MPC8610HPCD boards
- powerpc/86xx: Enable NVRAM on GE Fanuc's SBC610
- powerpc/86xx: Support for NVRAM on GE Fanuc's PPC9A
- powerpc/86xx: Support for NVRAM on GE Fanuc's SBC310
- powerpc: Add kdump support to Collaborative Memory Manager
- powerpc: broadway processor support
- powerpc/chrp: Use the same RTAS daemon as pSeries
- powerpc/fsl: Add PCI device ids for new QoirQ chips
- powerpc/fsl: try to explain why the interrupt numbers are off by 16
- powerpc: gamecube: bootwrapper bits
- powerpc: gamecube: device tree
- powerpc: gamecube: platform support
- powerpc: gamecube/wii: declare as non-coherent platforms
- powerpc: gamecube/wii: do not include PCI support
- powerpc: gamecube/wii: early debugging using usbgecko
- powerpc: gamecube/wii: flipper interrupt controller support
- powerpc: gamecube/wii: introduce GAMECUBE_COMMON
- powerpc: gamecube/wii: udbg support for usbgecko
- powerpc: gamecube/wii: usbgecko bootwrapper console support
- powerpc: Make it possible to select hibernation on all PowerPCs
- powerpc: Make NR_IRQS a CONFIG option
- powerpc/mm: Allow more flexible layouts for hugepage pagetables
- powerpc: Move /proc/ppc64 to /proc/powerpc and add symlink
- powerpc/p4080: Add basic support for p4080ds platform
- powerpc/pseries: Add hooks to put the CPU into an appropriate offline state
- powerpc/pseries: Kernel DLPAR Infrastructure
- powerpc/qe: Add qe_upload_firmware() stub for non-QE builds
- powerpc: wii: bootwrapper bits
- powerpc: wii: device tree
- powerpc: wii: hollywood interrupt controller support
- powerpc: wii: platform support
- powerpc/windfarm: Add detection for second cpu pump
- pseries/pseries: Add code to online/offline CPUs of a DLPAR node
- sysfs/cpu: Add probe/release files
Others
- alpha: Add minimal support for software performance events
- alpha: add myself as a maintainer, and drop mention of 2.4
- avr32: add support for ATNGW100 mkII board
- bfin-otp: add BF51x to the supported arch list
- Blackfin: add an example showing how to use the gptimers API
- Blackfin: add an uncompressed vmImage target
- Blackfin: add support for the Acvilon BF561 board
- Blackfin: bf537-stamp: add ADF702x network driver resources
- Blackfin: bf537-stamp: add ADP8870 resources
- Blackfin: bf537-stamp: add ADXL346 orientation sensing support
- Blackfin: bf537-stamp: add CAN resources
- Blackfin: bf538: add support for extended GPIO banks
- Blackfin/ipipe: introduce support for CONFIG_MPU
- Blackfin: MPU: support XIP in async flash memory
- Blackfin: punt cache lock documentation
- Blackfin: support smaller uncached DMA chunks for memory constrained systems
- ia64: convert to dynamic percpu allocator
- m68knommu: add uboot commandline argument passing support
- microblaze: Add IRQENTRY_TEXT to lds
- microblaze: Add PVR for Microblaze v7.30.a
- microblaze: Add TRACE_IRQFLAGS_SUPPORT
- microblaze: Core oprofile configs and hooks
- microblaze: Enable asm optimization only for HW with barrel-shifter
- microblaze: Enable DTC compilation
- microblaze: Extend cpuinfo for support write-back caches
- microblaze: ftrace: Add dynamic function graph tracer
- microblaze: ftrace: Add dynamic trace support
- microblaze: ftrace: add function graph support
- microblaze: ftrace: add static function tracer
- microblaze: Futex support
- microblaze: Lockdep support
- microblaze: preliminary enabling for LATENCYTOP support in Kconfig
- microblaze: Stack trace support
- microblaze: Support for WB cache
- microblaze: support U-BOOT image format
- MIPS: Add basic CPUFreq options.
- MIPS: Add support for GZIP / BZIP2 / LZMA compressed kernel images
- MIPS: Add support for uncached accelerated mappings.
- MIPS: eXcite: Remove platform.
- MIPS: Fix and enhance built-in kernel command line
- MIPS: Lemote 2F: Add a LEMOTE_MACH2F kernel option
- MIPS: Lemote 2F: Add basic CS5536 VSM support
- MIPS: Lemote 2F: Add cs5536 MFGPT timer support
- MIPS: Lemote 2F: Add IRQ support
- MIPS: Lemote 2F: Add Lynloong support
- MIPS: Lemote 2F: Add NAS support
- MIPS: Lemote 2F: Add PCI support
- MIPS: Lemote 2F: Add reset support
- MIPS: Lemote 2f: Enable legacy RTC driver
- MIPS: Loongson 2F: Add CPU frequency scaling support
- MIPS: Loongson 2F: Add suspend support framework
- MIPS: Loongson: Add serial port support
- MIPS: Move EARLY_PRINTK to Kconfig.debug
- MIPS: No longer hardwire CONFIG_EMBEDDED to y
- MIPS: Tracing: Add an endian argument to scripts/recordmcount.pl
- MIPS: Tracing: Add dynamic function graph tracer for MIPS
- MIPS: Tracing: Add dynamic function tracer support
- MIPS: Tracing: Add function graph tracer support for MIPS
- MIPS: Tracing: Add IRQENTRY_EXIT section for MIPS
- MIPS: Tracing: Add static function tracer support for MIPS
- MIPS: Yeeloong 2F: Add basic EC operations
- MIPS: Yeeloong 2F: Add board specific suspend support
- MIPS: Yeeloong 2F: Add LID open event as the wakeup event
- of/platform: Implement support for dev_pm_ops
- parisc: convert /proc/pdc/{lcd,led} to seq_file
- S390: cio: add per device initialization status flag
- S390: dasd: support DIAG access for read-only devices
- S390: Improve address space mode selection.
- S390: MAINTAINERS: Add s390 drivers block
- S390: zcrypt: add support for cex3 device types
- S390: zcrypt: special command support for cex3 exploitation
- sh: Add notifiers chains for cpu/board code
- sh: add SDHI1 support to ms7724se
- sh: Add SDHI power control support to Ecovec
- sh: add sleazy FPU optimization
- SH: add support for the RJ54N1CB0C camera for the kfr2r09 platform
- sh: dmaengine support for sh7724.
- sh: dmaengine support for SH7785
- sh: Don't default enable PMB support.
- sh: intc: dynamic IRQ support.
- sh: mach-ecevec24: Add SDHI support
- sh: mach-ecovec24: Add FSI sound support
- sh: mach-ecovec24: Add mt9t112 camera support
- sh: mach-ecovec24: Add tw9910 support
- sh: mach-ecovec24: Add USB1 gadget support
- sh: ms7724se: Add ak4642 support
- sh: ms7724se: Add runtime PM support for FSI
- sh: perf events: Add preliminary support for SH-4A counters.
- sh: perf events: Add support for SH7750-style counters.
- sh: perf events: Preliminary callchain support.
- sh: Prepare for dynamic PMB support
- sh: sh7724: Add SPU2 support
- sh: Support SCHED_MC for SH-X3 multi-cores.
- sparc64: Add syscall tracepoint support.
- sparc64: Faster early-boot framebuffer console.
- sparc64: Fully support both performance counters.
- sparc: Add alignment and emulation fault perf events.
- sparc,leon: Sparc-Leon SMP support
- sparc: Support for GRLIB APBUART serial port
Weitere Hintergründe und Informationen zu Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heiseopen. 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". Der Autor des Kernel-Logs zwitschert unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)