Kernel-Log – Was 3.3 bringt (3): Architektur und Infrastruktur
Änderungen am Code zur Speicherverwaltung sollen Ruckler während des Schreibens auf langsame Datenträger beseitigen und die Performance verbessern. Der Kernel bootet auf X86-EFI-Systemen ohne Boot-Loader direkt aus der Firmware; der ARM-Port unterstützt nun die Large Physical Address Extension (LPAE).
- Thorsten Leemhuis
Einige für Linux 3.3 vorgenommene Anpassungen sollen verschiedene Probleme aus der Welt schaffen, durch die Systeme in bestimmten Situationen ins Stocken geraten, während der Kernel große Datenmengen auf einen langsamen Datenträger (etwa einen USB-Stick) schreibt. Bereits 3.2 hatte Probleme dieser Art beseitigt, bei denen der Writeback-Code das Ruckeln verursachte – jetzt betreffen die Änderungen den Memory-Compaction-Code und beseitigen Probleme, die mit Transparent Huge Pages (THP) in Verbindung stehen.
LWN.net hat im November die Hintergründe in dem Artikel "Huge pages, slow drives, and long delays" thematisiert; das dort angesprochene Deaktivieren von "Synchronous Compaction" konnten die Entwickler durch einen Ansatz umgehen, den sie nach Erscheinen des Artikels entwickelt haben. Details und Messwerte zu den Auswirkungen liefert ein fast vierhundert Zeilen langer Kommentar eines Commits, der lediglich drei Zeilen entfernt, aber nur eine von mehreren Änderungen am Compaction-Code ist (u. a. 1, 2, 3, 4, 5, 6).
Eine andere Änderung am Memory-Management-Code soll eine weitere Ursache für Ruckler vermeiden helfen, die sich ebenfalls gerne beim Schreiben auf langsame Datenträger zeigte und mit der Writeback-Infrastuktur in Zusammenhang steht. Nebenbei kann sie beim Einsatz des Fuse-Treibers ntfs-3g die Schreib-Performance unter gewissen Bedingungen um zirka fünfzig Prozent steigern, wie Messwerte im Commit-Kommentar zeigen.
Entwicklungsstand
In der Nacht vom Samstag auf Sonntag hat Linus Torvalds die sechste Vorabversion von Linux 3.3 veröffentlicht. In der Freigabe-Mail erklärt er, der RC6 bringe lediglich kleine Korrekturen und Aufräumarbeiten; es sei so ruhig gewesen, dass dies die letzte Vorabversion sein könnte. Das hänge aber vom Verlauf der nächsten Woche ab; wenn es so ruhig bleibe, gebe es keinen besonderen Grund, den aktuellen Entwicklungszyklus nicht abzuschließen. Wahrscheinlich dürfte Linux 3.3 daher zum Anfang der nächsten Woche oder dem Beginn der Folgewoche erscheinen, sofern nicht noch größere Probleme auftauchen
Naturalisierung
Die Kernel-Entwickler haben für Linux 3.3 einige Änderungen ("Memory Control Group Naturalization Patches") aufgenommen, die den Verwaltungsaufwand des Cgroup-Controllers "memory" erheblich reduzieren sollen; das soll die Performance des Controllers zum Regulieren des Arbeitsspeicherkonsums verbessern, den einige Distributionen standardmäßig einsetzen (u. .a 1, 2, 3). Einige Hintergründe zu einem früheren Entwicklungsstand hat LWN.net im Mai letzten Jahres im Artikel "Integrating memory control groups" zusammengefasst.
Der Memory-Controller der Control Groups bietet bei Linux 3.3 Basis-Funktionen, um die Menge des Arbeitsspeichers zu begrenzen, den der Kernel selbst zur Verwaltung und Betrieb von Prozessen alloziert (1, 2); der im ersten Teil dieser Artikelserie erwähnte "TCP buffer size controller" nutzt diese Funktionen, um die Menge des Arbeitsspeichers zu begrenzen, den die bei der TCP-Kommunikation verwendeten Puffer belegen dürfen. Eine andere Anpassung beseitigt ein Performance-Problem im Readahead-Code, das sich zeigte, wenn ein Programm große Einheiten von schnellen Datenträger (etwa einer SSD) abforderte. Die Ursache war ein unerwünschter Nebeneffekt von Änderungen bei Linux 2.6.39; Hintergründe erläutert der LWN.net-Artikel "What happened to disk performance in 2.6.39".
Virtualisierung
Zum KVM-Code stieß unter anderem Code zum Bereitstellen einer Virtual Performance Monitoring Unit (PMU), die Gastsysteme für Performance-Analysen oder andere Tracing-Aufgaben nutzen können (u. a. 1, 2). Die Discard-Unterstützung im Xen-Code bietet nun eine optionale Funktion, um Daten in freigegebenen Bereichen zu zerstören ("discard support with secure erasing support"); einige weitere Xen-spezifische Änderungen erwähnt ein Git-Pull-Request von Oracle-Mitarbeiter Konrad Rzeszutek Wilk. Die Virtio-Treiber balloon, blk, console und net bringen nun alles für ACPI S4 Nötige mit; das ermöglicht einen Wechsel in den Ruhezustand (Hibernate) bei Gästen, die diese Datenaustausch-Schnittstellen verwenden.
Architektur-Code, Sicherheit, Verschiedenes
Architektur
Durch Einschalten der Konfigurationsoption "EFI_STUB" lassen sich ab Linux 3.3 x86-Kernel erzeugen, die eine EFI-Firmware direkt starten kann – man kann also auf einen Boot-Loader verzichten. Auf x86-Sytemen emuliert der Kernel nun standardmäßig die Verarbeitung der weitgehend von vDSO beerbten Schnittstelle vsyscall, über die Programme System-Aufrufe ("Syscalls") absetzen können; das soll die Sicherheit verbessern und war ursprünglich schon für eine frühere Kernel-Version geplant, wurde aber aufgrund von Problemen zurückgestellt. Neu in Linux 3.3 ist Basis-Unterstützung für das erst kürzlich spezifizierte und daher in der Praxis noch nicht anzutreffende ACPI 5.0 (u. a. 1, 2, 3).
Der ARM-Code kann jetzt die Large Physical Address Extension (LPAE) nutzen (u. a. 1, 2, 3), über die Betriebssysteme auf 32-Bit-ARM-v7-Kernen, die LPAE bieten, mehr als 4 GByte Arbeitsspeicher adressieren können. Der ARM-Code unterstützt nun das Audit-Subsystem und bietet Basis-Unterstützung für Nvidias SoC (System on a Chip) Tegra 3 (u. a. 1, 2).
Die "Was Linux 3.3 bringt"-Serie
Das Kernel-Log kann bereits jetzt einen Überblick über die wichtigsten Neuerungen der Mitte März erwarteten Linux-Version 3.3 geben, da alle größeren Neuerungen bereits in den ersten zwei Wochen der Entwicklung integriert wurden; Linux 3.3 befindet sich daher jetzt in der Stabilisierungsphase, in der normalerweise keine größeren Änderungen mehr einfließen.
Die Artikel zu den Neuerungen nehmen sich nach und nach den unterschiedlichen Funktionsbereichen des Kernels an:
In den kommenden Wochen folgen noch ein Artikel zu Treibern.
Der Code für die S390-Architektur kann nun bis zu 64 Terabyte Arbeitsspeicher adressieren; zuvor war bei 3,8 TByte Schluss. Die M68knommu-Architektur unterstützt nun die MMU (Memory Management Unit), die manche Prozessoren der vierten Coldfire-Generation von Freescale bieten. Mit Version 3.3 unterstützt der Linux-Kernel erstmals die C6X-Architektur, die einige der einfacheren Single- und Multicore-DSPs (Digital Signal Prozessors) von Texas Instruments aufweisen (u. a. 1).
Sicherheit
Dem Kernel erhielt eine auf GnuPG-Code basierende Bibliothek für Berechnungen mit MPI (Multi Precision Integers) (1, 2, 3, 4). Die gegen Angriffe schützenden Kernel-Techniken IMA (Integrity Measurement Architecture) und EVM (Extended Verification Module) können mit dieser Bibliothek RSA-Signaturen prüfen, um so die Unversehrtheit von Dateien zu testen (1, 2, 3, 4, 5). Während der Entwicklung von 3.3 wurden zudem Patches diskutiert, um mit dieser Infrastruktur auch Kernel-Module zu signieren; die Entwickler sind sich aber derzeit über einige Aspekte des Ansatzes uneinig.
In das Crypto-Subsystem zogen unter anderem Änderungen ein, die bestimmte Verschlüsselungs- und Signatur-Algorithmen beschleunigen sollen:
- serpent - add 8-way parallel x86_64/SSE2 assembler implementation
- serpent - add 4-way parallel i586/SSE2 assembler implementation
- serpent-sse2 - add lrw supportserpent-sse2 - add xts support
- twofish-x86_64-3way - add lrw support
- twofish-x86_64-3way - add xts support
Verschiedenes
- Durch einige Änderungen am Kernel-Code für ASPM (Active State Power Management) nutzt der Kernel 3.3 die PCIe-Stromspartechnik nun selbst dann, wenn es bestimmte Ungereimtheiten zwischen der Hardware-Konfiguration und den ASPM-Informationen gibt, die das BIOS dem Kernel meldet. Einige Wochen, nachdem diese Änderung für Linux 3.3 aufgenommen wurde, haben die Kernel-Entwickler sie auch bei den im Februar freigegeben Kernel-Versionen 3.0.20 und 3.2.5 eingebaut.
- Zu den Verbesserungen an der IOMMU-Infrastruktur zählen Unterstützung für die zweite Version von AMDs IOMMU-Implementation und die Möglichkeit, unterschiedlich große Speicherseiten zu handhaben. Der IOMMU-Code erhielt zudem einige Grundlagen zum Gruppieren und sicheren Isolieren von Geräten, was für das noch in Entwicklung befindliche VFIO (Virtual Function I/O) interessant ist. Laut der zugehörigen Dokumentation soll VFIO nicht nur die Funktionen zum Weiterreichen von Hardware-Komponenten an KVM-Gäste ersetzen, sondern auch das Userspace-Treiber-Framework UIO beerben, da VFIO solchen Treibern mehr Möglichkeiten bietet; LWN.net erläutert einige Hintergründe zu VFIO in einem Artikel.
- John Stultz hat ein Skript eingebracht, mit dem sich mehrere Dateien mit Kernel-Konfigurations-Optionen zu einer ".config" zusammenführen lassen. Viele Distributionen nutzen solche Skripte beim Bauen ihrer Kernel. Fedora-Kernel-Entwickler Josh Boyer hat allerdings festgestellt, dass das für Linux 3.3 aufgenommene Skript in seinem Testszenario über 25 Minuten für eine Aufgabe benötigt, die das bislang von Fedora eingesetzte Skript in 47 Sekunden erledigt; selbst nach einer Optimierung benötigte es noch über 3 Minuten.
- Bei jeder neuen Kernel-Version des Hauptentwicklungszweigs gibt es hunderte von Änderungen, die das im Kernel-Log typischerweise nicht erwähnt, weil sie Probleme korrigieren, die nur auf bestimmten Systeme oder bei seltenen Konfigurationen auftreten. Ein Beispiel für solche Änderungen sind zwei Commits (1, 2), durch die der Kernel auf dem Dell Studio 1557 und dem Thinkpad SL510 nun eine Sonderbehandlung automatisch aktiviert, die alternativ auch der Kernel-Parameter "pci=nocrs" aktiviert; dadurch sollen diese Systeme bei Kernel 3.3 und später aus dem Bereitschaftsmodus (ACPI S3/Suspend to Ram) zuverlässig aufwachen, auch wenn der Anwender noch nie von diesem Parameter gehört hat. Besitzer dieser Systeme haben das einem Fehlerbericht zu verdanken, in Folge dessen die Änderungen entstanden. Auch in anderen Bereichen – insbesondere bei den Audio-Treibern – gibt es mit jeder neuen Version des Hauptentwicklungszweigs solche Änderungen, durch die der Kernel bestimmte Workarounds automatisch anwendet. Auch bei diesen Fällen haben häufig Linux-User die Entwickler auf die nötigen Parameter hingewiesen, die zusammen mit Informationen zur Identifikation der betroffenen Systeme Patches erstellt haben, damit der Kernel automatisch alles richtig macht.
Kleine Perlen: Infrastruktur
Die kleinen Perlen: Infrastruktur
Die folgenden Links führen zu einigen kleineren, aber keineswegs unbedeutende Änderungen:
ACPi, PCI und Co.
- [
N1] ACPI 5.0: Add new/changed tables to headers - [
] ACPI 5.0: Add new predefined names - [
2] ACPI 5.0: Implement Connection() and AccessAs() changes - [
N] ACPI 5.0: New interfaces to allow driver access to AML mutex objects - [
] ACPI, Add RAM mapping support to ACPI atomic IO support - [
D 1] acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec - [
] ACPI, APEI, GHES: Add PCIe AER recovery support - [
N2] ACPICA: Add support for region address conflict checking - [
D] ACPI: kernel-parameters.txt : Add intel_idle.max_cstate - [
] ACPI / PM: Add Sony Vaio VPCCW29FX to nonvs blacklist. - [
] iommu: Add iommu_device_group callback and iommu_group sysfs entry - [
D] iommu: Add option to group multi-function devices - [
C N] iommu/amd: Add driver stub for AMD IOMMUv2 support - [
] iommu/amd: Add function to get IOMMUv2 domain for pdev - [
] iommu/amd: Add iommuv2 flag to struct amd_iommu - [
] iommu/amd: Add stat counter for IOMMUv2 events - [
C 1] iommu/amd: Add support for IOMMUv2 domain mode - [
] iommu/amd: Implement device aquisition code for IOMMUv2 - [
] iommu/amd: Implement iommu_device_group - [
] iommu/amd: Implement IOMMUv2 TLB flushing routines - [
C] iommu/amd: Implement notifiers for IOMMUv2 - [
D] iommu/amd: Put IOMMUv2 capable devices in pt_domain - [
1] iommu/core: split mapping to page sizes as supported by the hardware - [
] iommu/intel: Implement iommu_device_group - [
D] PCI: deprecate pci_scan_bus_parented() - [
] PCI: Introduce INTx check & mask API - [
D] PCI/sysfs: add per pci device msi× irq listing (v5) - [
] PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB - [
C] spi-topcliff-pch: Support new device LAPIS Semiconductor ML7831 IOH
Crypto und Security
- [
] crypto: caam - add support for MD5 algorithm variants - [
N] crypto: lrw - add interface for parallelized cipher implementions - [
C] crypto: lrw - remove dependency on EXPERIMENTAL - [
N] crypto: serpent - export common functions for x86_64/i386-sse2 assembler implementations - [
] crypto: talitos - add hmac algorithms - [
1] crypto: talitos - support for channel remap and 2nd IRQ - [
] crypto: tcrypt - add lrw(serpent) tests - [
] crypto: tcrypt - add lrw(twofish) tests - [
] crypto: tcrypt - add serpent speed tests - [
] crypto: tcrypt - add test_acipher_speed - [
] crypto: tcrypt - add xts(serpent) tests - [
] crypto: tcrypt - add xts(twofish) tests - [
1] crypto: testmgr - add lrw(serpent) test vectors - [
1] crypto: testmgr - add lrw(twofish) test vectors - [
1] crypto: testmgr - add new serpent test vectors - [
2] crypto: testmgr - add xts(serpent) test vectors - [
2] crypto: testmgr - add xts(twofish) test vectors - [
N] crypto: xts: add interface for parallelized cipher implementations - [
C] crypto: xts - remove dependency on EXPERIMENTAL - [
DN] Documentation: clarify the purpose of LSMs
MM
- [
C] kmemleak: Add support for memory hotplug - [
D] kmemleak: Handle percpu memory allocation - [
C 2] memblock: Kill early_node_map[] - [
] mm: add free_hot_cold_page_list() helper - [
CD] mm: more intensive memory corruption debugging - [
] mm: simplify find_vma_prev() - [
C] mm,slub,x86: decouple size of struct page from CONFIG_CMPXCHG_LOCAL - [
D] mm-tracepoint: fix documentation and examples - [
D] mm-tracepoint: rename page-free events - [
C] mm,x86,um: move CMPXCHG_DOUBLE config option - [
C] mm,x86,um: move CMPXCHG_LOCAL config option - [
] slab: add taint flag outputting to debug paths. - [
D] slab: introduce slab_max_order kernel parameter - [
] slub: add taint flag outputting to debug paths - [
D] slub: document setting min order with debug_guardpage_minorder > 0 - [
D] slub: fix slub_max_order Documentation - [
N] tracepoint: add tracepoints for debugging oom_score_adj
Power Management
- [
C N2] [CPUFREQ] EXYNOS: Make EXYNOS common cpufreq driver - [
D] freezer: don't unnecessarily set PF_NOFREEZE explicitly - [
D 1] freezer: unexport refrigerator() and update try_to_freeze() slightly - [
C N3] PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412. - [
N1] PM / Domains: Add device stop governor function (v4) - [
D] PM / Hibernate: Remove deprecated hibernation snapshot ioctls - [
] PM / Hibernate: Remove deprecated hibernation test modes - [
D 2] PM: Run the driver callback directly if the subsystem one is not there - [
D] PM / Sleep: Recommend [un]lock_system_sleep() over using pm_mutex directly
Tracing
- [
] events, sched: Add tracepoint for accounting blocked time - [
] ftrace: Do not function trace inlined functions - [
] ktest: Allow bisect test to restart where it left off - [
] ktest: Allow overriding bisect test results - [
] ktest: Allow success logs to be stored - [
] ktest: Save test output - [
] ktest: When creating a new config, ask for BUILD_OPTIONS - [
DN1] oprofile, s390: Add event interface to the System z hardware sampling module - [
D] oprofile, x86: Add kernel parameter oprofile.cpu_type=timer - [
C N1] oprofile, x86: Reimplement nmi timer mode using perf event - [
] perf: Add support for PERF_HW_COUNT_REF_CPU_CYCLES - [
] perf, core: Rate limit perf_sched_events jump_label patching - [
] perf events: Add Intel x86 mapping for PERF_COUNT_HW_REF_CPU_CYCLES - [
] perf events: Add PERF_COUNT_HW_REF_CPU_CYCLES generic PMU event - [
] perf script: Add comm filtering option - [
] perf script: Add generic perl handler to process events - [
] perf script: Implement option for system-wide profiling - [
] perf test: Add more automated tests for event parsing - [
] perf tools: Add ability to synthesize event according to a sample - [
] perf tools: Look up thread names for system wide profiling - [
1] perf tools: Save some loops using perf_evlist__id2evsel - [
] perf, x86: Expose perf capability to other modules - [
N1] selftests: new x86 breakpoints selftest - [
] tracing: Add entries in buffer and total entries to default output header - [
] tracing: Add irq, preempt-count and need resched info to default trace output - [
D] tracing: Have stack tracing set filtered functions at boot - [
D] tracing: update Documentation on max preds limit - [
N1] x86, perf: Add a build-time sanity test to the x86 decoder
Virtualization
- [
D] KVM: Document KVM_NMI - [
] KVM: expose latest Intel cpu new features (BMI1/BMI2/FMA/AVX2) to guest - [
] KVM guest: remove KVM guest pv mmu support - [
D] KVM: MMU: remove KVM host pv mmu support - [
D] KVM: MMU: remove oos_shadow parameter - [
D] vhost-net: add module alias (v2.1) - [
] virtio: harsher barriers for rpmsg. - [
C N] xen: Add privcmd device driver - [
N] xen: Add xenbus_backend device - [
] xen: Add xenbus device driver - [
] xenbus: Support HVM backends - [
DN] xen: document backend sysfs files - [
DN] xen: document balloon driver sysfs files - [
2] xen/granttable: Introducing grant table V2 stucture
Various
- [
D 1] cgroup: introduce cgroup_taskset and use it in subsys->can_attach(), cancel_attach() and attach() - [
D] cgroup: kill subsys->can_attach_task(), pre_attach() and attach_task() - [
D] coccinelle.txt: update documentation to include M= option - [
9] cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem - [
D] c/r: procfs: add start_data, end_data, start_brk members to /proc/$pid/stat v4 - [
D] debugfs: add tools to printk 32-bit registers - [
D] debugobjects: Extend to assert that an object is initialized - [
D] doc: Add load/store guarantees to Documentation/atomic-ops.txt - [
D] Documentation: add missing tainted bits to Documentation/sysctl/kernel.txt - [
DN] dt/i2c: Enumerate some of the known trivial i2c devices - [
DN] i2c-designware: add OF binding support - [
D] kbuild: Add support for an "archheaders" target - [
D] lockdep: Update documentation for lock-class leak detection - [
] MAINTAINERS: stable: Update address - [
] module_param: avoid bool abuse, add bint for special cases. - [
] module_param: check that bool parameters really are bool. - [
] module_param: make bool parameters really bool (arch) - [
] module_param: make bool parameters really bool (core code) - [
9] module_param: make bool parameters really bool (drivers & misc) - [
] module_param: make bool parameters really bool (drivers/video/i810) - [
2] module_param: make bool parameters really bool (net & drivers/net) - [
D] modules: sysfs - export: taint, coresize, initsize - [
N] NFSD: Added fault injection script - [
1] nohz: Allow rcu extended quiescent state handling seperately from tick stop - [
1] nohz: Remove tick_nohz_idle_enter_norcu() / tick_nohz_idle_exit_norcu() - [
1] nohz: Separate out irq exit and idle loop dyntick logic - [
DN] of/address: Add reg-names property to name an iomem resource - [
D] of/irq: Add interrupts-names property to name an irq resource - [
D] pinctrl: add a pin_base for sparse gpio-ranges - [
CDN2] pinctrl: add a pin config interface - [
D] pinctrl: documentation update - [
D 1] pinctrl: don't create a device for each pin controller - [
D] pinctrl: GPIO direction support for muxing - [
D] pinctrl: make a copy of pinmux map - [
D] pinctrl: pass name instead of device to pin_config_* - [
D] pinctrl: some typo fixes - [
D] rcu: Add documentation for raw SRCU read-side primitives - [
D] rcu: Add rcutorture CPU-hotplug capability - [
D] rcu: Add rcutorture system-shutdown capability - [
] rcu: Control rcutorture startup from kernel boot parameters - [
D] rcu: Document failing tick as cause of RCU CPU stall warning - [
C] rcu: Permit RCU_FAST_NO_HZ to be used by TREE_PREEMPT_RCU - [
D 2] rcu: Track idleness independent of idle tasks - [
] sched, nohz: Implement sched group, domain aware nohz idle load balancing - [
] sched: Only queue remote wakeups when crossing cache boundaries - [
] sched/tracing: Add a new tracepoint for sleeptime - [
2] scripts/coccinelle: improve the coverage of some semantic patches - [
N] selftests: new very basic kernel selftests directory - [
D] stable: update documentation to ask for kernel version - [
D] sysctl: add the kernel.ns_last_pid control
Kleine Perlen: Architektur
Die kleinen Perlen: Architektur
x86
- [
C] pci, x86/io-apic: Allow PCI_IOAPIC to be user configurable on x86 - [
] x86_64, asm: Optimise fls(), ffs() and fls64() - [
C N1] x86: Add NumaChip support - [
1] x86: Add workaround to NMI iret woes - [
] x86/amd: Add missing feature flag for fam15h models 10h-1fh processors - [
] x86, centaur: Enable cx8 for VIA Eden too - [
C] x86/config: Revamp configuration for MID devices - [
] x86/div64: Add a micro-optimization shortcut if base is power of two - [
N6] x86: Generate system call tables and unistd_*.h from tables - [
C] x86/intel config: Revamp configuration to allow for Moorestown and Medfield - [
N2] x86: Machine-readable syscall tables and scripts to process them - [
] x86, mce, therm_throt: Don't report power limit and package level thermal throttle events in mcelog - [
] x86/microcode_amd: Add support for CPU family specific container files - [
D] x86, NMI: Add knob to disable using NMI IPIs to stop cpus - [
C N] x86, NMI: Add NMI IPI selftest - [
D] x86: Panic on detection of stack overflow - [
] x86: Simplify code by removing a !SMP #ifdefs from 'struct cpuinfo_x86' - [
] x86/tools: Add decoded instruction dump mode - [
3] x86: Update instruction decoder to support new AVX formats
ARM
- [
] ARM: 7169/1: topdown mmap support - [
N] ARM: 7201/1: add EDAC atomic_scrub function - [
] ARM: 7202/1: Add Cortex-A7 proc info - [
N] ARM: 7206/1: Add generic ARM instruction set condition code checks. - [
C] ARM: 7240/1: Make ARCH_NR_GPIO a Kconfig variable - [
C] ARM: Add arm_memblock_steal() to allocate memory away from the kernel - [
C] ARM: Allow Kconfig to control the definition of NR_BANKS - [
] ARM: at91/net: add macb ethernet controller in 9g45/9g20 DT - [
D] ARM: at91: removal of CAP9 SoC family - [
DN] arm/dt: add basic usb nodes to tegra device trees - [
N1] ARM: dts: Add intial dts file for EXYNOS4210 SoC, SMDKV310 and ORIGEN - [
N] arm/dts: Add minimal device tree support for omap2420 and omap2430 - [
CDN] ARM: EXYNOS: Add Exynos4 device tree enabled board file - [
C N] ARM: EXYNOS: Add USB OHCI device - [
C] ARM: EXYNOS: Add USB OHCI support to ORIGEN board - [
C] ARM: EXYNOS: Add USB OHCI support to SMDKV310 board - [
CD 1] ARM: gic: allow GIC to support non-banked setups - [
DN] arm/imx6: add imx6q sabrelite board support - [
D] arm/imx6q: Rename Sabreauto to Armadillo2 - [
C N3] ARM i.MX: Merge i.MX5 support into mach-imx - [
N] arm: introduce cross trigger interface helpers - [
] ARM: LPAE: Add context switching support - [
N] ARM: LPAE: Add fault handling support - [
] ARM: LPAE: Add identity mapping support for the 3-level page table format - [
] ARM: LPAE: add ISBs around MMU enabling code - [
N1] ARM: LPAE: Factor out classic-MMU specific code into proc-v7-2level.S - [
] ARM: LPAE: Invalidate the TLB before freeing the PMD - [
] ARM: LPAE: mark memory banks with start > ULONG_MAX as highmem - [
] ARM: LPAE: Move page table maintenance macros to pgtable-2level.h - [
N1] ARM: LPAE: Move the FSR definitions to separate files - [
] ARM: LPAE: Page table maintenance for the 3-level format - [
N] ARM: mach-shmobile: Add kota2 defconfig. - [
N] ARM: mach-shmobile: Add marzen defconfig. - [
] ARM: mach-shmobile: bonito: Add dip-switch selector - [
] ARM: mach-shmobile: bonito: add FPGA irq demux - [
] ARM: mach-shmobile: bonito: Add LCDC0 support - [
] ARM: mach-shmobile: bonito: add PMIC settings - [
] ARM: mach-shmobile: bonito: add SMSC9221 support - [
N8] ARM: mach-shmobile: r8a7740: add PFC support. - [
C N1] ARM: mach-shmobile: r8a7779 and Marzen base support V2 - [
9] ARM: mach-shmobile: r8a7779 PFC function support - [
C N2] ARM: mach-shmobile: r8a7779 PFC GPIO-only support V2 - [
N1] ARM: mach-shmobile: r8a7779 SMP support V3 - [
D] ARM: move iotable mappings within the vmalloc region - [
N] ARM: mxs: add saif clkmux functions - [
C 1] ARM: OMAP1: Move dpll1 rates selection from config to runtime - [
C N] ARM: OMAP4: Fix errata i688 with MPU interconnect barriers. - [
N1] ARM: OMAP4: PM: Add CPUidle support - [
N2] ARM: OMAP4: PM: Add CPUX OFF mode support - [
N] ARM: OMAP4: PM: Add SAR RAM support - [
N] ARM: OMAP: Add Secure HAL and monitor mode API infrastructure. - [
N1] ARM: OMAP: am33xx: Update common OMAP machine specific sources - [
C] ARM: OMAP: am33xx: Update common omap platform files - [
N] ARM: OMAP: PM: Add support to allocate the memory for secure RAM - [
N1] ARM: OMAP: PRCM: add support for chain interrupt handler - [
C] ARM: OMAP: TI814X: Create board support and enable build for TI8148 EVM - [
C 1] ARM: OMAP: TI81XX: Prepare for addition of TI814X support - [
1] ARM: perf: add support for stalled cycle ABI events - [
3] arm: Remove mach-tcc8k directory - [
4] arm: Remove plat-tcc directory - [
C] ARM: S3C64XX: Implement basic power domain support - [
C N] ARM: S5P64X0: Add HSMMC setup for host Controller - [
C 2] ARM: SAMSUNG: Consolidation of SPI platform devices to plat-samsung - [
C] ARM: stop: execute platform callback from cpu_stop code - [
N] arm/tegra: Add device-tree support for TrimSlice board - [
N] arm/tegra: add support for tegra30 based board cardhu - [
N4] arm/tegra: pinmux tables and definitions for tegra30 - [
3] ARM: Update mach-types - [
CDN] ARM: vic: device tree binding - [
N] ARM: w90x900: add common nuc9xx.h - [
] cpufreq: OMAP: Add SMP support for OMAP4+ - [
C] MX1:apf9328: Add i2c support - [
C N] of: Add device tree selftests - [
] OMAP: DSS2: Support for UMSH-8173MD TFT panel - [
DN] omap-serial: Add minimal device tree support
PPC
- [
4] fsl-rio: Add two ports and rapidio message units support - [
N7] fsl-rio: Split rio driver into two parts, RapidIO endpoint and message unit - [
C N1] powerpc/40x: Add APM8018X SOC support - [
C] powerpc/44x: Enable CONFIG_RELOCATABLE for PPC44x - [
C] powerpc/44x: Enable CRASH_DUMP for 440x - [
C] powerpc/44x: Enable DYNAMIC_MEMSTART for 440x - [
C] powerpc/476fpe: Add 476fpe SoC code - [
C N2] powerpc/47x: Add support for the new IBM currituck platform - [
N] powerpc/85xx: Add a P1010RDB 36-bit address map device tree - [
] powerpc/85xx: Add crypto engine to P1010 SoC device tree - [
N] powerpc/85xx: Add P1020RDB 36-bit address map device tree - [
N9] powerpc/85xx: create dts components to build up an SoC - [
N3] powerpc/85xx: Rework MPC8536DS device trees - [
N2] powerpc/85xx: Rework MPC8544DS device tree - [
N2] powerpc/85xx: Rework MPC8548CDS device trees - [
N2] powerpc/85xx: Rework MPC8568MDS device tree - [
N2] powerpc/85xx: Rework MPC8569MDS device tree - [
N7] powerpc/85xx: Rework MPC8572DS device tree - [
N3] powerpc/85xx: Rework P1010RDB and P1010 device tree - [
N3] powerpc/85xx: Rework P1020RDB device tree - [
N2] powerpc/85xx: Rework P1021MDS device tree - [
N2] powerpc/85xx: Rework P1022DS device tree - [
N2] powerpc/85xx: Rework P1023RDS device tree - [
N3] powerpc/85xx: Rework P2020DS device tree - [
1] powerpc/85xx: Rework P2020RDB device tree - [
N3] powerpc/85xx: Rework P2041RDB device tree - [
N3] powerpc/85xx: Rework P3041DS device tree - [
N3] powerpc/85xx: Rework P3060QDS device tree - [
N3] powerpc/85xx: Rework P4080DS device trees - [
N3] powerpc/85xx: Rework P5020DS device tree - [
] powerpc/85xx: Rework PCI nodes on P1020RDB - [
N1] powerpc/85xx: Update SRIO device tree nodes - [
C N1] powerpc: Add support for OpenBlockS 600 - [
C N2] powerpc/book3e: Add Chroma as a new WSP/PowerEN platform. - [
C] powerpc/book3e: Add ICSWX/ACOP support to Book3e cores like A2 - [
] powerpc/boot: Add mfdcrx - [
C] powerpc/cpuidle: Add cpu_idle_wait() to allow switching of idle routines - [
C N1] powerpc/cpuidle: cpuidle driver for pSeries - [
C] powerpc/cpuidle: Enable cpuidle and directly call cpuidle_idle_call() for pSeries - [
] powerpc: Enable Hugetlb by default for 32-bit 85xx/corenet - [
] powerpc: Enable hugetlb by default for corenet64 platforms - [
C N3] powerpc/fsl: Add support for Integrated Flash Controller - [
DN1] powerpc/fsl: Document rapidio node binding-information - [
C] powerpc: Kconfig updates for FSL BookE HUGETLB 64-bit - [
N2] powerpc: POWER7 optimised copy_to_user/copy_from_user using VMX - [
N4] powerpc/powernv: PCI support for p7IOC under OPAL v2 - [
C N1] powerpc: Process dynamic relocations for kernel - [
C 1] powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE - [
C N1] powerpc: Split ICSWX ACOP and PID processing
Various
- [
] blackfin: bf537: add capture support - [
] blackfin: bf548: add capture support - [
] blackfin: bf561: add adv7183 capture support - [
DN3] C6X: devicetree support - [
C] fs: binfmt_elf: create Kconfig variable for PIE randomization - [
C N] Initial support for the Ubiquiti Networks XM board (rev 1.0). - [
] m68k: add cache support for V4e ColdFire cores running with MMU enabled - [
] m68k: add code to setup a ColdFire 54xx platform when MMU enabled - [
] m68k: add ColdFire 54xx CPU MMU memory init code - [
1] m68k: add ColdFire FPU support for the V4e ColdFire CPUs - [
] m68k: add ColdFire paging exception handling code - [
] m68k: add ColdFire with MMU enabled support to the m68k mem init code - [
] m68k: add machine and CPU definitions for ColdFire cores - [
] m68k: add page table size definitions for ColdFire V4e MMU - [
] m68k: add TASK definitions for ColdFires running with MMU - [
] m68k: add TLB flush support for the ColdFire V4e MMU hardware - [
C] m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled - [
N] m68k: ColdFire V4e MMU paging init code and miss handler - [
C] m68k: ColdFire with MMU enabled uses same clocking code as non-MMU - [
C] m68k: compile appropriate mm arch files for ColdFire MMU support - [
N] m68k: create ColdFire MMU pgalloc code - [
N] m68k: definitions for the ColdFire V4e MMU hardware - [
C] m68k/Kconfig: Separate classic m68k and coldfire early - [
C] m68k/mac: early console - [
C] m68k: modify user space access functions to support ColdFire CPUs - [
C] m68k/mvme16x: Add support for EARLY_PRINTK - [
N1] m68k: page table support definitions and code for ColdFire MMU - [
] m68k: use addr_limit checking for m68k CPUs that do no support address spaces - [
C] microblaze: generic atomic64 support - [
N] MIPS: Add fast get_user_pages - [
C N6] MIPS: Alchemy: Au1300 SoC support - [
C N4] MIPS: Alchemy: Basic support for the DB1300 board. - [
C 1] MIPS: Alchemy: Drop MIRAGE/BOSPORUS board support - [
C N3] MIPS: Alchemy: Improved DB1550 support, with audio and serial busses. - [
4] MIPS: Alchemy: merge Au1000 and Au1300-style IRQ controller code. - [
C 3] MIPS: Alchemy: Merge PB1200 support into DB1200 code. - [
C 3] MIPS: Alchemy: one kernel for DB1000/DB1500/DB1100 - [
C 4] MIPS: Alchemy: remove PB1000 support - [
C N1] MIPS: ath79: add common USB Host Controller device - [
N] MIPS: ath79: Add early printk support for the AR933X SoCs - [
C N] MIPS: ath79: Add initial support for the Atheros AP121 reference board - [
] MIPS: ath79: add revision id for the AR933X SoCs - [
C 2] MIPS: BCM63XX: Add support for bcm6368 CPU. - [
C N1] MIPS: BMIPS: Add SMP support code for BMIPS43xx/BMIPS5000 - [
N1] MIPS: GIO bus support for SGI IP22/28 - [
N] MIPS: Initial PCI support for Atheros 724x SoCs. - [
C N] MIPS: Netlogic: Add basic MSI support for XLR/XLS - [
N1] MIPS: Netlogic: Add default XLP config. - [
] MIPS: Netlogic: Add support for XLP 3XX cores - [
C N] MIPS: Netlogic: Add XLP makefiles and config - [
N7] MIPS: Netlogic: Add XLP platform files for XLP SoC - [
7] MIPS: Oceton: Update model detection code for new chips. - [
6] MIPS: Octeon: Add support for OCTEON II PCIe - [
C 4] MIPS: Octeon: Move some Ethernet support files out of staging. - [
N9] MIPS: Octeon: Update SOC PCI related register definitions for new chips. - [
C] MIPS: randomize PIE load address - [
D] S390: Add s390x description to Documentation/kdump/kdump.txt - [
9] S390: entry[64].S improvements - [
D] S390: Remove Kerntypes leftovers - [
1] sh: Kill off remaining private runtime PM bits. - [
1] sh: sh7723: use runtime PM implementation, common with arm/mach-shmobile - [
1] sh: sh7724: use runtime PM implementation, common with arm/mach-shmobile
Ein "C" im Bereich "[ ]" kennzeichnet Commits mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten. Mit "D" ausgezeichneten Patches verändern die dem Kernel beiliegende Dokumentation; Commits mit "N" legen neue Dateien an. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: Eine "1" kennzeichnet Patches, die inklusive Kommentar zwischen 10 und 20 KByte groß sind; Patches mit einer "9" sind 90 KByte oder größer. Änderungen ohne Zahl sind kleiner als 10 KByte.
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)