免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3415 | 回复: 0
打印 上一主题 下一主题

linux 2.6.24 changelog [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-03 18:40 |只看该作者 |倒序浏览

                                                Linux 2 6 24
Spam: Ulrich Drepper, the libc maintainer, has published a
must-read paper
about "What every programmer should know about memory"
Linux kernel version 2.6.24 Released 24 January 2008 (
full SCM git log
)
目录

  • Short overview (for news sites, etc)

  • Important things (AKA: ''the cool stuff'')

  • CFS improvements

  • Tickless support for x86-64, PPC, UML, ARM, MIPS

  • New wireless drivers and configuration interface

  • Anti-fragmentation patches

  • SPI/SDIO support in the MMC layer

  • USB authorization

  • Per-device dirty memory thresholds

  • PID and network namespaces

  • Large Receive Offload (LRO) support for TCP traffic

  • Task Control Groups

  • Linux Kernel Markers

  • Read-only bind mounts

  • x86-32/64 arch reunification

  • New drivers

  • Subsystems

  • Memory management

  • Various

  • Networking

  • Filesystems

  • CRYPTO

  • SELinux

  • KVM

  • DM

  • Audit

  • Architecture-specific changes

  • Drivers

  • Buses

  • Graphics

  • SATA/IDE

  • Networking

  • Sound

  • ACPI

  • MTD

  • Input

  • SCSI

  • USB

  • HID

  • V4L/DVB

  • HWMON

  • Cpufreq

  • I2C

  • Bluetooth

  • Watchdog

  • FireWire

  • Various

  • Crashing soon a kernel near you

    1. Short overview (for news sites, etc)
    2.6.24
    includes CPU "group scheduling", memory fragmentation avoidance,
    tickless support for x86-64/ppc and other architectures, many new
    wireless drivers and a new wireless configuration interface, SPI/SDIO
    MMC support, USB authorization, per-device dirty memory thresholds,
    support for PID and network namespaces, support for static probe
    markers, read-only bind mounts, SELinux performance improvements, SATA
    link power management and port multiplier support, Large Receive
    Offload in network devices, memory hot-remove support, a new framework
    for controlling the idle processor power management, CIFS ACLs support,
    many new drivers and many other features and fixes.
    2. Important things (AKA: ''the cool stuff'')
    2.1. CFS improvements
    Performance/size improvements
    The CFS task scheduler
    merged in Linux 2.6.23
    is getting
    some microoptimization work
    in 2.6.24. 2.6.23's CFS context switching is more than 10% slower than
    the old task scheduler. With the optimization done in 2.6.24, CFS is
    now even a bit faster than the old task scheduler (which is quite fast
    already). The compiled size of the scheduler has also improved and now
    it's a bit smaller on UP and a lot smaller in SMP.
    Fair Group Scheduling
    You can read
    this recommended article
    about the Fair Group Scheduling feature.
    Another
    feature in the scheduler is Fair Group Scheduling. Normally the
    scheduler operates on individual tasks and strives to provide fair CPU
    time to each task. Sometimes, it may be desirable to group tasks and
    provide fair CPU time to each such task group. For example, it may be
    desirable to first provide fair CPU time to each user on the system and
    then to each task belonging to a user. In other words, given two users,
    one running one cpu-bound process and the other two cpu-bound
    processes, you may want to give 50% of CPU time to the first users and
    his task, and 50% to the other user, which will be shared between his
    two processes - 25% of CPU time for each. Group Scheduling provides the
    ability to choose partitions to support the previous scenario.
    At
    present, there are two (mutually exclusive) mechanisms to group tasks
    for CPU bandwidth control purpose: 1) Group scheduling based on user
    id, which is the case previously mentioned as example. This mechanism
    is configurable, which means you can have more CPU time than just a
    50%/50% rule - for example, you can assign user root double the
    priority of other users. 2) Group scheduling. This mechanism (based in
    the "task control groups", see section 2.10) lets the administrator
    create arbitrary groups of tasks (ie: "multimedia", "compiling"), set
    how much CPU time 'priority' you want to give that group by catting the
    value to its cpu_share file, and then attach a PID to whatever task
    group you want. Documentation on how to use those two features can be
    found in
    Documentation/sched-design-CFS.txt
    .
    guest time reporting
    Additionally,
    the task scheduler in 2.6.24 is adding a new "guest" field after
    "system" and "user" in /proc//stat, where it tracks how much
    CPU time a task is spending in running a 'virtual' CPU.
    2.2. Tickless support for x86-64, PPC, UML, ARM, MIPS
    The Tickless feature was
    added in Linux 2.6.21
    .
    This feature allows the kernel to disable timer interrupts for longer,
    variable periods, saving some power and improving performance,
    especially in virtual guests. 2.6.24 adds tickless support to the
    widespread 64-bit x86 architecture, but also to PPC, the virtualized
    architecture UML, and some variants of ARM and MIPS. They join the
    already tickless supported x86-32, SPARC-64 and SH.
    2.3. New wireless drivers and configuration interface
    New wireless configuration interface
    In
    Linux 2.6.22
    ,
    Linux got a new wireless stack. This new stack is backwards compatible
    with the old ioctl-based configuration of the old stack. However, the
    new stack was designed to have a much better configuration interface,
    based on netlink. While the backwards compatibility isn't going away,
    all wireless configuration tools are recommended to have long-term
    plans to switch to the new interface.
    Drivers
    In Linux 2.6.22, the mac80211 (formerly d80211) wireless stack was
    merged
    ,
    but not many drivers that use this new stack have been merged (only
    one). Linux 2.6.24 will have a lot of new wireless drivers using the
    new stack; 2.3 MB of source files in total:
    • iwlwifi driver for the Intel PRO/Wireless 3945ABG/BG Network Connection and Intel Wireless Wifi Link AGN (4965) adapters
      (commit)

    • rt2x00
      driver for Ralink wireless hardware (rt2400 pci/pcmcia, rt2500
      pci/pcmcia, rt61 pci/pcmcia, rt2500 usb, rt73 usb). Check the
      hardware matrix

      (commit)

    • adm8211
      driver for the ADMtek ADM8211x based wireless cards. These are
      PCI/mini-PCI/Cardbus 802.11b chips found in cards such as: Xterasys
      Cardbus XN-2411b, Blitz Netwave Point PC, Trendnet 221pc, Belkin
      F5d6001, SMC 2635W, Linksys WPC11 v1, Fiberline FL-WL-200X, 3com Office
      Connect (3CRSHPW796), Corega WLPCIB-11, SMC 2602W V2 EU, D-Link DWL-520
      Revision C
      (commit)

    • b43
      driver for modern BCM43xx devices. This driver supports the new BCM43xx
      IEEE 802.11G devices, but not the old IEEE 802.11B devices - those are
      supported by the b43legacy driver. This driver uses V4 firmware, which
      must be installed separately using b43-fwcutter
      (commit)

    • b43legacy
      driver for legacy BCM43xx devices from Broadcom (BCM4301 and BCM4303)
      and early model 802.11g chips (BCM4306 Ver. 2) used in the Linksys
      WPC54G V1 PCMCIA devices. Newer 802.11g and 802.11a devices need the
      b43 driver. This driver uses V3 firmware, which must be installed
      separately using b43-fwcutter
      (commit)

    • p54 driver for prism54 softmac pci/usb hardware
      (commit)

    • Driver for Marvell Libertas 8385 Compactflash 802.11b/g cards
      (commit)

    • Libertas sdio driver
      (commit)

    There are also a lot of network (non-wireless) drivers being merged, look at the section 2.14, "new drivers"
    2.4. Anti-fragmentation patches
    You can read
    this recommended article
    about the "Anti-fragmentation" feature.
    A
    known weakness of the Linux kernel is the memory fragmentation that the
    system faces after days without rebooting or after intense operations.
    This makes difficult to do "high-order" memory allocations (allocations
    larger than the native page size - 4 KB on x86). It's relatively easy
    to trigger those cases. For example a network driver may try to
    allocate 4 pages to store data received from the network. This
    allocation may not succeed despite there being plenty of free memory
    available, as there is no single uninterrupted block of memory big
    enough (fragmentation). For almost three years patient developers have
    been continually developing and improving the anti-fragmentation
    patches to improve the memory allocator and reduce the tendency to
    fragment. These efforts have been finally merged in 2.6.24.
    The
    purpose of this feature is to reduce external fragmentation by grouping
    pages of related types together. When pages are migrated (or reclaimed
    under memory pressure), large contiguous pages will be freed.
    Allocations are categorized by their ability to migrate. Tests show
    that about 60-70% of physical memory can be allocated on a desktop
    after a few days uptime. In benchmarks and stress tests, it has been
    found that 80% of memory is available as contiguous blocks at the end
    of the test. To compare, a standard kernel was getting
    2.5. SPI/SDIO support in the MMC layer
    The MMC
    layer, which is the code which implements support for MMC/SD memory
    cards, is suffering one of the biggest transformations in its life,
    because it has been
    heavily modified
    to get support for
    SDIO
    and
    SPI
    .
    SDIO
    is an alias for "Secure Digital I/O", and it allows to use the SD card
    slot (in the devices that support SDIO, ie. PDAs, cell phones or
    laptops) to use "small devices designed for the SD form factor, like
    GPS receivers, Wi-Fi or Bluetooth adapters, modems, Ethernet adapters,
    barcode readers, IrDA adapters, FM radio tuners, TV tuners, RFID
    readers, digital cameras, or other mass storage media such as hard
    drives" (quote from the
    Wikipedia entry
    ).
    There are currently three working drivers for this new stack:
    sdio_uart, a driver for the standardised GPS interfaces; libertas_sdio,
    a driver for Marvell's 8686 Libertas wifi chip; and hci_sdio, a driver
    for the standardised bluetooth interface.
    SPI
    is required by SDIO, and it's a "bus" (like IDE, SATA, USB...) which is
    used to access a wide range of devices, but more importantly, some
    systems require to access MMC/SD cards using a SPI controller instead
    of using a "native" MMC/SD controller. This has a disadvantage of being
    relatively high overhead, but a compensating advantage of working on
    many systems without dedicated MMC/SD controllers. 2.6.24 includes
    support for SPI and a experimental "MMC/SD over SPI" driver.
    (commit)
    ]
    2.6. USB authorization
    As part of the efforts to make the USB layer ready for
    wireless USB
    ,
    Linux 2.6.24 is getting support for USB device authorization, which
    allows you to control if a USB device (wireless or not) can be used or
    not in a system. As of now, when a USB device is connected it is
    configured and it's interfaces immediately made available to the users.
    With this modification, only if root authorizes the device to be
    configured will then it be possible to use it.
    Beside
    of providing a infrastructure to allow secure usage of wireless USB
    devices, this feature also allows to implement kiosk-style lockdown of
    USB devices, fully controlled by user space. Every USB device has a
    corresponding /sys/bus/usb/devices//authorized file. Writing 1 to that file authorizes a device to connect, 0 deauthorizes it. USB hosts can also set new devices connected to be deauthorized by writing 0 (or 1 to authorize) to /sys/bus/usb/devices/usb/authorized_default.
    By default, wired USB devices are authorized by default to connect, and
    wireless USB hosts deauthorize by default all new connected devices
    (this is so because they need to do an authentication phase before
    authorizing).
    2.7. Per-device dirty memory thresholds
    You can read
    this recommended article
    about the "per-device dirty thresholds" feature.
    When
    a process writes data to the disk, the data is stored temporally in
    'dirty' memory until the kernel decides to write the data to the disk
    ('cleaning' the memory used to store the data). A process can 'dirty'
    the memory faster than the data is written to the disk, so the kernel
    throttles processes when there's too much dirty memory around. The
    problem with this mechanism is that the dirty memory thresholds are
    global, the mechanism doesn't care if there are several storage devices
    in the system, much less if some of them are faster than others. There
    are a lot of scenarios where this design harms performance. For
    example, if there's a very slow storage device in the system (ex: a USB
    1.0 disk, or a NFS mount over dialup), the thresholds are hit very
    quickly - not allowing other processes that may be working in much
    faster local disk to progress. Stacked block devices (ex: LVM/DM) are
    much worse and even deadlock-prone (check the LWN article).
    In
    2.6.24, the dirty thresholds are per-device, not global. The limits are
    variable, depending on the writeout speed of each device. This improves
    the performance greatly in many situations.
    2.8. PID and network namespaces
    You can read
    this recommended article
    , and
    this one
    , about the "PID and network namespaces" feature.
    Usually,
    there's a global PID namespace for a whole Linux system: The list of
    processes contains all the processes running in the system. There's
    also a global view of the networking stack (routing tables and firewall
    rules, etc). However,
    operating-system virtualization
    like
    OpenVZ
    or
    Vserver
    need to have different views of the PID namespace and the networking
    stack. Linux 2.6.24 adds PID namespaces and basic support for network
    namespaces. They're used through the CLONE_NEWPID and CLONE_NEWNET
    clone() flags.
    2.9. Large Receive Offload (LRO) support for TCP traffic
    You can read
    this recommended article
    about the "Large Receive Offload" feature.
    LRO
    combines received tcp packets to a single larger tcp packet and passes
    them then to the network stack in order to increase performance
    (throughput). After many out-of-the-tree iterations, mainline Linux is
    getting support for this feature
    (commit)
    ,
    (commit)
    ,
    (commit)

    2.10. Task Control Groups
    There have
    been various proposals in the Linux arena for resource
    management/accounting and other task grouping subsystems in the kernel
    (Resgroups, User Beancounters, NSProxy cgroups, and others). Task
    Control Groups is the framework that is getting merged in 2.6.24 to
    fulfill the functionality that lead to the creation of such proposals.
    TCG can track and group processes into arbitrary "cgroups" and assign
    arbitrary state to those groups, in order to control its behaviour. The
    intention is that other subsystems hook into the generic cgroup support
    to provide new attributes for cgroups, such as accounting/limiting the
    resources which processes in a cgroup can access.
    For
    example, cpusets (see Documentation/cpusets.txt) allows you to
    associate a set of CPUs and a set of memory nodes with the tasks in
    each cgroup. The CFS group scheduling feature uses cgroups to control
    the CPU time that every cgroup can get. Other various resource
    management and virtualization/cgroup efforts can become task cgroup
    clients. The configuration interface is described in
    Documentation/cgroups.txt
    2.11. Linux Kernel Markers
    You can read
    this recommended article
    about the "Linux Kernel Markers" feature.
    The
    Linux Kernel Markers implement static probing points for the Linux
    kernel. Dynamic probing system like kprobes/dtrace can put probes
    pretty much anywhere. However, the scripts that dynamic probing points
    use can become quickly outdated, because a small change in the kernel
    may trigger a rewrite of the script, which needs to be maintained and
    updated separately, and will not work for all kernel versions. Thats
    why static probing points are useful, since they can be put directly
    into the kernel source code and hence they are always in sync with the
    kernel development. Static probing points apparently can also have some
    performance advantages. They've no performance costs when they're not
    being used.
    The
    kernel markers are a sort of "derivative" of the long-time external
    patchset "Linux Trace Toolkit" (LTT), which is a feature that has been
    around since
    1999
    . The Kernel Markers are a feature needed for the
    SystemTap
    project. In this release, there are no probing points being included,
    but many will be certainly included in the future, and some tracking
    tools like blktrace will probably be ported to this kind of
    infrastructure in the future.
    2.12. Read-only bind mounts
    Read-only
    bind mounts (mount --bind) allows a read-only view into a read-write
    filesystem. In the process of doing that, it also provides
    infrastructure for keeping track of the number of writers to any given
    mount. This has a number of uses. It allows chroots to have parts of
    filesystems writable. It will be useful for containers in the future
    because users may have root inside a container, but should not be
    allowed to write to somefilesystems.
    It
    allows security enhancement by making sure that parts of your
    filesystem are read-only (such as when you don't trust your FTP
    server), when you don't want to have entire new filesystems mounted, or
    when you want atime selectively updated.
    2.13. x86-32/64 arch reunification
    You can read
    this recommended article
    .
    When
    support for the x86-64 AMD architecture was developed, it was decided
    to develop it as a "fork" of the traditional x86 architecture for
    comodity reasons. Many patches needed to patch a file in the i386
    architecure directory, and another similar patch for the duplicated
    file in the x86_64 directory. It has been decided to unify both
    architectures in the same directory again.
    This
    reunification has not been done in a radical way. In this release, both
    architectures have been unified in arch/x86, but only in appearance.
    All the source files in i386 and x86-64 directories have been moved to
    arch/x86, but renaming them with "_32" and "_64" suffixes. Ex:
    arch/i386/kernel/reboot.c has been moved to
    arch/x86/kernel/reboot_32.c, and arch/x86_64/kernel/reboot.c has been
    moved to arch/x86/kernel/reboot_64.c. Makefiles have been modified
    accordingly. So for now the reunification has been pretty much just a
    relocation of all the files and adaptation of the build machinery to
    make it compile just as it'd have been compiled in the old separated
    directories, done mostly with scripts.
    In
    the future lots of those files will be unified and shared by both
    architectures, ex. reboot_32.c and reboot_64.c into reboot.c, and many
    files have already been unified in this release. Others will keep
    separated forever, due to the differences between both architectures.
    2.14. New drivers
    Graphics
    • Add
      the uvesafb driver. uvesafb is an enhanced version of vesafb. It uses a
      userspace helper (v86d) to execute calls to the x86 Video BIOS
      functions. The driver is not limited to any specific arch and whether
      it works on a given arch or not depends on that arch being supported by
      the userspace daemon
      (commit)
      ,
      (commit)

    • Add a framebuffer driver for Blackfin BF54x framebuffer device driver
      (commit)

    SATA/IDE
    • Add driver for bf548 on chip ATAPI controller.
      (commit)

    • Add AVR32 PATA driver
      (commit)

    • Add platform IDE driver, used mostly for Memory Mapped IDE devices, like Compact Flashes running in True IDE mode
      (commit)

    • Add driver pata_cs5536 ATA driver for Geode companion chip
      (commit)

    • Add driver for Freescale 3.0Gbps SATA Controllers
      (commit)

    Network(wireless)
    • Look at the section 2.3 "New wireless drivers and configuration interface"
    Network
    • Add ixgbe driver for Intel(R) 82598 PCI-Express 10GbE adapters (v4)
      (commit)

    • Add new E1000E pci-express e1000 driver (currently for ICH9 devices only)
      (commit)

    • Add Sun Neptune ethernet driver.
      (commit)

    • Add fast ethernet controller driver for mpc52xx
      (commit)

    • Add driver for IP1000A GBit cards
      (commit)

    • Add Tehuti network driver.
      (commit)

    • Add AR7 ethernet driver
      (commit)

    • Add device tree-aware EMAC driver
      (commit)

    • Virtual ethernet device driver.
      (commit)

    • Add IrDA driver for Kingsun Dazzle IrDA USB
      (commit)
      ,
    • Add IrDA driver for Kingsun KS-959 IrDA USB
      (commit)

    Sound
    • Add driver for the AT73C213 DAC using Atmel SSC
      (commit)

    • Add ASoC CS4270 codec device driver
      (commit)

    • Add driver for Gallant SC-6000 card and clones: Audio Excel DSP 16 and Zoltrix AV302
      (commit)

    MTD
    • Add map driver for NOR flash on the Intel Vermilion Range chipset
      (commit)

    • Add blackfin on-chip NAND Flash Controller driver
      (commit)

    • Add NAND Driver for Olympus MAUSB-10 and Fujifilm DPC-R1 card readers
      (commit)

    USB
    V4L/DVB
    • Add ivtv-fb framebuffer driver for cx23415 devices
      (commit)

    • Add a driver for Toshiba TCM825x VGA camera sensor
      (commit)

    • Add driver for the internal MPX of the Panasonic VP27s tuner
      (commit)

    • Add driver for the silicon baseband tuner MT2266 from Microtune
      (commit)

    • Adding driver for the silicon baseband tuner MT2131 from Microtune tuner
      (commit)

    • Add driver for the Samsung S5h1409 demodulator, also known as the Conexant CX24227 demodulator
      (commit)

    • Add driver for the silicon baseband tuner DIBB0070 from DIBcom
      (commit)

    • Add CX23885/CX23887 PCIe bridge driver
      (commit)
      ,
      (commit)

    Hwmon
    • Add driver for FSC chips
      (commit)

    • Add driver for Fintek F71882FG and F71883FG Super-I/O chips
      (commit)

    • Add driver for Analog Devices ADT7470 chips
      (commit)

    • Add driver for Fintek F75375S/SP and F75373 chips
      (commit)

    • IBM power meter driver
      (commit)

    • Add driver for the SMSC SCH3112, SCH3114, and SCH3116 Super-I/O chips
      (commit)

    • New driver to read FB-DIMM temperature sensors on systems with the Intel 5000 series chipsets
      (commit)

    I2C
    • Add Davinci I2C controller support
      (commit)

    Bluetooth
    • Add generic driver for Bluetooth SDIO
      (commit)
      and USB devices
      (commit)

    • Add UART driver for Texas Instruments' BRF63xx chips
      (commit)


    3. Subsystems
    3.1. Memory management
    • Memory hot-remove support
      (commit 1
      ,
      2
      ,
      3
      ,
      4
      ,
      5)

    • Generic
      Virtual Memmap support for SPARSEMEM: SPARSEMEM is a pretty nice
      framework that unifies quite a bit of code over all the arches, and it
      would be great if it could be the default so that the various forms of
      DISCONTIG and other variations on memory maps can be killed. So far
      what has hindered this are the additional lookups that SPARSEMEM
      introduces for virt_to_page and page_address. This patch is a step to
      solve that problem and has the potential to allow to make SPARSMEM the
      default (and even the only) option for most systems
      (commit 1
      ,
      2
      ,
      3
      ,
      4
      ,
      5)

    • Dynamic huge page pool resizing
      (commit 1
      ,
      1
      ,
      2
      ,
      3
      ,
      4
      ,
      5)

    • Use lockless radix-tree probe
      (commit)

    • Memoryless nodes: Hardware from SGI, HP and Fujitsu can have sometimes configurations of nodes with CPUs but not memory
    • Remove ZERO_PAGE
      (commit)

    • SLUB:
      direct pass through of page size or higher kmalloc requests, reducing
      memory overhead and improving performance in many cases
      (commit)

    • oom:
      add oom_kill_allocating_task sysctl, which will automatically kill the
      OOM-triggering task instead of scanning through the tasklist to find a
      memory-hogging target
      (commit)

    • Add node states sysfs class attributes in /sys/devices/system/node/
      (commit)


    3.2. Various
    • Intel IOMMU driver
      (commit 1
      ,
      2
      ,
      2)

    • cpuidle:
      CPU idle is a generic framework for supporting software-controlled idle
      processor power management. It includes modular cross-platform
      governors that can be swapped during runtime, including one optimized
      for NO_HZ, "menu"
      (commit)
      ,
      (commit)

    • Virtio:
      It's a "virtual I/O" layer which should allow common drivers to be
      efficiently used across most virtual I/O mechanisms. It includes a
      network driver, a block driver, a console driver, virtio transport for
      9p, and lguest support
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)

    • Remove fixed limit on number of guests, and lguests array
      (commit)

    • readahead: support of interleaved reads
      (commit)

    • Add
      a new per-cpuset flag called 'sched_load_balance'. When enabled in a
      cpuset (the default value) it tells the kernel scheduler that the
      scheduler should provide the normal load balancing on the CPUs in that
      cpuset, sometimes moving tasks from one CPU to a second CPU if the
      second CPU is less loaded and if that task is allowed to run there.
      When disabled (write "0" to the file) then it tells the kernel
      scheduler that load balancing is not required for the CPUs in that
      cpuset. This serves two purposes: 1) It provides a mechanism for real
      time isolation of some CPUs, and 2) it can be used to improve
      performance on systems with many CPUs by supporting configurations in
      which load balancing is not done across all CPUs at once, but rather
      only done in several smaller disjoint sets of CPUs
      (commit)

    • Arbitrary
      boot kernel in hibernation resume: It's not possible to hibernate a
      system and try to resume from hibernation with a different kernel -
      2.6.24 changes that
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)

    • Extended crashkernel command line
      (commit)
      ,
      (commit)

    • Chained sg support
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)
      ,
      (commit)

    • Export processes resource limits via /proc
      (commit)

    • Implement file posix capabilities (
      recommended LWN article
      about this feature)
      (commit)

    • Improve performance of sys_time() (improves the sysbench oltp macrobenchmark by 4-5%)
      (commit)

    • softlockup: add softlockup_thresh sysctl to control the trigger limit for softlockup warnings
      (commit)

    • Add scaled time to taskstats based process accounting
      (commit)
      ,
      (commit)

    • Console keyboard events accessibility
      (commit)
      ,
      (commit)

    • Add /sys/module/name/notes
      (commit)

    • Allow passing of arguments to user mode helper when core_pattern is a pipe
      (commit)

    • Add
      vmcoreinfo: This feature frees the restriction that makedumpfile users
      should install a vmlinux file (including the debugging information)
      into each system
      (commit)

    • quota: send messages via netlink
      (commit)

    • Driver core: add CONFIG_UEVENT_HELPER_PATH
      (commit)

    • Add kernel parameter to overwrite legacy pty count
      (commit)

    • unicode diacritics support
      (commit)

    • Add the MMF_DUMP_ELF_HEADERS option to /proc/pid/coredump_filter
      (commit)

    • NBD: allow hung network I/O to be cancelled
      (commit)

    • F_DUPFD_CLOEXEC fcntl() command implementation
      (commit)

    • Convert LSM into a static interface
      (commit)


    3.3. Networking
    • IPv4
    • IPv6
      • Add ICMPMsgStats MIB (
        RFC 4293
        ) for IPV6
        (commit)

      • Update setsockopt(IPV6_MULTICAST_IF) to support RFC 3493, try2
        (commit)

      • Export userland ND options through netlink (RDNSS support)
        (commit)

    • TCP
      • Discard fuzzy SACK blocks
        (commit)

      • Enable SACK enhanced FRTO (RFC4138) by default
        (commit)

    • UDP
    • SCTP
    • DCCP
    • Wireless
      • Add support for setting TX power and radio status
        (commit)

      • Revamp interface and filter configuration
        (commit)

      • Add association LED trigger
        (commit)

      • Implement ERP info change notifications
        (commit)

      • Add SIOCGIWTXPOWER routine
        (commit)

    • 9p: Make transports dynamic
      (commit)
      and attach-per-user support
      (commit)

    • Add stateless NAT on IPv4 packets
      (commit)

    • Netfilter:
      Add xt_time match: a "time" match, which allows you to match based on
      the packet arrival time (at the machine which netfilter is running) or
      departure time/date (for locally generated packets)
      (commit)

    • Convert IP route cache garbage collection from softirq processing to a workqueue
      (commit)

    • Dynamically allocate the loopback device
      (commit)
      ,
      (commit)

    • bonding: Optionally allow ethernet slaves to keep own MAC
      (commit)

    • AF_PACKET: Don't enable global timestamps.
      (commit)

    • Add ETHTOOL_[GS]FLAGS sub-ioctls
      (commit)
      ,
      (commit)

    • XFRM: xfrm audit calls
      (commit)

    • PKTGEN: Multiqueue support.
      (commit)

    • RFKILL: Add support for ultrawideband
      (commit)
      , for an rfkill LED.
      (commit)
      , for hardware-only rfkill buttons
      (commit)


    3.4. Filesystems
    • CIFS
    • EXT4
      • Uninitialized
        Block Groups. In performance tests testing e2fsck time, e2fsck time on
        ext3 grows linearly with the total number of inodes in the filesytem.
        In ext4 with the uninitialized block groups feature, the e2fsck time is
        constant, based solely on the number of used inodes rather than the
        total inode count. Since typical ext4 filesystems only use 1-10% of
        their inodes, this feature can greatly reduce e2fsck time for users.
        With performance improvement of 2-20 times, depending on how full the
        filesystem is
        (commit)
        ,
        (commit)

    • OCFS2
    • NFS
    • FUSE
      • Support BSD locking semantics
        (commit)

      • Add support for mandatory locking
        (commit)

    • JFFS2
    • XFS
      • Radix tree based inode caching
        (commit)

    • EXT2
      • Ext2 port of the reservations code from ext3 (improves the performance a lot)
        (commit)

    • EXT3
      • Support large blocksize up to PAGESIZE for platforms like IA64, which has a 64k page size
        (commit)

    • UFS
      • Add in SunOS 4.1.x compatible mode
        (commit)


    3.5. CRYPTO
    • seed: New cipher algorithm
      (commit)

    • api: Add aead crypto type
      (commit)

    • aead: Add authenc
      (commit)

    • xts: XTS blockcipher mode implementation without partial blocks
      (commit)


    3.6. SELinux

    3.7. KVM
    • Use the scheduler preemption notifiers to make kvm preemptible
      (commit)

    • Communicate cr8 changes to userspace - allows running 64-bit Windows
      (commit)

    • Emulate
      local APIC in kernel, because lightweight exits (exits which don't
      involve userspace) are many times faster than heavyweight exits, it
      makes sense to emulate high usage devices in the kernel
      (commit)

    • Emulate hlt in the kernel
      (commit)

    • Add support for in-kernel PIC emulation
      (commit)

    • In-kernel I/O APIC model
      (commit)


    3.8. DM

    3.9. Audit

    3.10. Architecture-specific changes

    4. Drivers
    4.1. Buses
    • PCI:
      • Implement "pci=noaer"
        (commit)

      • Introduce and enable PCI domain support in x86
        (commit)
        , add 'nodomains' boot option, and pci_domains_supported global
        (commit)

    • Add Sonics Silicon Backplane bus support
      (commit)


    4.2. Graphics
    • XilinxFB: Add support for custom screen resolution
      (commit)

    • pm2fb: accelerated 24-bit fillrect
      (commit)
      , accelerated imageblit
      (commit)
      , Permedia 2V hardware cursor support
      (commit)
      , hardware cursor support for the Permedia2
      (commit)

    • pm3fb: mtrr support and noaccel option
      (commit)
      , copyarea and partial imageblit suppor
      (commit)
      , hardware cursor support
      (commit)

    • mbxfb: Improvements and some new features
      (commit)

    • tdfxfb: mtrr support
      (commit)
      , hardware cursor
      (commit)

    • pxafb: Add support for other palette formats
      (commit)

    • s3c2410fb: multi-display support
      (commit)

    • Intel FB: support for interlaced video modes
      (commit)
      ,
      (commit)

    • vfb: make virtual framebuffer mmapable
      (commit)

    • Radeonfb Xpress 200M RC410 support
      (commit)

    • fbdev: Support for byte-reversed framebuffer formats
      (commit)

    • ps3fb: add virtual screen and panning support
      (commit)


    4.3. SATA/IDE
    • SATA (libata)
      • Link
        power management infrastructure. Device Initiated Power Management,
        which is defined in SATA 2.5 can be enabled for disks which support it.
        This feature enables DIPM in linux when the user sets the link power
        management policy to "min_power". It's also possible to set the PM
        policy to "max_performance" or "medium_power"
        (commit)
        . Implement hw link power management support for ahci
        (commit)

      • SATA Port Multiplier support
        (commit)
        ,
        (commit)
        ,
        (commit)
        ,
        (commit)
        . Implement PMP support for ahci
        (commit)
        and sata_sil24
        (commit)

      • ACPI-based PATA/SATA hotplug
        (commit)

      • libata_pata: ACPI support
        (commit)

      • Turn on ACPI by default
        (commit)

      • Add a IDE style DMA disable
        (commit)

      • ahci: RAID mode SATA patch for Intel Tolapai
        (commit)
        , add MCP79 support to AHCI driver
        (commit)

      • pata_ns87415: Initial cut at 87415/87560 IDE support
        (commit)

      • pata_sil680: Add MMIO support
        (commit)

      • sata_nv: add SW NCQ support for MCP51/MCP55/MCP61
        (commit)

    • Old IDE stack
      • Remove "idex=dma" kernel parameter
        (commit)
        , add "hdx=nodma" kernel parameter
        (commit)

      • Hook ACPI _PSx method to IDE power on/off
        (commit)

      • sis5513 IDE: remove /proc/ide/sis
        (commit)

      • amd74xx IDE: remove /proc/ide/amd74xx
        (commit)


    4.4. Networking
    • asix: Support for USB autosuspend
      (commit)

    • ax88796: add 93cx6 eeprom support
      (commit)

    • B43: LED triggers support
      (commit)
      , RF-kill support
      (commit)

    • B44: port to native ssb support
      (commit)

    • bmac: add simple ethtool support for network manager
      (commit)

    • dl2k: add Sundance/Tamarack TC902x Gigabit Ethernet Adapter support
      (commit)

    • hostap_cs: Add device ID for Telekom T-Sinus 111card
      (commit)
      , add Linksys card ID
      (commit)

    • ibmveth: Implement ethtool hooks to enable/disable checksum offload
      (commit)
      , enable TCP checksum offload
      (commit)
      , add ethtool TSO handlers
      (commit)
      , add ethtool driver stats hooks
      (commit)

    • IOC3: Switch hw checksumming to ethtool configurable.
      (commit)

    • ipw2200: batch non-user-requested scan result notifications
      (commit)

    • libertas: monitor mode support for OLPC firmware
      (commit)

    • myri10ge: add IPv6 TSO support
      (commit)

    • netconsole: Support dynamic reconfiguration using configfs
      (commit)
      , support multiple logging targets
      (commit)

    • ns83820: add ethtool media support
      (commit)

    • p54usb: Add device ID for Linksys WUSB54AG
      (commit)

    • pasemi_mac: enable iommu support
      (commit)

    • pcnet32: add suspend and resume capability
      (commit)

    • r8169: MSI support
      (commit)

    • rtl8187: Add device ID for HP wireless print kit usb dongle
      (commit)

    • skge: eeprom support
      (commit)
      , add a debug interface
      (commit)

    • TG3: Add 5761 support
      (commit)
      ,
      (commit)
      , add 5784 and 5764 support.
      (commit)
      , add 5723 support
      (commit)
      , add management FW version to ethtool report
      (commit)

    • uli526x: Add suspend and resume capability
      (commit)

    • zd1211rw: monitor all packets
      (commit)
      , add ID for Sitecom WL-162
      (commit)
      , add ID for ZyXEL M-202 XtremeMIMO
      (commit)
      , add USB id for Telegent TG54USB WLAN adapter
      (commit)
      , add ID for Talktalk SNU5630NS/05
      (commit)

    • dgrs: remove the driver, since this device never was sold
      (commit)


    4.5. Sound
    • OSS emulation: add new AFMT_* formats
      (commit)
      , support 3-bytes 24bit format
      (commit)

    • The next round of scheduled OSS code removal
      (commit)

    • hda-intel:
      Add POWER_SAVE option. It's an experimental option to achieve an
      aggressive power-saving. With this option, the driver will turn on/off
      the power of each codec and controller chip dynamically on demand. Note
      that this power-saving might cause slight click-noise at power-on/off.
      Also, it might take some time to wake up the codec, and might even drop
      some tones at the very beginning. This seems to be the side-effect of
      turning off the controller chip
      (commit)

    • hda-intel: add hwdep interface
      (commit)
      , add support for the MCP79
      (commit)

    • hda-codec: Add a generic bind-control helper
      (commit)
      , add support for the ASRock K8NF6G-VSTA motherboard
      (commit)
      , add more Dell systems
      (commit)
      , add support for Acer Aspire laptops
      (commit)
      , update realtek codec support
      (commit)
      , add support for Biostar NF61S SE mobo
      (commit)
      , add ALC268 acer model
      (commit)
      , add model for MSI m673x
      (commit)
      , add auto-mute function to Sony VAIO with STAC9872
      (commit)
      , add support for Macbook Pro rev3
      (commit)
      , add support for Toshiba Satellite P205
      (commit)
      , add support for Haier W66
      (commit)
      , add SPDIF support on ALC880 fujitsu model
      (commit)
      , add laptop-automute model for AD1986A
      (commit)
      , add support for ASUS A7M
      (commit)
      , add missing model names for ALC882 codecs
      (commit)
      , add support for Toshiba A305
      (commit)
      , add 4 channel support for Realtek ALC883
      (commit)
      , add two new systems to ALC883
      (commit)
      , add support for analog loopback to STAC9204/9205/922x/927x
      (commit)
      , add support for Acer Aspire 9303
      (commit)

    • snd-emu10k1: Add support for E-Mu 1616 PCI, 1616M PCI, 0404 PCI, E-Mu
      (commit)
      , add support for ADAT and S/PDIF.
      (commit)
      , add support for SPDIF/ADAT status.
      (commit)

    • snd-ca0106:Add recognition for new variant. Fixes ALSA bug#3251
      (commit)

    • Add missing models for Dell with STAC9200
      (commit)
      and Stac9205 codecs.
      (commit)

    • Add the ESS1879 pnpbios ID to the es18xx driver
      (commit)

    • usb-audio: Add advanced mode support for Edirol UA-1EX
      (commit)
      , add Ozone Academic support
      (commit)
      , add basic support for E-Mu USB devices.
      (commit)

    • bt87x: Add known PCI ID entries
      (commit)

    • hdsp: Add support for latset RME9632 revisions
      (commit)

    • cmipci: add 96 kHz support
      (commit)

    • caiaq: support for Native Instrument's Rigkontrol3
      (commit)

    • Add support for ASUS P701 eeepc
      (commit)


    4.6. ACPI
    • Battery: Add sysfs support
      (commit)
      , add sysfs alarm
      (commit)

    • SBS: Add sysfs alarm
      (commit)

    • AC: Add sysfs interface
      (commit)

    • SBS: Split host controller (ACPI0001) from SBS driver (ACPI0002)
      (commit)

    • SBS: Add support for power_supply class (and sysfs)
      (commit)

    • fujitsu-laptop: create Fujitsu laptop platform specific driver
      (commit)

    • thinkpad_acpi: Map volume and brightness events on thinkpads
      (commit)


    4.7. MTD
    • OneNAND 2X program support
      (commit)

    • OneNAND Simulator support
      (commit)

    • MAPS: Merge Lubbock and Mainstone drivers into common PXA2xx driver
      (commit)

    • Remove Momenco Ocelot NOR flash support
      (commit)

    • m25p80 handles more chips, uses JEDEC ids and small eraseblocks
      (commit)

    • Add FUJITSU MBM29F800BA and ST M29F800AB descriptions
      (commit)

    • Delete the driver for AT26Fxxx dataflash devices
      (commit)


    4.8. Input
    • usbtouchscreen - add support for Generaltouch devices
      (commit)
      , add support for IdealTEK URTC1000
      (commit)
      , support DMC devices with empty EEPROM
      (commit)
      , add support for Gotop tablet devices
      (commit)

    • Remove ec3104_keyb driver
      (commit)

    • ALPS: add support for model found in Dell Vostro 1400
      (commit)

    • lifebook - add signature of Panasonic CF-72
      (commit)

    • gpio-keys - add suspend/resume support
      (commit)

    • Add support for HP Jornada onboard keyboard (HP6XX)
      (commit)

    • Add support for HP Jornada 7xx onboard keyboard
      (commit)

    • Add support for the HP Jornada 7xx (710/720/728) touchscreen
      (commit)

    • ALPS: add signature for Thinkpad R61
      (commit)

    • Add support for SEGA Dreamcast keyboard
      (commit)

    • Add support for Blackfin BF54x Keypad controller
      (commit)


    4.9. SCSI
    • Add srp transport class
      (commit)

    • srp_transport: add target driver support
      (commit)

    • Add supported_mode and active_mode sysfs attributes to the host
      (commit)

    • fc_transport: add target driver support
      (commit)

    • arcmsr: add SATA RAID plus other fixes
      (commit)

    • mpt fusion: Add support for ATTO 4LD: Rebranded LSI 53C1030
      (commit)

    • aic94xx: Add new PCI ID for ASC58300
      (commit)

    • aic7xxx: Add suspend/resume support
      (commit)

    • qla2xxx: Add flash burst-read/write support
      (commit)
      , allow region-based flash-part accesses
      (commit)
      , add PCI error recovery support
      (commit)

    • advansys: Convert to PCI driver model
      (commit)
      , convert to EISA driver model
      (commit)
      , convert to ISA driver model
      (commit)

    • fc4: remove this and all associated drivers
      (commit)

    • ib_srp: convert to use the srp transport class
      (commit)

    • tgt: add I_T nexus support
      (commit)

    • sym53c8xx: PCI Error Recovery support
      (commit)


    4.10. USB
    • UEAGLE: Devolo and Elsa chipsets support
      (commit)

    • serial/pl2303: support for BenQ Siemens Mobile Phone EF81
      (commit)

    • Export URB statistics for powertop
      (commit)

    • Add ohci SSB bus glue
      (commit)

    • Add support for SHARP WS011SH to ipaq.c
      (commit)


    4.11. HID
    • Add support for Microsoft Natural Ergonomic Keyboard 4000
      (commit)

    • Add support for Thrustmaster FGT Force Feedback wheel
      (commit)

    • Enable hiddev for the Santarosa Macbookpro IR receiver
      (commit)

    • Add support for Microsoft Wireless Laser Keyboard 6000
      (commit)

    • hiddev: Add 32bit ioctl compatibilty
      (commit)

    • Add hidraw interface
      (commit)


    4.12. V4L/DVB
    • V4L: Add internal ioctl-like interface.
      (commit)

    • dtt200u: add support for the Miglia TVMini USB DVB-T adapter
      (commit)

    • Add remote control support for the Hauppauge Nova-T 500
      (commit)

    • Add support for Compro Videomate 500 with DiB7000PC
      (commit)

    • tuner: better tuner radio support
      (commit)

    • ivtv: add Avermedia M116
      (commit)

    • cx25840: add radio support.
      (commit)

    • saa7134: add DVB-T support for Avermedia Super 007
      (commit)

    • cx23885: Added HVR1250 ATSC support
      (commit)

    • Add IR remote support for FusionHDTV 5 RT Gold
      (commit)

    • cx23885: add support for DViCO FusionHDTV 5 Express
      (commit)

    • Add BT.656 interface support
      (commit)

    • Gemtek Radio card
      (commit)
      ,
      (commit)

    • Add Typhoon Tv-Tuner PCI to bttv-cards.c
      (commit)

    • Add basic support for suspend/resume for saa7134
      (commit)

    • Add support for MSI TV @nywhere A/D NB
      (commit)

    • dib0700: add support for Avermedia DVB-T Express card
      (commit)


    4.13. HWMON
    • applesm: Add support for Mac Pro 2 x Quad-Core
      (commit)

    • w83791d: new sysfs beep/alarm methodology
      (commit)

    • it87: Add support for fan4 and fan5
      (commit)

    • coretemp: Add support for Celeron 4xx
      (commit)


    4.14. Cpufreq
    • Allow ondemand and conservative cpufreq governors to be used as default
      (commit)

    • Longhaul: Add support for PM133 northbridge
      (commit)


    4.15. I2C
    • i2c-stub: Support multiple chips
      (commit)

    • i2c-i801: Add support for the Intel Tolapai SMBus
      (commit)


    4.16. Bluetooth
    • Add support for handling simple eSCO links
      (commit)


    4.17. Watchdog
    • Linux kernel IPC SBC Watchdog Timer driver
      (commit)

    • Add driver for the AR7 Watchdog timer
      (commit)


    4.18. FireWire
    • firewire: OHCI 1.0 Isochronous Receive support
      (commit)

    • firewire: fw-sbp2: add support for multiple logical units per target
      (commit)

    • See also release notes at
      http://wiki.linux1394.org/
      for firewire and ieee1394 changes.

    4.19. Various
    • DCA: Add Direct Cache Access driver
      (commit)
      ,
      (commit)

    • rtc: RTC class driver for the ds1374
      (commit)

    • Driver for the Atmel on-chip SSC on AT32AP and AT91
      (commit)

    • pcmcia: Compactflash driver for PA Semi Electra boards
      (commit)

    • IPMI: add polled interface
      (commit)

    • leds: Add Cobalt Raq series LEDs support
      (commit)

    • backlight: Add Samsung LTV350QV LCD driver
      (commit)

    • Add support for PCMCIA card Sierra Wireless AC850
      (commit)

    • Add support for Wacom WACF007 and WACF008 to serial pnp driver
      (commit)

    • I/OAT: Add support for MSI and MSI-X
      (commit)

    • I/OAT: Add support for version 2 of ioatdma device
      (commit)

    • Remove obsolete lk201 driver
      (commit)


    5. Crashing soon a kernel near you
    This is a
    list of some of the patches being developed right now at the kernel
    community that will be part of future Linux releases. Those features
    may take many months to get into the Linus' git tree, or may be
    completely dropped. You can test the features in the -mm tree, but be
    warned, it can crash your machine, eat your data (unlikely but not
    impossible) or kidnap your family (just because it has never happened
    it doesn't mean it can't happen):
    Reading the
    Linux Weather Forecast page
    is recommended.

                   
                   
                   
                   
                   
                   
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34937/showart_663046.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP