The Way of the great learning involves manifesting virtue, renovating the people, and abiding by the highest good.

2008年12月28日星期日

Linux 2.6.28 kernel released on 25 December, 2008

Linux 2 6 28

Linux 2.6.28 kernel released on 25 December, 2008.

Summary: Linux 2.6.28 adds the first version of Ext4 as a stable filesystem, the much-expected GPU memory manager which will be the foundation of a renewed graphic stack, support for Ultra Wide Band (Wireless USB, UWB-IP), memory management scalability and performance improvements, a boot tracer, disk shock protection, the phonet network protocol, support of SSD discard requests, transparent proxy support, several new network drivers, controlable IO CPU affinity, high-resolution poll()/select(), support of a minimal "dummy" policy in SELinux, tracing improvements, x86 x2APIC support, a fb driver for VIA UniChrome devices, Mitac Mio A701 ARM-based smartphone support, some new drivers, improved device support, and many other small improvements and fixes.

1. Prominent features (the cool stuff)

1.1. Ext4

The backwards-compatible replacement of Ext3 has been declared as stable. Bigger filesystem/file sizes, extents, delayed allocation, multiblock allocation, improved block allocation algoritms, faster fsck, online defragmentation and faster and more robust journaling are the main features of this filesystem.

A separate article has been written about Ext4: Ext4, the Fourth Extended File System

1.2. The GEM Memory Manager for GPU memory

Recommended article: A description of all the parts involved in the new graphics stack: "EXA, UXA, DRI, GEM, TTM"

Recommended articles about GEM: "Memory management for graphics processors" and "GEM v. TTM"

In the last decade graphics hardware has evolved at an astounding pace, and it's expected to improve even more in the future. Modern GPUs have a lot of processing power -more than the most powerful CPU in some specialized workloads- that traditionally has only been used by specialized applications using opengl/directx, like games and 3D design apps; the 2D desktop implementations that are commonly found in computers kept using this modern graphic hardware in the same way they used the old graphics hardware which started the "desktop revolution" in the 80-90's, ie. inefficiently. There's a lot of GPU power that don't get used unless you run a game. On the other hand, the Linux/FOSS graphic stack is far from perfect, even for the traditional graphic stack design. To start with, there're several drivers fighting to access the same resource (the graphics card): The fb-based console, the in-kernel DRM driver, the X.org userspace 2D driver...this situation leads to all class of problems and artifacts and suboptimal performance.

There has been a lot of work in the latest years to modernize the Linux graphics stack so that it's both well designed and also ready to use the full power of modern and future GPUs. In 2.6.28, Linux is adding one of the most important pieces of the stack: A memory manager for the GPU memory, called GEM ("Graphic Execution Manager"). The purpose is to have a central manager for buffer object placement, caching, mapping and synchronization. On top of GEM are being built a lot of improvementes to the graphic stack: Kernel Modesetting, DRI2, UXA (a EXA implementation based in GEM). The Linux/FOSS graphics stack will be finally unified and optimally coupled.

All this new code has been delayed for a long time, because there was a competing memory manager, called TTM, which was almost merged in the kernel in 2.6.24 or so, until the Intel people came up with the first versions of the GEM memory manager. People decided it was better than TTM, and it was considered neccesary to delay the merge to stabilize GEM and rewrite the other features to work with GEM, not TTM. Hence, this first version of GEM works only with the i915 driver, and support on the X.org side is implemented only in the version 2.5.0 of the driver. Preliminary GEM support for other drivers is already in development and will be merged in future releases.

Code: (commit)

1.3. Support for "Ultra Wide Band" (UWB), Wireless USB and UWB-IP

"Ultra Wide Band" (UWB) is a high-bandwidth, low-power, point-to-point radio technology using a wide spectrum (3.1-10.6GHz). It is optimized for in-room use (480Mbps at 2 meters, 110Mbps at 10m). It serves as the transport layer for other protocols, such as Wireless USB, WiMedia Link Protocol (Ethernet/IP over UWB) and, in the future, Bluetooth and 1394. Linux 2.6.28 adds code to implement a Ultra Wide Band stack, as well as drivers for the the USB based UWB radio controllers defined in the Wireless USB 1.0 specification (including Wireless USB host controller and an Intel WiNET controller).

UWB: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14), WLP: (commit 1, 2, 3, 4), WUSB: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)

1.4. Memory management Scalability improvements

Improvements to the page replacement algorithm

Recommended LWN article: The state of the pageout scalability patches

Systems with a lot of memory have lots (millions) of pages. When the replacement algorithm has to search candidate pages to be swapped, it has to search between all the pages, and in big systems this can take too much time. In 2.6.28, the file-backed pages (pages that belong to some file on the disk) and the anonymous pages (pages that are not part of any file, like ie. pages obtained with malloc, which need to be written to swap before being evicted) are put in two different lists, unlike previous releases, that used a single list. The algorithms can decide to look into only one of those lists without needing to look in the other. Additionally, there're pages that cannot be deleted from memory, for example because they're mlock()'ed, or because they belong to a ramfs filesystem. Those pages are put into a special third list, which won't be searched at all by the algorithms because they can not be evicted.

Code: (commit 1,2,3,4, 5, 6,7, 8, 9,10,11,12, 13,14, 15, 16, 17, 18, 19, 20, 21, 22, 23,24, 25)

Rewrite the vmap layer

Recommended LWN article: Reworking vmap()

In 2.6.28, the vmap allocator has been rewritten to use rbtrees and lazy tlb flushing, and provide a fast, scalable percpu frontend for small vmaps. Some benchmarks that exercize the vmap layer have been speeded up by 20x or more.

Code: (commit 1, 2, 3, 4, 5, 6)

1.5. Container freezer

Freezing filesystems and containers

The container freezer is a cgroup subsystem that utilizes the swsusp freezer to freeze and restart a arbitrary group of tasks determined by the user. It's immediately useful for batch job management scripts. It should also be useful in the future for implementing container checkpoint/restart. For more details on to how to use it, see the commit links.

Code: (commit 1, 2, 3, 4, 5, 67, 8)

1.6. Boot tracer

The purpose of this tracer is to helps developers to optimize boot times: it records the timings of the initcalls. Its aim is to be parsed by the scripts/bootgraph.pl tool to produce graphics about boot inefficiencies, giving a visual representation of the delays during initcalls. Users need to enable CONFIG_BOOT_TRACER, boot with the "initcall_debug" and "printk.time=1" parameters, and run "dmesg | perl scripts/bootgraph.pl > output.svg" to generate the final data.

Code: (commit 1, 2, 3, 4, 5, 6)

1.7. Disk Shock Protection

ATA/ATAPI-7 specifies the IDLE IMMEDIATE command with unload feature. Issuing this command should cause the drive to switch to idle mode and unload disk heads. This feature is being used in modern laptops in conjunction with accelerometers and appropriate software to implement a shock protection facility. The idea is to stop all I/O operations on the internal hard drive and park its heads on the ramp when critical situations are anticipated.

