KernelNewbies:

The linux 2.6.27 kernel ([http://kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.27 full SCM git log]) is neither released nor finished. Its merge window has officially been closed by the [http://marc.info/?l=linux-kernel&m=121730204732684&w=2 2.6.27-rc1 release on July 28th 2008.]

Summary: 2.6.27 adds support for ...

TableOfContents()

1. Prominent features (the cool stuff)

1.1. UBIFS and OMFS

UBIFS is a new filesystem designed to work with flash devices, developed by Nokia with help of the University of Szeged. It's important to understand that UBIFS is very different to any traditional filesystem: UBIFS does not work with block based devices, but pure flash based devices, handled by the MTD subsystem in Linux. Hence, UBIFS does not work with what many people considers flash devices like flash-based hard drives, SD cards, USB sticks, etc; because those devices use a block device emulation layer called FTL (Flash Translation Layer) that make they look like traditional block-based storage devices to the outside world. UBIFS instead is designed to work with flash devices that do not have a block device emulation layer and that are handled by the MTD subsystem and present themselves to userspace as MTD devices.

UBIFS works on top of UBI volumes. UBI is a LVM-like layer which was included in [http://kernelnewbies.org/Linux_2_6_22 Linux 2.6.22], which itself works on top of MTD devices. UBIFS offers various advantages to JFFS2: faster and scalable mount times (unlike JFFS2, UBIFS does not have to scan whole media when mounting), tolerance to unclean reboots (UBIFS is a journaling filesystem), write-back (which improves dramatically the performance), and support of on-the-flight compression.

Documentation: UBIFS [http://www.linux-mtd.infradead.org/faq/ubifs.html FAQ], more [http://www.linux-mtd.infradead.org/doc/ubifs.html documentation]

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d (commit)], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0d7eff873caaeac84de01a1acdca983d2c7ba3fe (commit)], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e56a99d5a42dcb91e622ae7a0289d8fb2ddabffb (commit)]

OMFS stands for "Sonicblue Optimized MPEG File System support". It is the proprietary file system used by the Rio Karma music player and ReplayTV DVR. Despite the name, this filesystem is not more efficient than a standard FS for MPEG files, in fact likely the opposite is true. Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b002d7b173ae7cc15ed90d3c07f6d106babc510 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36cc410a6799a205bfc6ccc38abd9d52f2afba64 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=555e3775ced1d05203934fc6529bbf0560dd8733 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63ca8ce2a2641f9cb5f0add33ced4591681d1cd7 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f09e98768c17287df076580c4cc72ac358312c6 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a14e4b572b0ee5c6dbe4aceb83d00b2c969324e9 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a3ab7155ea21aadc8a4d5687e91b3d876973185e 8)]

1.2. Ext4: Delayed Allocation

In this release, Ext4 is adding one of its most important planned features: Delayed allocation, also called [http://en.wikipedia.org/wiki/Allocate-on-flush "Allocate-on-flush"]. It doesn't changes the disk format in any way, but it improves the performance in a wide range of workloads. This is how it works: When an application write()s data to the disk, the data is usually not written immediately to the disk, it's cached in RAM for a while. But despite of not being written immediately to the disk, the filesystem allocates the neccesary disk structures for it immediately. Delayed allocation consists on not allocating space for that cached data - instead, only the free space counter is updated when write() is called. The on-disk blocks and structures are allocated only when the cached data is finally written to the disk - not when a process writes something (IOW: "delayed allocation"). This approach, used by filesystems such as XFS, btrfs, ZFS, or Reiser 4, improves noticeably the performance on many workloads. It also results in better block allocation decisions, because when allocation decisions are done at write()-time, the block allocator can not know if any other write()s are going to be done.

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29a814d2ee0e43c2980f33f91c1311ec06c0aa35 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64769240bd07f446f83660bb143bb609d8ab4910 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d2a1763791a634e315ec926b62829c1e88842c86 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd1aac32923a9c8adcc0ae85e33c1ca0c5855838 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dd919b9822c5fd9fd72f95a602440130297c3857 5)]

There's also a new implementation of the default data=ordered journaling mode based in inodes, not in jbd buffer heads. Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c851ed540173736e60d48b53b91a16ea5c903896 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=678aaf481496b01473b778685eca231d6784098b 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=87c89c232c8f7b3820c33c3b9bc803e9358027da 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=772cb7c83ba256a11c7bf99a11bef3858d23767c 4)]

1.3. External firmware

Firmware is usually compiled with each driver. For some reasons (mainly, licensing reasons), distributing firmware is not allowed by some companies and some drivers have also supported loading external firmware for a long time. But even if the firmware compiled and shipped with each driver is redistributable, is not libre software, and some people thinks that this breaks the GPL. It also has some disadvantages for distros.

In 2.6.27, the firmware blobs have been moved from the drivers' source code to a new directory: firmware/. By default, the firmware won't be compiled in the kernel binary, or in the modules. It's installed in /lib/firmware when the user types "make modules_install", and drivers have been modified to call request_firmware() and load the firmware when they need it. There's also a configuration option that will compile the firmware files in the kernel binary image, like it was done previously.

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5658c769443d543728b6c5c673dffc2df8676317 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4d2acfbfdf68257e846aaa355edd10fc35ba0feb 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d172e7f5c67f2d41f453c7aa83d3bdb405ef8ba5 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=88ecf814c47f577248751ddbe9626d98aeef5783 4)]

1.4. ftrace, sysprof support

Ftrace is a very simple function tracer -unrelated to kprobes/SystemTap- which was born in the -rt patches. It uses a compiler feature to insert a small, 5-byte No-Operation instruction to the beginning of every kernel function, which NOP sequence is then dynamically patched into a tracer call when tracing is enabled by the administrator. If it's disabled, the overhead of the instructions is very small and not measurable even in micro-benchmarks. Although ftrace is the function tracer, it also includes an plugin infrastructure that allows for other types of tracing. Some of the tracers that are currently in ftrace include a tracer to trace context switches, the time it takes for a high priority task to run after it was woken up, how long interrupts are disabled, the time spent in preemption off critical sections.

The interface to access ftrace can be found in /debugfs/tracing, which are documented in Documentation/ftrace.txt. There's also a sysprof plugin that can be used with a development version of sysprof - "svn checkout http://svn.gnome.org/svn/sysprof/branches/ftrace-branch sysprof"

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c731e0a495e25e79dc1e9e68772a67a55721a65 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=502825282e6f79c975a644afc124432ec1744de4 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e766410c4babd37bc7cd5e25009c179781742c8 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16444a8a40d4c7b4f6de34af0cae1f76a4f6c901 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bc0c38d139ec7fcd5c030aea16b008f3732e42ac 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b29b01887e6032dcaf818c14999c7a39593b4e7 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=352ad25aa4a189c667cb2af333948d34692a2d27 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=81d68a96a39844853b37f20cc8282d9b65b78ef3 9], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3 10], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3d0833953e1b98b79ddf491dd49229eef9baeac1 11], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0fc494fae96a7089f3651cb451f461c7291244c 12], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4e491d14f2506b218d678935c25a7027b79178b1 13] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f06c38103ea9dbca27c3f4d77f444ddefb5477cd 14], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f984b51e0779a6dd30feedc41404013ca54e5d05 15], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=014c257cce65e9d1cd2d28ec1c89a37c536b151d 16], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd3bff9e20f454b242d979ec2f9a4dca0d5fa06f 17)]

1.5. Mmiotrace

Mmiotrace is a tool for trapping [http://en.wikipedia.org/wiki/IO_port memory mapped IO] (MMIO) accesses within the kernel. Since MMIO is used by drivers, this tool can be used for debugging and especially for reverse engineering binary drivers.

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8b7d89d02ef3c6a7c73d6596f28cea7632850af4 (commit)], Documentation: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c6c67c1afcce71335b18ed8769b1165c468bfb03 (commit)]

1.6. Voltage and Current Regulator

This framework is designed to provide a generic interface to voltage and current regulators. The intention is to allow systems to dynamically control regulator output in order to save power and prolong battery life. This applies to both voltage regulators (where voltage output is controllable) and current sinks (where current output is controllable). This framework is designed around SoC based devices and has also been designed against two Power Management ICs (PMICs) currently on the market - namely the Freescale MC13783 and the Wolfson WM8350, however it is quite generic and should apply to all PMICs.

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=571a354b1542a274d88617e1f6703f3fe7a517f1 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e2ce4eaa76214f65a3f328ec5b45c30248115768 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=414c70cb91c445ec813b61e16fe4882807e40240 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=48d335ba3164ce99cb8847513d0e3b6ee604eb20 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b74ff6512492dedea353f89d9b56cb715df0d7f 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c1184e85cb381121a5273ea20ad31ca3faa0a4f 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c080909eef2b3e7fba70f57cde3264fba95bdf09 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6392776d262fcd290616ff5e4246ee95b22c13f0 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8e6f0848be83c5c406ed73a6d7b4bfbf87880eec 9], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ba7e4763437561763b6cca14a41f1d2a7def23e2 10], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e7d0fe340557b202dc00135ab3cc877db794a01f 11], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e8695ebe5568921c41c269f4434e17590735865c 12], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e941d0ce532daf8d8610b2495c06f787fd587b85 13], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0eb5d5ab3ec99bfd22ff16797d95835369ffb25b 14)]

1.7. Lockless page cache and get_user_pages()

The page cache is the place where the kernel keeps in RAM a copy of a file to improve performance by avoiding disk I/O when the data that needs to be read is already on RAM. Each "mapping", which is the data structure that keeps track of the correspondence between a file and the page cache, is SMP-safe thanks to its own lock. So when different processes in different CPUs access different files, there's no lock contention, but if they access the same file (shared libraries for example), they can hit some contention on that lock. In 2.6.27, thanks to some rules on how the page cache can be used and the usage of RCU, the page cache will be able to do lookups (ie., "read" the page cache) without needing to take the mapping lock, and hence improving scalability.

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=47feff2c8eefe85099f87c43d3096855f0085ca0 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e286781d5f2e9c846e012a39653a166e9d31777d 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a60637c85893e7191faaafa6a72e197c24386727 3)]

Lockless get_user_pages(): get_user_pages() is a function used in direct I/O operations to pin the userspace memory that is going to be transferred. It's a complex function that requires to hold the mmap_sem semaphore in the mm_struct struct of the process and the page table lock. This is a scalability problem when there're several processes using get_user_pages in the same address space (for example, databases that do Direct I/O), because there will be lock contention. In 2.6.27, a new get_user_pages_fast() function has been introduced, which does the same work that get_user_pages() does, but its simplified to speed up the most common workloads that exercise those paths within the same address space. This new function can avoid taking the mmap_sem semaphore and the page table locks in those cases. Benchmarks showed a 10% speedup running a OLTP workload with a IBM DB2 database in a quad-core system

Code: [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21cc199baa815d7b3f1ace4be20b9558cbddc00f (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8174c430e445a93016ef18f717fe570214fa38bf 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f5dd33c494a427b1d1a3b574de5c9e511c888864 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bc40d73c950146725e9e768e856a416ec8949065 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=652ea695364142b2464744746beac206d050ef19 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=30002ed2e41830ec03ec3e577ad83ac6b188f96e 6)]

2. Architecture-specific changes

3. Core

* flag parameters: timerfd_create [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11fcb6c14676023d0bd437841f5dcd670e7990a0 (commit)] * flag parameters: anon_inode_getfd extension [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7d9dbca34240ebb6ff88d8a29c6c7bffd098f0c1 (commit)] * flag parameters: signalfd [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9deb27baedb79759c3ab9435a7d8b841842d56e9 (commit)] * flag parameters: paccept [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aaca0bdca573f3f51ea03139f9c7289541e7bca3 (commit)] * flag parameters: eventfd [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b087498eb5605673b0f260a7620d91818cd72304 (commit)] * flag parameters: paccept w/out set_restore_sigmask [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c019bbc612f6633ede7ed67725cbf68de45ae8a4 (commit)] * flag parameters: dup2 [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=336dd1f70ff62d7dd8655228caed4c5bfc818c56 (commit)] * flag parameters: inotify_init [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4006553b06306b34054529477b06b68a1c66249b (commit)] * flag parameters: NONBLOCK in anon_inode_getfd [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99829b832997d907c30669bfd17da32151e18f04 (commit)] * flag parameters: epoll_create [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a0998b50c3f0b8fdd265c63e0032f86ebe377dbf (commit)] * flag parameters: pipe [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ed8cae8ba01348bfd83333f4648dd807b04d7f08 (commit)] * flag parameters: NONBLOCK in inotify_init [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=510df2dd482496083e1c3b1a8c9b6afd5fa4c7d7 (commit)] * flag parameters: NONBLOCK in signalfd [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5fb5e04926a54bc1c22bba7ca166840f4476196f (commit)] * flag parameters: NONBLOCK in timerfd_create [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6b1ef0e60d42f2fdaec26baee8327eb156347b4f (commit)] * flag parameters: NONBLOCK in socket and socketpair [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=77d2720059618b9b6e827a8b73831eb6c6fad63c (commit)] * flag parameters: NONBLOCK in pipe [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=be61a86d7237dd80510615f38ae21d6e1e98660c (commit)] * flag parameters: NONBLOCK in eventfd [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e7d476dfdf0bcfed478a207aecfdc84f81efecaf (commit)]

* per-task-delay-accounting: update taskstats for memory reclaim delay [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=016ae219b920c4e606088761d3d6070cdf8ba706 (commit)] * task IO accounting: provide distinct tgid/tid I/O statistics [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=297c5d92634c809cef23d73e7b2556f2528ff7e2 (commit)] * per-task-delay-accounting: add memory reclaim delay [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=873b47717732c2f33a4b14de02571a4295a02f0c (commit)] * per-task-delay-accounting: update document and getdelays.c for memory reclaim [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b0975a20af1ff2f367e3b6b7c150eb114c6b500 (commit)]

* KVM: IOAPIC/LAPIC: Enable NMI support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3419ffc8e45a5344abc87684cbca6cdc5c9c8a01 (commit)] * KVM: MTRR support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ba075a664dff836fd6fb93f90fcc827f7683d91 (commit)] * KVM: VMX: Enable NMI with in-kernel irqchip [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f08864b42a45581a64558aa5b6b673c77b97ee5d (commit)] * KVM: Add coalesced MMIO support (x86 part) [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=542472b53ea9e0add0ba23976018210191d84754 (commit)] * KVM: Add coalesced MMIO support (powerpc part) [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=588968b6b7d34e6a88f538d1db9aca47b203623e (commit)] * KVM: Add coalesced MMIO support (common part) [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5f94c1741bdc7a336553122036e8a779e616ccbf (commit)] * KVM: Add coalesced MMIO support (ia64 part) [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7f39f8ac177db258200053074aa7a3d98656b1cf (commit)]

* Support adding a spare to a live md array with external metadata. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c2fce2ef6b4821c21b5c42c7207cb9cf8c87eda (commit)]

* Support changing rdev size on running arrays. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0cd17fec983b6bca505eecee1af33138687220b6 (commit)] * CPUFREQ: S3C24XX NAND driver frequency scaling support. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=30821fee4f0cb3e6d241d9f7ddc37742212e3eb7 (commit)]

4. Crypto

4.1. Security

4.2. Networking

* WEXT: Add support for passing PMK and capability flags to WEXT [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ba569b4c68f11906da2996ee252bcff0df61cb90 (commit)] * Add layer1 over IP support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3712b42d4b1bec29a4232a6673bf2e6dcc5faa68 (commit)] * virtio net: Add ethtool ops for SG/GSO [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a9ea3fc6f2654a7407864fec983d1671d775b5ee (commit)] * netdev: Allocate multiple queues for TX. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e8a0464cc950972824e2e128028ae3db666ec1ed (commit)]

* loopback: Enable TSO [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f22f8567cb0a530d8958d177e0f268783bd0d894 (commit)]

* netfilter: ebtables: add IPv6 support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=93f65158723ceb7078ee9a0fd4830c0de00f4b9e (commit)] * netfilter: ctnetlink: add full support for SCTP to ctnetlink [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a258860e01b80e8f554a4ab1a6c95e6042eb8b73 (commit)] * netfilter: ip_tables: add iptables security table for mandatory access control rules [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=560ee653b67074b805f1b661988a72a0e58811a5 (commit)] * netfilter: ip6_tables: add ip6tables security table [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=17e6e59f0a1d7188d783c15dc3ccebd95a0840cd (commit)] * mac80211: add spectrum capabilities [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06ff47bc9595848b818ac79e7d8069337c6e58b1 (commit)]

* build algorithms into the mac80211 module [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e5f5e7339cd95d07937e6f8081b46fba86c742a7 (commit)]

* hostap: add radiotap support in monitor mode [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=573b933f8f20ce298f6ff83d5ecc7b99ff3abb12 (commit)]

* iwlwifi : Patch adds rfkill subsystem for 3945 [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ebef2008082f579d8a40cc92e868fe8bf1296a60 (commit)] * netdev: Add support for rx flow hash configuration, using ethtool. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0853ad66b14feb12acde7ac13b7c3b75770a0adc (commit)]

* iwlwifi: enable packet injection for iwl3945 [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=914233d68f07d5d9c22630cd5a84fdfd98f39da2 (commit)]

* tun: Interface to query tun/tap features. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07240fd0902c872f044f523893364a1a24c9f278 (commit)]

* tun: TUNSETFEATURES to set gso features. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5228ddc98fa49b3cedab4024e269d62410a0d806 (commit)]

* net: Add STP demux layer [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a19800d704177caaa5874baf5819307c5b7d5e4f (commit)]

* bridge: Use STP demux [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c85fbf0657f216557b0c9c4a2e4e07f37d8bb8c (commit)]

* net: Add GARP applicant-only participant [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eca9ebac651f774d8b10fce7c5d173c3c3d3394f (commit)]

* vlan: Add GVRP support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=70c03b49b80ba3634958acc31853771019c0ebd3 (commit)]

* vlan: Add ethtool support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75b8846acd11ad3fc736d4df3413fe946bbf367c (commit)] * netdev: Create netdev_queue abstraction. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bb949fbd1878973c3539d9aecff52f284482a937 (commit)] * mac80211: power management wext hooks [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=49292d56352a6ab90d04c3448dd8b6106dfef2d6 (commit)]

4.3. Filesystems

5. Drivers

5.1. Graphics

5.2. IDE/SATA

5.3. Network

5.4. SCSI

5.5. Sound

5.6. V4L/DVB

5.7. Input

5.8. USB

5.9. MTD

5.10. RTC

5.11. WATCHDOG

5.12. Bluetooth

5.13. I2C

5.14. Infiniband/RDMA

5.15. MMC

5.16. HWMON

5.17. ACPI

* misc: add HP WMI laptop extras driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=62ec30d45ecbb85b5991474c8f04192697687495 (commit)]

5.18. Various

* firewire: implement broadcast_channel CSR for 1394a compliance [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e534fe16b987780744da351acece2a4699783096 (commit)]

* rfkill: add the WWAN radio type [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=477576a073699783abb53ae14993d5d41c66301d (commit)]

* edac: i5100 new intel chipset driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f421c595a9145959d8aab09172743132abdffdb (commit)]

6. External Links

If you want to know what is waited before this kernelnewbies summary is completed, you can read

* A wireless 2.6.27 feature-list at [http://wireless.kernel.org/News/kernel-2.6.27 Linux Wireless]


CategoryReleases

KernelNewbies: Linux_2_6_27 (last edited 2008-09-20 18:34:06 by diegocalleja)