For each ATA device, Linux 2.6.28 adds the file /sys/block/*/device/unload_heads. Writing an integer value to this file will take the heads of the respective drive off the platter and defer all I/O operations for the specified number of milliseconds. When the timeout expires normal operation will be resumed. The maximal value accepted for a timeout is 30000 milliseconds. However, there are some hard drives that only comply with an earlier version of the ATA standard, but do support the feature nonetheless. Unfortunately, there is no safe way Linux can detect these devices, so you won't be able to write to the unload_heads attribute. If you know that your device really does support the unload feature (for instance, because the vendor of your laptop or the hard drive itself told you so), then you can tell the kernel to enable the usage of this feature for that drive by writing the special value -1 to the unload_heads attribute. See this page for information about Linux support of the hard disk active protection system as implemented in IBM/Lenovo Thinkpads.

Code: (commit), (commit), (commit)

1.8. Phonet Network Protocol

The Phone Network protocol (PhoNet) is a packet-oriented communication protocol developped by Nokia for use with its cellular modems for both IPC and RPC. With the Linux Phonet socket family, Linux host processes can receive and send messages from/to the modem, or any other external device attached to the modem; the modem takes care of routing. Phonet packets can be exchanged through various hardware connections depending on the device, such as: USB with the CDC Phonet interface, infrared, Bluetooth, a serial port. This is required for Maemo to use cellular data connectivity (if supported), it can also be used to control Nokia phones.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

1.9. Network: Transparent proxying, new drivers, DSA...

  • Distributed Switch Architecture protocol support: Distributed Switch Architecture is a protocol for managing hardware switch chips. The switches that this driver supports are typically embedded in access points and routers. Code: (commit 1, 2, 3, 4, 5)

  • Transparent proxy support
    • This feature (lost 5 years ago) enables transparent proxying support, that is, support for handling non-locally bound IPv4 TCP and UDP sockets. It adds a `TPROXY' target, which is somewhat similar to REDIRECT. It can only be used in the mangle table and is useful to redirect traffic to a transparent proxy. It does not depend on Netfilter connection tracking and NAT, unlike REDIRECT. Code: (commit 1, 2, 3, 4)

  • New network drivers. This release adds a few network drivers
    • Add atl2 driver (commit)

    • Add SMSC LAN9500 USB2.0 10/100 ethernet adapter driver (commit)

    • enic: add Cisco 10G Ethernet NIC driver (commit)

    • qlge: New Qlogic 10Gb Ethernet Driver. (commit)

    • jme: JMicron Gigabit Ethernet Driver (commit)

1.10. Tracepoints

Tracing: no shortage of options Tracepoints are another mechanism for inserting static tracing points in the kernel, used by tools like LTTng (Linux Trace Toolkit). There's already a mechanism to insert such points: kernel markers, merged in Linux 2.6.24, but tracepoints are slightly different (see the LWN article). The scheduler has been instrumentalized with tracepoints, and ftrace has been ported to use them.

Code: (commit 1, 2, 3,4, 5, 6)

1.11. -staging drivers

Recommended article: Moving the -staging tree

There's a controversy in the kernel community between the people who wants to see new drivers getting merged in the main Linux tree as soon as possible, and people who thinks that before being merged they must have good quality. The -staging tree has been created to get those out-of-the-tree drivers that don't have the required level into the drivers/staging directory.

  • USB/IP: This enables pushing USB packets over IP to allow remote machines access to USB devices directly (commit), (commit), (commit)

  • Add w35und wifi driver (commit)

  • Add wlan-ng prism2 usb driver (commit)

  • At76_usb wireless driver (commit)

  • Add Alacritech slicoss network driver (commit)

  • Add echo cancelation module (commit)

  • Add et131x network driver (commit)

  • Add me4000 pci data collection driver (commit)

  • Add pcc-acpi driver (commit)

  • Add poch driver (commit)

  • Add sxg network driver (commit)

  • Add the go7007 video driver (commit)

  • Kconfig entries and Makefile infrastructure for the -staging tree (commit)

1.12. IO CPU affinity

2.6.28 add support for controlling the IO completion CPU of either all requests on a queue, or on a per-request basis. A sysfs variable (rq_affinity) is exported which, if set, migrates completions of requests to the CPU that originally submitted it. A internal bio helper (bio_set_completion_cpu()) is also added, so that queuers can ask for completion on that specific CPU. In testing, this has been show to cut the system time by as much as 20-40% on synthetic workloads where CPU affinity is desired.

Code: (commit)

1.13. FIEMAP

Recommended LWN article: SEEK_HOLE or FIEMAP?

When an application wants to know how a file is store in the disk (for example, a backup application that wants to know if a file is a sparse file and wants to avoid backing up the hole) it uses the fibmap ioctl. But this ioctl is suboptimal - the ioctl can only be asked for a block at a time, which is too expensive for big files. The FIEMAP ioctl, in the other hand, returns a list of extents.

Code: (commit 1, 2, 3, 4)

2. Various core

  • Switch select() and poll() over to high-resolution timers (commit)

  • RCU:
    • rcu-classic: new algorithm for callbacks-processing (commit)

    • RCU-based detection of stalled CPUs (commit)

    • debug: detect stalled grace periods (commit)

  • PCI
    • Add ability to mmap legacy_io on some platforms (commit)

    • Allow quirks to be compiled out (commit)

    • Support PCIe ARI capability (commit)

  • KVM
    • VT-d: Changes to support KVM (commit)

    • PCI device Assignment with VT-d (commit)

    • ia64: enable virtio driver for ia64 in Kconfig (commit), add directed mmio range support for kvm guests (commit), add intel iommu support for guests. (commit), add support for Tukwila processors (commit)

    • ppc: enable KVM_TRACE building for powerpc (commit), adds trace points for ppc tlb activity (commit)trace powerpc instruction emulation (commit), guest breakpoint support (commit)

  • AMD IOMMU: add MSI interrupt support (commit), implement lazy IO/TLB flushing (commit)

  • intel-iommu: IA64 support (commit)

  • iommu: remove fullflush and nofullflush in IOMMU generic option (commit)

  • autofs4: add miscellaneous device for ioctls (commit), (commit)

  • MODULE_ALIAS() for DMI match tables. (commit)

  • Configure out AIO support (commit)

  • Configure out file locking features (commit)

  • coredump_filter: add hugepage dumping (commit)

  • add CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS (commit)

  • driver core: basic infrastructure for per-module dynamic debug messages (commit)

  • fuse: implement nonseekable open (commit)

  • message queues: increase range limits (commit)

  • raid: make RAID autodetect default a KConfig option (commit)

3. Filesystems

  • EXT4
    • Rename ext4dev to ext4 (commit)

    • Remove old legacy block allocator (commit)

    • Add an option to control error handling on file data (commit)

    • Hook the ext3 migration interface to the EXT4_IOC_SETFLAGS ioctl (commit)

    • Remove automatic enabling of the HUGE_FILE feature flag (commit)

    • Switch to non delalloc mode when we are low on free blocks count. (commit)

  • OCFS2
  • UBIFS
  • GFS2
  • EXT3: add an option to control error handling on file data (commit)

  • CIFS: Add nodfs mount option (commit)

  • NFS: authenticated deep mounting (commit)

4. Networking

  • Netfilter
  • tcp: Port redirection support for TCP (commit)

  • gre: Add Transparent Ethernet Bridging (commit)

  • ipv4: Implement IP_TRANSPARENT socket option (commit)

  • pkt_sched: Add multiqueue scheduler support (commit)

  • Network device name ifalias support (commit)

  • SUNRPC: Support IPv6 when registering kernel RPC services (commit)

  • 9p: RDMA Transport Support for 9P (commit)

  • IPVS
    • Add CONFIG_IP_VS_IPV6 option for IPv6 support (commit)

    • Change IPVS data structures to support IPv6 addresses (commit)

  • DCCP
    • Policy-based packet dequeueing infrastructure (commit)

    • API to query the current TX/RX CCID (commit)

    • Deprecate Ack Ratio sysctl (commit)

    • Port redirection support for DCCP (commit)

    • Query supported CCIDs (commit)

    • Set per-connection CCIDs via socket options (commit)

5. Security

  • Selinux
    • Add support for a dummy policy (commit)

    • Add boundary support and thread context assignment (commit)

  • Netlabel
    • Add functionality to set the security attributes of a packet (commit)

    • Set socket NetLabel based on connection endpoint (commit)

    • Cache NetLabel secattrs in the socket's security struct (commit)

    • Changes to the NetLabel security attributes to allow LSMs to pass full contexts (commit)

    • cipso: Add support for native local labeling and fixup mapping names (commit)

    • Add network address selectors to the NetLabel/LSM domain mapping (commit)

    • Add configuration support for local labeling (commit)

  • smack: limit privilege by label (commit)

6. Tracing/Profiling

  • Dynamically enable readprofile at runtime (commit)

  • Unified trace buffer (commit), (commit), (commit)

  • Ftrace:
    • Add stack tracer. It examines at each function call the size of the stack. If the stack use is greater than the previous max it is recorded. The output is available in /debug/tracing/stack_max_size and /debug/tracing/stack_trace (commit)

    • Add nop tracer. (commit), (commit)

  • OProfile

7. Block

Recommended LWN articles: Block layer: solid-state storage, timeouts, affinity, and more, and Block layer discard requests

  • Support discard requests on SSD devices to improve wear-leveling (commit 1, 2, 3, 4, 5, 6, 7)

  • Add queue flag for SSD/non-rotational devices (commit)

  • Handling online resizing of block drivers (commit), (commit)

  • Extended device numbers (litfs the 16 minors per device on sd to 64, Xen blkfront supports more than 16 xvd)(commit 1, 2,3, 4, 5, 6)

  • deadline-iosched: allow non-sequential batching (commit)

  • Add fault injection mechanism for faking request timeouts (commit)

  • Drop virtual merging accounting (commit), (commit)

8. Crypto

  • RNG interface and implementation (commit)

  • cryptomgr - Add test infrastructure (commit)

  • Api - Use test infrastructure (commit)

  • crc32c - Use Intel CRC32 instruction (commit)

  • cryptomgr - Test ciphers using ECB (commit)

9. WIFI

  • Add the 'minstrel' rate control algorithm (commit)

  • Mesh portal functionality support (commit)

  • cfg80211: Add new wireless regulatory infrastructure (commit)

  • Add multi-rate retry support (commit)

  • Add BSS configuration options for AP mode (commit)

  • mac80211_hwsim: Add minimal IEEE 802.11n support (commit)

10. Architecture-specific changes

  • x86
    • Context switch support using xsave/xrstor (instead of traditional fxsave/fxrstor) (commit 1), 2, 3, 4, 5, 6, 7,8, 9)

    • x2APIC support: A extension of xAPIC architecture to support 32-bit addressability of processors and associated enhancements on interrupt delivery etc., introduced in the i7 processors (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17,18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)

    • Default to reboot via ACPI (commit)

    • Add built-in kernel command line for x86 (commit)

    • Early printk via EHCI debug port (commit)

    • Check for and defend against BIOS memory corruption (commit), (commit)

    • Remove irqbalance in kernel for 32 bit (commit)

    • Tracehook support (commit), (commit)

    • ptrace interface to Branch Trace Store (commit)

    • OProfile AMD IBS ("Instruction-Based Sampling"), introduced by AMD Family10h processors (AMD Opteron Quad-Core processor “Barcelona”) (commit), (commit), (commit)

    • UV: Add UV EFI table entry (commit), add UV bios call infrastructure (commit), add UV partition call (commit), add sysfs entries for UV (commit)

    • Printout msr (commit)

    • AMD microcode patch loading support (commit)

    • Configuration options to compile out x86 CPU support code (commit)

    • Add detection of AMD family 0x11 northbridges (commit)

    • Basic HPET_MSI setup code (commit)

    • L3 cache index disable on AMD CPUs if there're too many MCEs (commit)

    • Add northbridge pci ids for fam 0x11 processors (commit)

  • ARM
    • Added Mitac Mio A701 smartphone support. (commit)

    • Add basic support for the MobilePro 900/c mini-laptop (commit)

    • Improved futex support (commit)

    • Allow configuring user:kernel split via Kconfig (commit)

    • Improve non-executable support (commit)

    • make ZONE_DMA optional (commit)

    • ARMv7 Oprofile support (commit)

    • Finish ARM sparsemem support (commit), allow LH7A40x to use sparsemem (commit), deprecate discontigmem on ARM (commit), enable sparsemem on clps7500 and RiscPC (commit), switch SA1100 to use sparsemem (commit)

    • OMAP: Add support for McBSP devices 3 - 5 on 34xx (commit), add support for OMAP2430 in McBSP (commit), allocate McBSP devices dynamically (commit), powerdomain: Add OMAP3 powerdomains (commit)

    • OMAP2: Add pinmux support for omap34xx (commit), clockdomain: Add base OMAP2/3 clockdomain code (commit), powerdomain: Add base OMAP2/3 powerdomain code (commit), powerdomain: Add OMAP2/3 common powerdomains (commit), powerdomain: Add OMAP2 powerdomains (commit)

    • OMAP3: Add basic board support for OMAP LDP (commit), add minimal Beagle board support (commit), add minimal omap3430 support (commit), add support for the Gumstix Overo board (rev 3) (commit)

    • Orion: Add 88F6183 (Orion-1-90) support (commit), add Buffalo Linkstation Mini power-off method (commit), add Buffalo Linkstation Mini support (commit), add Buffalo Terastation Pro II/Live support (commit), add LaCie Ethernet Disk mini V2 support (commit), add RD88F6183AP-GE support (commit)

    • pxa: add CM-X255 support (commit), add CM-X255 pcmcia support (commit), cm-x255: add NOR and NAND flash support (commit), add preliminary CPUFREQ support for PXA3xx (commit), add support for USB OHCI (commit), (commit)

    • Add support for the Arcom/Eurotech Viper SBC (commit 1, 2, 3, 4)

    • AT91: PWM controller initialization (commit), eeproms on sam9260ek, sam9263ek (commit), PWM LEDs on AT91SAM9263-EK (commit), Touchscreen on AT91SAM9RL (commit), suspend-to-RAM disables main oscillator (commit)

    • Trizeps4 PCMCIA support (commit), SOM update (commit)

    • PalmLD: PCMCIA driver (commit)

    • AFEB9260: board support (commit)

    • Add support for CM-X300 board (commit)

    • MACB ethernet support for AFEB9260 (commit)

    • Add the RGB555 wiring for the atmel LCD (commit)

    • Very basic Palm Zire 72 support (commit)

    • wm97xx generic battery driver (commit)

    • Kirkwood: add support for newer SoC models (commit)

    • MX2: Add DMA support for mx2 and (eventually) mx1 (commit)

    • tosa: add support for bl/lcd driver (commit)

    • Remove old LED support for Trizeps4 SOM (commit)

  • PPC
    • Add support for dynamic reconfiguration memory in kexec/kdump kernels (commit)

    • Make the 64-bit kernel as a position-independent executable (commit)

    • Support for relocatable kdump kernel (commit)

    • Use kernel generic math-emu code (commit)

    • Add PowerPC 40x simple platform support (commit), add support for Netstal HCU4 board (commit)

    • Add PowerPC 44x simple platform support (commit), add AMCC Arches eval board support (commit), add explicit support for AMCC Glacier (commit), add explicit Yosemite support (commit), add PowerPC 4xx GPIO driver (commit)

    • 5121: Add PCI support. (commit)

    • 83xx: add DS1374 RTC support for the MPC837xE-MDS boards (commit), add NAND support for the MPC8360E-RDK boards (commit)

    • Add support for mpc8247 based board MGCOGE from keymile. (commit)

    • Add support for the MPC852 based mgsuvd board from keymile. (commit)

    • Board support for GE Fanuc SBC610 (commit)

    • FPGA support for GE Fanuc SBC610 (commit)

    • gpio driver for mpc8349/8572/8610 and compatible (commit)

    • Add legacy PCI access via sysfs (commit)

  • SH
  • SPARC
    • Add checkstack support (commit)

    • Add GPIO layer support. (commit)

    • Remove bare sbus char bpp driver, obsoleted by parport_sunbpp (commit)

    • Kill SBUS DVMA layer. (commit)

    • Kill sbus mostek RTC driver. (commit)

    • Kill videopix SBUS driver. (commit)

    • remove CONFIG_SUN4 (commit)

    • Sparc32: use RTC subsystem (commit)

    • sparc64:
      • Add JBUS NUMA detection. (commit)

      • Add JBUS UltraSPARC-IIIi support to memory controller driver. (commit)

      • Use generic BQ4802 RTC driver. (commit)

      • Use generic CMOS driver. (commit)

      • Use generic starfire RTC driver. (commit)

      • Use generic sun4v RTC driver. (commit)

  • AVR32
    • Add kernel support for oprofile callgraphs (commit)

    • Added mem kernel command line option support (commit)

    • Add MIMC200 board support (commit)

    • Add support for EarthLCD Favr-32 board (commit)

    • Add support for EVKLCD10X addon boards (commit)

  • Blackfin
    • Add supporting for kgdb (commit)

    • Add supporting for double fault debug handling (commit)

    • Add BF54x / BF52x Rotary Input device driver platform resource to board file (commit)

    • Add new board support for ADZS-BF526-EZ-BRD (commit)

  • MIPS
    • Ptrace support for HARDWARE_WATCHPOINTS (commit)

    • Rewrite spinlocks to ticket locks. (commit)

    • Add support for NXP PNX833x (STB222/5) into linux kernel (commit)

    • DS1286: New RTC driver (commit)

    • PMC MSP71XX gpio drivers (commit)

    • Probe watch registers and report configuration. (commit)

    • RBTX4939: Add smc91x support (commit)

    • TXx9: Add mtd support (commit), add RBTX4939 board support (commit), add TX4939 ATA support (v2) (commit), add TX4939 SoC support (commit), IOC LED support (commit)

  • S390
    • Add ioctl support for EMC Symmetrix Subsystem Control I/O (commit)

    • dcssblk: add >2G DCSSs support and stacked contiguous DCSSs support. (commit)

    • No more 4kb stacks. (commit)

    • ptrace changes (commit)

    • qdio enhanced SIGA (iqdio) support. (commit)

  • IA64
    • Support paravirtualization and Xen guest (commit)

    • Add Variable Page Size and IA64 Support in Intel IOMMU (commit)

  • Xtensa
    • Add support for Diamond 232L - Rev B processor variant (commit)

    • Add support for the Sonic Ethernet device for the XT2000 board. (commit)

  • XEN
  • parisc: Add rtc platform driver (commit)

  • h8300: GENERIC_BUG support (commit)

  • M68K: Remove the broken Hades support (commit)

11. Drivers

11.1. Graphics

  • drm: Rework vblank-wait handling to allow interrupt reduction (commit)

  • fb driver for Graphics chips of VIA UniChrome (Pro) Family (CLE266,PM800/CN400,P4M800CE/P4M800Pro/CN700/VN800,CX700/VX700,P4M890) and Chrome9 Family (K8M890,CN896/P4M900,VX800) (commit), (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

  • Add new framebuffer driver for Fujitsu MB862xx GDCs (commit)

  • Add new TMIO framebuffer driver (commit)

  • i915: Add support for MSI and interrupt mitigation. (commit), disable MSI on GM965 (errata says it doesn't work) (commit)

  • intelfb: support 945GME (as used in ASUS Eee 901) (commit)

  • radeon: add support for RS740 IGP chipsets. (commit), add RS400 family support. (commit)

  • radeonfb: accelerate imageblit and other improvements (commit)

  • matroxfb: support G200eV chip (commit)

  • Suspend support for AMD K7 GART driver (commit)

11.2. Storage

  • SATA
    • implement slave_link (commit)

    • Set queue SSD flag for SSD devices (commit)

    • pata_bf54x: Add proper PM operation (commit)

    • pata_ninja32: suspend/resume support (commit)

    • ata_piix: IDE Mode SATA patch for Intel Ibex Peak DeviceIDs (commit)

    • ahci: Add support for Promise PDC42819 (commit)

  • IDE
  • SCSI
    • lpfc: Add MSI-X support (commit), add new FCOE hardware support (commit), add support for PCI-EEH permanent disabling (commit), update driver for new SLI-3 features (commit), add statistical reporting control and additional fc vendor events (commit), add sysfs control of target queue depth handling (commit)

    • qla2xxx: Add Flash Layout Table support. (commit), add NPIV-Config Table support. (commit)

11.3. Network

  • libertas_tf: New driver supporting "Marvell 8xxx Libertas WLAN driver support with thin firmware" and "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware" (commit 1, 2, 3, 4, 5)

  • ath5k: add Mesh Point support (commit), add support for AR2417 v2 (commit), implement multi-rate retry support (commit)

  • ath9k: Add LED support (commit), add RF kill support (commit), allow AP mode to be enabled (commit)

  • r8169: add a new 8168c flavor (commit), add a new 8168cp flavor (commit). additional 8101 and 8102 support (commit), preliminary 8168d support (commit), support additional 8168cp chipset (commit)

  • e1000e: add support for 82567LM-3 and 82567LF-3 (ICH10D) parts (commit), add support for new 82574L part (commit), add support for the 82567LM-4 device (commit)

  • sfc: Enable TSO for 802.1q VLAN devices (commit), export boot configuration in EEPROM through ethtool (commit)

  • rt2x00: Implement HW encryption (commit), implement HW encryption (rt61pci) (commit), implement HW encryption (rt73usb) (commit)

  • iwlwifi: Added support for 3 antennas (commit), enable packet injection for iwlagn (commit)

  • rtl8187: add device ID 0bda:8198 (commit), add USB ID for Belkin F5D7050 with RTL8187B chip (commit)

  • mv643xx_eth: transmit multiqueue support (commit)

  • bonding: add more ethtool support (commit)

  • myri10ge: add multiqueue TX (commit)

  • cxgb3: Add 1G fiber support (commit), support for Aeluros 2005 PHY (commit)

  • mlx4: Add Ethernet PCI device IDs (commit), ethernet MAC/VLAN management (commit), multiple port type support (commit), add driver for Mellanox ConnectX 10GbE NIC (commit)

  • orinoco: Add WE-18 ioctls for WPA (commit)

  • p54: 802.11a 5GHz phy support (commit), add lots of useful rx/tx statistics (commit), support LM87 firmwares in p54usb (commit)

  • RDMA/nes: Add support for 4-port 1G HP blade card (commit)

  • da903x: add regulator support for DA9030/DA9034 (commit)

  • ibm_newemac: Add support for GPCS, SGMII and M88E1112 PHY (commit)

  • netxen: enable msi-x for quad-gig boards (commit)

  • libertas: Improvements on automatic tx power control via SIOCSIWTXPOW. (commit)

  • cs89x0: add support for i.MX31ADS ARM board. (commit)

  • Add net poll support for atl2 driver (commit)

11.4. Input

  • Add driver for USB VoIP phones with CM109 chipset (commit)

  • ati_remote2 - add autosuspend support (commit), add loadable keymap support (commit)

  • bf54x-keys - add power management support (commit)

  • psmouse - add OLPC touchpad driver (commit), add support for Elantech touchpads (commit)

  • wistron - add support for Fujitsu-Siemens Amilo Pro v3505 (commit)

11.5. USB

  • Added driver for a Delcom USB 7-segment LED Display (commit)

  • Add Freescale QE/CPM USB peripheral controller driver (commit)

  • Add USB test and measurement class driver (commit)

  • Add ZTE MF626 USB GSM modem entry (commit)

  • usb gadget: cdc obex glue (commit)

  • ohci: add support for tmio-ohci cell (commit)

  • option: add Ericsson F3507g and Dell 5530 (commit), add Pantech cards (commit)

  • vstusb.c : new driver for spectrometers used by Vernier Software & Technology, Inc. (commit)

11.6. Sound

  • Add USB Tascam US122L driver (commit)

  • Add jack status reporting API (commit)

  • ASoC: Add WM8750 SPI support (commit), add WM8971 CODEC driver (commit), AD1980 audio codec driver (commit), add mpc5200-psc I2S driver (commit), add support for osk5912 (commit), add Texas Instruments TLV320AIC26 codec driver (commit),add TLV320AIC23 codec driver (commit), add WM8510 SPI support (commit), add WM8580 CODEC driver (commit), add WM8753 SPI support (commit), add WM8900 CODEC driver (commit), add WM8903 CODEC driver (commit), AD73311 audio codec driver (commit), add asoc ad73311 driver supporting in Blackfin boards (commit), add I2S DAI support for AD73311 blackfin arch (commit), AC97 Blackfin CPU DAI driver (commit), add Blackfin arch ASoC Kconfig and Makefile (commit), blackfin board driver for AD1980/1 audio codec (commit), blackfin board driver for SSM2602 sound chip (commit), blackfin DMA Driver for AC97 sound chip (commit), blackfin DMA Driver for I2S sound chip (commit), blackfin I2S CPU DAI driver (commit), include Blackfin architecture support in build (commit), blackfin SPORT peripheral interface driver (commit), SSM2602 audio codec driver (commit)

  • hda: Add AD1882A codec support (commit), add ALC1200 support (commit), add ALC887 support (commit), add another HP model for AD1884A (commit), added 92HD81/83 support (commit), add HDA vendor ID for Wolfson Microelectronics (commit), add model for Toshiba L305 laptop (commit), add more ALC662/663 codec support (commit), add more board-specific information for Realtek ALC662 rev1 (commit), add PCI subsystem ID for MacBookPro4,1 (commit), add support for ECS/PC Chips boards with Sigmatel codecs (commit), add support of Acer Aspire One (commit), add support of ALC272 (commit), add support of HP DC7600 (commit), add support of Quanta FL1 (commit), add support of Toshiba RX1 (commit), add support of Toshiba S06 (commit), appletv support (commit), digital pc-beep support hd-audio codecs (commit), map ALC662 model for Foxconn 45CMX/45GMX/45CMX-K (commit), map ALC662 model for Gigabyte 945GCM-S2L (commit), support more ALC888 devices (commit), add VT1708S and VT1702 support (commit), Second S/PDIF (HDMI) support (commit), NVIDIA MCP78/7A HDMI audio (commit)

  • snd-usb-audio: support for Edirol UA-4FX device (commit), add BOSS GT-10 support (commit), add support for E-Mu Tracker Pre (commit)

  • ac97 - vt1618 7.1 Audio Support (commit)

  • ice1724 - Support for Terrasoniq/MUSONIK TS22 PCI card (commit)

  • snd-ad1816a: add different TerraTec EWS64 S model (commit)

  • virtuoso: add Xonar HDAV1.3 support (commit)

  • cs46xx: Add PCI IDs for TerraTec and Hercules cards (commit)

  • oss: remove driver for SGI HAL2 audio device (commit)

11.7. V4L/DVB

  • initial driver for af9013 demodulator (commit)

  • initial driver for af9015 chipset (commit)

  • radio-mr800: Add driver for AverMedia MR 800 USB FM radio devices (commit)

  • Alternative version of Terratec Cinergy T2 driver (commit)

  • tuner: add FMD1216MEX tuner (commit)

  • bttv: Add support for Encore ENLTV2-FM (commit)

  • v4l: add AC-3 audio support to the MPEG Encoding API (commit)

  • Add support for DViCO FusionHDTV DVB-T Dual Express (commit)

  • cxusb: add support for DViCO FusionHDTV DVB-T Dual Digital 4 (rev 2) (commit)

  • Add support for Micron MT9M111 camera. (commit)

  • Initial support for AME DTV-5100 USB2.0 DVB-T (commit)

  • Add DVB support for the Leadtek Winfast PxDVR3200 H (commit)

  • budget: Support Activy DVB-T with TDHD1 tuner (commit)

  • em28xx-cards: Add vendor/product id for EM2820_BOARD_PROLINK_PLAYTV_USB2 (commit)

  • af9015: Add USB ID for AVerMedia A309 (commit)

  • cx24116: Adding DVB-S2 demodulator support (commit)

  • cx88: Add support for the Hauppauge HVR4000 and HVR4000-LITE (S2) boards (commit)

  • Added support for TeVii S460 DVB-S/S2 card (commit)

  • Added support for DVBWorld 2104 and TeVii S650 USB DVB-S2 cards (commit)

  • Add support for SDMC DM1105 PCI chip (commit)

  • Add support for DVBWorld 2004 DVB-S2 PCI adapter (commit)

  • Add support for Silicon Laboratories SI2109/2110 demodulators. (commit)

  • Add support for USB card modification with SI2109/2110 demodulator. (commit)

  • Added support for Omicom SS4 DVB-S/S2 card (commit)

  • Added support for TBS 8920 DVB-S/S2 card (commit)

  • Add support for ST STV0288 demodulator and cards with it. (commit)

  • saa7134: add support for the triple Asus Tiger 3in1 (commit)

  • Add support for the Gigabyte R8000-HT USB DVB-T adapter. (commit)

  • Add support for new i2c API provided in firmware version 1.20 (commit)

  • Add support YUAN High-Tech STK7700D (1164:1f08) (commit)

  • Add support for Asus My Cinema U3000 Hybrid (commit)

  • Add support for Pinnacle PCTV HD Pro 801e (ATSC only) (commit), (commit)

  • Add support for Non-Pro version of Pinnacle PCTV HD USB Stick (commit)

  • saa7134: Add support for Encore version 5.3 board (commit), add support for Avermedia PCI pure analog (M135A) (commit), add support for Real Audio 220 (commit)

  • Add support for Prolink Pixelview Global Extreme (commit)

  • Add ADS Tech Instant HDTV PCI support (commit)

  • Pinnacle Hybrid PCTV Pro (pctv310c) DVB-T support (commit)

  • gspca: New subdriver 'finepix' added. (commit), (commit), sonixj webcam 0c45:60fe added. (commit), PAC 207 webcam 093a:2476 added. (commit), sonixj webcam 0458:702e added. (commit)

  • uvcvideo: Support two new Bison Electronics webcams. (commit), add support for Advent 4211 integrated webcam (commit), add support for a Bison Electronics webcam found in the Fujitsu Amilo SI2636. (commit)

  • anysee: support for Anysee E30 Combo Plus (commit)

  • Add support for DVBWorld USB cards with STV0288 demodulator. (commit)

  • Added support for Prof 7300 DVB-S/S2 cards (commit)

  • tuner-3036: remove driver (commit)

11.8. HID

  • Generate aliases for hid device modules to support autoloading (commit), (commit)

  • Add support for another Gyration remote control (commit)

  • Add support for Bright ABNT2 brazilian device (commit)

  • Add support for Sony Vaio VGX-TP1E (commit)

  • Add support for Super Dual Box Pro USB PS2/PS2 adapter (commit)

  • Autocentering support for Logitech MOMO Racing Wheel (commit)

  • Remove hid-ff (commit)

11.9. HWMON

11.10. I2C

  • i2c-i801: Add support for Intel Ibex Peak (commit)

  • Renesas Highlander FPGA SMBus support (commit)

  • i2c-viapro: Add VX800/VX820 support (commit)

  • i7300_idle driver v1.55 (commit)

11.11. Multi-Function Devices

11.12. MTD

  • Add Macronix CFI V1.0 TopBottom detection (commit)

  • Dataflash OTP support (commit)

  • m25p80.c extended jedec support (commit)

  • NAND:
    • Driver extension to support NAND on TQM85xx modules (commit)

    • Freescale i.MX2 NAND driver (commit)

    • GPIO NAND flash driver (commit)

    • nand_ecc.c: adding support for 512 byte ecc (commit)

    • sh_flctl: add support for Renesas SuperH FLCTL (commit)

  • OneNAND:
    • Add defines for HF and sync write (commit)

    • Add OMAP2 / OMAP3 OneNAND driver (commit)

11.13. RTC

  • Add device driver for Dallas DS3234 SPI RTC chip (commit)

  • Add Starfire platform RTC driver. (commit)

  • Add Sun4V hypervisor RTC driver. (commit)

  • Add TI BQ4802 RTC driver. (commit)

  • Allow RTC_DRV_CMOS to be used on SPARC. (commit)

  • M48T35: new RTC driver (commit)

  • rtc-m48t59: add support for M48T02 and M48T59 chips (commit)

  • rtc-m41t80.c: add support for the ST M41T65 RTC (commit)

  • rtc-rs5c372: add support for Ricoh R2025S/D RTC (commit)

  • Delete old and now unused DS1286 driver. (commit)

  • Delete old and now unused M48T35 RTC driver for SGI IP27. (commit)

11.14. WATCHDOG

  • Add AT91SAM9X watchdog (commit)

  • Add driver for winbond w83697ug/uf watchdog feature (commit)

  • Add watchdog driver IT8716 IT8726 IT8712J/K (commit)

  • Orion: add hardware watchdog support (commit)

11.15. LED

  • Add backlight LED trigger (commit)

  • Add driver for HP harddisk protection LEDs (commit)

  • Add driver for Sunfire UltraSPARC server LEDs. (commit)

  • da903x: Add support for LEDs found on DA9030/DA9034 (commit)

  • Remove uneeded leds-cm-x270 driver (commit)

11.16. ACPI

  • dock: add bay and battery hotplug support, delete bay driver (commit 1, 2, 3)

  • acer-wmi: Add rfkill support for wireless and bluetooth (commit)

  • Add the support for _TTS object (commit)

  • Validation for predefined ACPI methods/objects (commit)

  • Add Intel ACPI IGD OpRegion support (commit)

11.17. Various

  • MMC
    • sdio: high-speed support (commit)

    • s3cmci: cpufreq support (commit)

    • atmel-mci: Add experimental DMA support (commit), platform code for supporting multiple mmc slots (commit), support multiple mmc slots (commit)

  • serial
    • Allow 8250 to be used on sparc (commit), add more OxSemi devices (commit), add support for Oxford Semiconductor Devices (commit)

    • sh-sci: Add support SCIF of SH7723 (commit)

    • coldfire: scheduled SERIAL_COLDFIRE driver removal (commit)

  • lcd
    • Add SPI-based LCD and backlight driver for SHARP corgi/spitz (commit)

    • Add support for Toppoly TDO24M series LCD panels (commit)

  • backlight
    • Add driver for Tabletkiosk Sahara TouchIT-213 Tablet PC (commit)

    • Add support for Sharp SL-6000 LCD and backlight drivers (commit)

    • da903x: Add backlight driver for DA9030/DA9034 (commit)

  • W1
    • New driver. DS2431 chip (commit)

    • Be able to manually add and remove slaves (commit)

    • Enable hardware strong pullup (commit)

  • CPUFREQ: Add idle microaccounting in ondemand governor (commit)

  • regulator: Add WM8350 regulator support (commit), add WM8400 regulator support (commit)

  • power_supply: Support for Texas Instruments BQ27200 battery managers (commit)

  • pc8736x_gpio: add support for PC87365 chips (commit)

  • panasonic-laptop: add Panasonic Let's Note laptop extras driver v0.94 (commit)

  • asus-laptop: Add support for P30/P35 (commit)

  • edac x38: Memory error and detection on Intel X38 chipsets (commit)

  • UIO: add automata sercos3 pci card support (commit)

11.18. Other sources tracking the kernel changes

没有评论: