KernelNewbies:

TableOfContents()

Short overview (for news sites, etc)

Linux 2.6.19 includes the clustering [http://sources.redhat.com/cluster/ GFS2 filesystem]; [http://lwn.net/Articles/156921 Ecryptfs], the first experimental version of EXT4 (aimed at developers), support for the Atmel AVR32 architecture, sleepable RCU, improvements for NUMA-based systems, a "-o flush" mount option for FAT-based hotpluggable media devices (mp3), [http://lwn.net/Articles/204905/ Netlabel], IDE [http://lwn.net/Articles/198344/ Parallel-ATA drivers based in libata]

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

GFS2

GFS2 is a clustering filesystem developed mainly by Red Hat (after [http://www.theregister.co.uk/2003/12/18/red_hat_sweetens_q3/ purchasing Sistina] and [http://lwn.net/Articles/91267/ opening the source code], since it was closed at Sistina). It's not the first: OCFS2, another clustering filesystem developed by Oracle, was already merged in [http://kernelnewbies.org/Linux_2_6_16 Linux 2.6.16]. Clustering filesystems allow to share a filesystem between several machines with no compromises. GFS includes his own DLM (distributed locking manager) and a userspace API interface for that DLM.

Like OCFS2 and like any other filesystem that wants to be merged in the linux kernel, GFS2 developers asked for submission long time ago. They were asked to fix things (even considering that GFS2 had already been developed at Sistina and it was already a stable final product), they submitted it again, they were asked to fix more things, and so on, for a long period of time. Their developers have fixed every thing they were asked to fix. Because of their hard work, GFS2 is now ready to be merged, nobody oposes to it, and everyone is happy. (Amazing, isn't? In fact, 3 new filesystems are being merged in 2.6.19 and nobody is flaming nobody, quite the contrary)

[http://sources.redhat.com/cluster/ GFS2 project page]; Source code [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=fs/gfs2 for GFS2] (840 KB) and [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=fs/dlm for the DLM] (384 KB)

EXT 4

EXT 4 is a evolution (not a redesign from zero) of EXT3. EXT4 is a development and experimental feature. EXT4 will incorporate scalability and reliability enhancements for supporting large filesystems (64 bit) in keeping with increasing disk capacities and state-of-the-art feature requirements. But the version in 2.6.19 it's missing lots of the features that are already developed but not merged, so it's not useful even for benchmarking. From the Section 2 of the [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/ext4.txt Documentation file]:

Features currently available: ability to use filesystems > 16TB, extent format reduces metadata overhead (RAM, IO for access, transactions), extent format more robust in face of on-disk corruption due to magics, internal redundancy in tree

Candidate features for future inclusion: There are several under discussion, whether they all make it in is partly a function of how much time everyone has to work on them: improved file allocation (multi-block alloc, delayed alloc; basically done), fix 32000 subdirectory limit (patch exists, needs some e2fsck work), nsec timestamps for mtime, atime, ctime, create time (patch exists, needs some e2fsck work), inode version field on disk (NFSv4, Lustre; prototype exists), reduced mke2fs/e2fsck time via uninitialized groups (prototype exists), journal checksumming for robustness, performance (prototype exists), persistent file preallocation (e.g for streaming media, databases).

Features like metadata checksumming have been discussed and planned for a bit but no patches exist yet so I'm not sure they're in the near-term roadmap. The big performance win will come with mballoc and delalloc. CFS has been using mballoc for a few years already with Lustre, and IBM + Bull did a lot of benchmarking on it. The reason it isn't in the first set of patches is partly a manageability issue, and partly because it doesn't directly affect the on-disk format (outside of much better allocation) so it isn't critical to get into the first round of changes

[http://lwn.net/Articles/187321/ (LWN article] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=fs/jbd2 JBD2 source], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=fs/ext4 EXT 4 source]

ECRYPTFS

Coming from IBM, ecryptfs aims to bring "enterprise level" file encryption to the masses.

"Oh no, another filesystem!". No, Ecryptfs is not a traditional filesystem: it doesn't implements his own disk format for example. From [http://lwn.net/Articles/156921/ this LWN article]:

The eCryptfs developers took the stacking approach, meaning that, rather than implement its own platter-level format, eCryptfs sits on top of another filesystem. It is, essentially, a sort of translation layer which makes encrypted file capabilities available. The system administrator can thus create encrypted filesystems on top of whatever filesystem is in use locally, or even over a network-mounted filesystem. [...] Rather than encrypt the filesystem as a whole, eCryptfs deals with each file individually

(Reading the rest of the [http://lwn.net/Articles/156921 LWN article] is recommended. There's also a [http://www.linuxsymposium.org/2005/linuxsymposium_procv1.pdf Ecryptfs paper from the 2005 Ottawa Symposium] - page 209 and onwards)

Is it better to encrypt the whole disk using cryptoloop/dmcrypt, or use ecryptfs? You decide. Ecryptfs avoids the overhead of a fully encrypted filesystem by only encrypting the files you really want to encrypt, and it also allows to encrypt different files in different ways. Ecryptfs tries to make file encryption available in a easy way for the masses. It "aims to combine the flexibility of GnuPG encryption with the transparency of a kernel service" [...] "Think of eCryptfs as a sort of 'gnupgfs'". If you're interested, you will find the userspace tools and more information available in the [http://ecryptfs.sourceforge.net/ ecryptfs sourceforge site]. You can also read the [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/ecryptfs.txt Ecryptfs documentation] and the [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=237fead619984cc48818fe12ee0ceada3f55b012 Ecryptfs code] (232 KB).

Libata PATA (Parallel ATA) merge

By "Parallel ATA" we mean all the ATA/IDE controllers and drives that we have been using for years before SATA. Almost from the start, one of the objectives of some kernel hackers was to [http://marc.theaimsgroup.com/?l=linux-kernel&m=115514409104283&w=2 replace the IDE drivers available in drivers/ide] (everything under the "Device drivers -> ATA/ATAPI/MFM/RLL support" configuration menu) with a reimplementation on top of libata (i.e.: the "SATA layer"). Drivers/ide suffers from many ugly and obscure problems, and re-implementing it on top of libata has been much easier than fixing the unfixable drivers/ide mess - most of the porting work has been done by Alan Cox (a consequence of this PATA merge is that libata and all its SATA drivers have also been moved from drivers/scsi (available in the "Device drivers -> SCSI device support -> SCSI low-level drivers" submenu) to drivers/ata (now "Device drivers -> Serial ATA (prod) and Parallel ATA (experimental) drivers"), and all the CONFIG_SCSI_FOOBAR options for the individual SATA drivers have been changed to CONFIG_FOOBAR, so this means you may need to reconfigure your SATA configuration options)

This means 2.6.19 may have two drivers for your PATA-based device: The old IDE driver under "Device drivers -> ATA/ATAPI/MFM/RLL support" and an alternative driver under "Device drivers -> Serial ATA (prod) and Parallel ATA (experimental) drivers" (along with the rest of the SATA drivers)

What one must you choose? Well, the safe option is using the old driver: The old drivers will continue working just as they did before. There'll be no changes if you continue using the old drivers.

What do the new libata-based PATA drivers offer to you?

Eventually, the new libata-based PATA drivers will get more stable, so the old drivers in drivers/ide may get deleted as the new drivers fulfill all needs of the IDE users and becomes feature-complete. But this certainly won't happen anytime soon. No old drivers will be deleted if there's not a working libata-based replacement. You can read the latest [http://zeniv.linux.org.uk/~alan/IDE/STATUS.txt status report] written by Alan Cox. It'd certainly be useful if you could give it a try and report back how well it works to linux-kernel@vger.kernel.org or bugzilla.kernel.org - even if it works fine, it'll be useful to know what systems do work (be sure to include the necessary information mentioned in the previous status report). [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=drivers/ata (libata PATA code)]

It is probably worth reiterating that if you have SATA drives, and you do a make oldconfig from a 2.6.18 or previous kernel, your system will not boot unless you specifically go in and enable the new SATA subsystem, and the driver for your controller.

Removal of selected OSS drivers

Since 2.6 was released, ALSA has been the "official" sound subsystem. OSS drivers were kept for compatibility - ALSA also implements a OSS compatibility layer. However, there's a big number of ALSA drivers and OSS drivers targetting exactly the same hardware. Usually, the OSS ones are undermaintained (or no maintained at all). And ALSA already implements OSS compatibility. So....

...it's possible to remove old OSS drivers, as long as there's a equivalent ALSA driver, and as long as that driver has no regressions that don't allow users to migrate (drivers with no ALSA equivalent or with know regressions have NOT been deleted). In 2.6.19, those OSS drivers are being removed. If when migrating users find something wrong in the ALSA drivers, they should report it in the [https://bugtrack.alsa-project.org ALSA bug tracking system] and work with developers to fix them. Yes, we know there're users that feel just fine with the OSS drivers, but it doesn't helps to the kernel to keep those old drivers around. By forcing people to migrate to ALSA drivers, the ALSA drivers will be improved and fixed. Overall, the linux sound subsystem will only get better. Many thanks to all the hackers that coded them.

A total of 1.79 MB of OSS drivers will be removed. To see a list of source files being removed, see [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d56b9b9c464a10ab1ee51a4c6190a2b57b8ef7a6 the commit link]. Hardware that is forced to use ALSA drivers include:

AD1980 AC97 plugin; ALI 5455; Alchemy Au1000 (MIPS); AWE32/SB32/AWE64 Wavetable driver; C-Media; Cirrus Logic-Crystal CS4281; Ensoniq ES1370/Asahi Kasei AK4531; ESS Technology Solo1 (ES1946); Fortemedia FM801; Gravis Ultrasound; ASP's and Lasi's Harmony sound chip; ICS2101 mixer of GUS v3.7; OPTi MAD16 compatible audio chips; ESS Maestro/Maestro-2/Maestro-2E/Maestro3/Allegro; Turtle Beach Maui and Tropez; Yamaha YMF701B aka OPL3-SA; RME9652/36 "Hammerfall" Driver; Aztech Sound Galaxy cards; S3 Sonic Vibes; Turtle Beach Wavefront Series (Maui, Tropez, Tropez Plus); Wavefront ICS2115 MIDI; Yamaha YMF7xx

AVR32 Architecture

2.6.19 adds support for the Atmel AVR32 architecture, implemented and supported by Atmel Corporation.

AVR32 is a new high-performance 32-bit RISC microprocessor core, designed for cost-sensitive embedded applications, with particular emphasis on low power consumption and high code density. The AVR32 architecture description, including the instruction set, can be found in the [http://www.atmel.com/dyn/resources/prod_documents/doc32000.pdf AVR32 Architecture Manual]. The Atmel AT32AP7000 is the first CPU implementing the AVR32 architecture; it features a 7-stage pipeline, 16KB instruction and data caches and a full Memory Management Unit and a large set of integrated peripherals ([http://www.atmel.com/dyn/resources/prod_documents/doc32003.pdf full data sheet]); while the CPU core implementation including caches and MMU is documented by the [http://www.atmel.com/dyn/resources/prod_documents/doc32001.pdf AVR32 AP Technical Reference]. Information about the AT32STK1000 development board can be found [http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3918 here], including a BSP CD image, development tools (binaries and source/patches) and a root filesystem image suitable for booting from SD card. Alternatively, there's a preliminary "getting started" guide available at http://avr32linux.org/twiki/bin/view/Main/GettingStarted which provides links to the sources and patches you will need in order to set up a cross-compiling environment for avr32-linux

Source code can be found [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=arch/avr32 here (arch/av32)]

Parallel device probing

(Disabled by default). Most of the boot time speeds up are in userspace, but some minor improvements can be done in the kernel. Until now Linux (and most, if not all the other OS - if there's another OS doing this it'd be interesting to hear about it) when booting take a secuential approach: One device is probed, initializated, etc, after other, then the next subsystem is intializated, a driver is loaded, it detects the device, another driver is loaded, etc etc.

This can cause some minor delays. For example, in the good old days when linux users were real men and didn't use bootsplash and didn't silence their dmesg outputs, you could see a small delay in the IDE driver when probing for disks. This is not a misfeature in the IDE driver, this was a requeriment of IDE. SCSI is even worse - probing for disks can take as much as 30 seconds, 1 minute, or even more! Other small delays can happen in other devices - for example, some devices may require a firmware upload or they may just need some number of seconds to power up. In embedded devices, these kinds of delays can make bootup slower.

This situation is suboptimal. In 2.6.19, the code has changed to allow parallel device probing. The drivers continue working as always, but the kernel won't wait for the driver to finish its work. Instead, the kernel will continue initializating other drivers and subsystems, and will wait for them to finish when it has to run init. In multiprocessor systems, drivers may be initializated in another CPU while the rest of the kernels runs in the the main one.

However this feature is experimental, and for now it's only supported by the PCI subsystem. Some PCI drivers can not properly handle running in this way, and others might decide to blow up power supplies with a huge load all at once, so use this option at your own risk. [http://lwn.net/Articles/201111/ (LWN article)]

[http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d779249ed4cb3b50690de6de8448829d65a1cd08 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0f397f865076e3471ec884ee73ad5e34165fac2a (commit)]

Sleepable RCU (Read Copy Update)

[http://lwn.net/Articles/202847/ (LWN article by Paul McKenney, who implemented it)]

Like in spinlocks, preemptable RCU read-side critical sections were prohibited. However, many people had frequently requested a "sleepable RCU". Furthermore, the realtime capabilities being developed in the -rt patch required that those critical sections were preemptible. So a RCU variant permitting read-side blocking has been developed, and a SRCU-base notifier chain has also been merged [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=621934ee7ed5b073c7fd638b347e632c53572761 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eabc069401bcf45bcc3f19e643017bf761780aa8 (commit)]

Memory Management

Configurable block layer

2.6.19 makes it possible to disable the block layer. Not all embedded devices require it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require the block layer to be present [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9361401eb7619c033e2394e4f9f6d410d6719ac7 (commit 1], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=51d7513a8a54e4210d358ff1dbd34daab99a6638 2], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf9a2ae8d49948f861b56e5333530e491a9da190 3], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0d67a46df0125e20d14f12dbd3646f1f1bf23e8c 4], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b398f6bff93a247d2a7099e92905374966e4558f 5], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=811d736f9e8013966e1a5a930c0db09508bdbb15 6], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07f3f05c1e3052b8656129b2a5aca9f888241a34 7], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=831058dec3735665fe91bd0d37b6a8cf56b91abd 8], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7b0de42d7c5a471741ede4e71727d88000e6ea59 9], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=65e6f5bc8149165efb9d7bdbd142bb837d5edfeb 10], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b71e8a4ce03b3098c7801ee5e6e08d1a39a226c2 11], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36695673b012096228ebdc1b39a6a5850daa474e 12], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52b499c438ff60991eb3855ca090782569b3e8cf 13], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e322ff07fb2d0f05c02d85e7c6b30d23f308c20f 14], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=188f83dfe0eeecd1427d0d255cc97dbf7ef6b4b7 15], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52a700c5675f399c07e6e57328291e57f13ef3bb 16], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=863d5b822c02d0e7215fb84ca79e9f8c3e35f04e 17], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d366e40a1cabd453be6e2609caa7e12f9ca17b1f 18], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4cb50dc2eaeddb0bc20bc4cd108c4fec99f5045a 19], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=65934a9a028b88e83e2b0f8b36618fe503349f8e 20)]

[http://lwn.net/Articles/197299/ (LWN article)]

Other stuff

Arch-independent changes in the kernel core

* Single bit flip detector. In cases where we detect a single bit has been flipped, we spew the usual slab corruption message, which users instantly think is a kernel bug. In a lot of cases, single bit errors are down to bad memory, or other hardware failure, so suggest users to run memtest86 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa83aa40ed2ae113d9ee5529cdd9e8c0e5fabe61 (commit)]

* lockdep: core, add enable/disable_irq_irqsave/irqrestore() APIs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e8106b941ceab68cc5ff713df7b1276484554584 (commit)]

* Generic boolean. The kernel hackers have finally surrendered to it. $DEITY help us! ;-) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e21828743247270d09a86756a0c11702500dbfb (commit)]

* Directed yield: cpu_relax variants for spinlocks and rw-locks. On systems running with virtual cpus there is optimization potential in regard to spinlocks and rw-locks. If the virtual cpu that has taken a lock is known to a cpu that wants to acquire the same lock it is beneficial to yield the timeslice of the virtual cpu in favour of the cpu that has the lock (directed yield) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef6edc9746dc2bfdacf44eefd5f881179971c478 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cdc39363d33506b0e067d41fc91f89d186bdf7f7 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c1fcfe229e99752c74efb945a4a3f560be04204 (commit)]

* Generic ioremap_page_range [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=74588d8ba34ff1bda027cfa737972af01ab00c8b (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db71daabad0821996483dfe309c4bc81d6755a70 (commit)]; cris [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e32cbc3df44838cc93a679aca3561f75b4964c57 (commit)], alpha [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=801f92ad5a0c630646f6746f3ed1663fcab185d1 (commit)], mr32 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9540fc42305859705b0232a10c8dec3ad866bd40 (commit)], avr32 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=86c8eb360daa6286e3f9bd32a22e5d9c69e86dd1 (commit)], x86-64 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16c564bb3cdecbc39eab5c0de3fe94ed58ba4163 (commit)], i386 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a148ecfdf04d5fcb840324eef45d63ed674c73b9 (commit)]

* EISA bus MODALIAS attributes support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07563c711fbc25389e58ab9c9f0b9de2fce56760 (commit)]

* Debug variants of linked list macros [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=199a9afc3dbe98c35326f1d3907ab94dae953a6e (commit)] * list_del debug check [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=df89a864631f5d840f4873c4c03733b4206e78ea (commit)] * add CONFIG_ENABLE_MUST_CHECK [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cebc04ba9aeb3a646cc746300421fc0e5aa4f253 (commit)]

* csa: This patch is to change those ifdef's from CONFIG_BSD_PROCESS_ACCT to CONFIG_TASK_XACCT [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f0ab5147951267134612570604cf8341901a80c (commit)]

csa: Extended system accounting over taskstats [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9acc1853519a0473620d424105f9d49ea5b4e62e (commit)] csa accounting taskstats update [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db5fed26b2e0beed939b773dd5896077a1794d65 (commit)]

* Support piping into commands in /proc/sys/kernel/core_pattern [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d025c9db7f31fc0554ce7fb2dfc78d35a77f3487 (commit)]

* Linux Kernel Dump Test Module, a simple module to test Linux Kernel Dump mechanism that allows users to crash their kernel in different ways. Linux is getting so good, we need a kernel module to remember the old days [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8bb31b9d5340ed3dfef45d322f59fcf18a0d598b (commit)]

* kconfig/menuconfig: lxdialog is now built-in: lxdialog was previously called as an external program causing screen to flicker when used. With this patch lxdialog is now built-in [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2982de6993e6d9944f2215d7cb9b558b465a0c99 (commit)], add support for color themes and add blackbg theme [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=458972132a705c4a869002354f7f10f395d08c18 (commit)], add a new theme bluetitle which is now default [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=350b5b76384e77bcc58217f00455fdbec5cac594 (commit)], support resize [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c8dc68ad0fbd934e78e913b8a8d7b45945db4930

* Implement the epoll_pwait system call, that extend the event wait mechanism with the same logic ppoll and pselect do. The definition of epoll_pwait is: int epoll_pwait(int epfd, struct epoll_event *events, int maxevents, int timeout, const sigset_t *sigmask, size_t sigsetsize); [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b611967de4dc5c52049676c4369dcac622a7cdfe (commit)]

* Add a dynamic irq creation API. With the msi support comes a new concept in irq handling, irqs that are created dynamically at run time. To solve the basic dynamic irq allocation problem two new architecture specific functions are added: create_irq and destroy_irq [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3a16d713626735f3016da0521b7bf251cd78e836 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3fc471ede99579211c44b6a64829c4318976990f (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4fa0bbf384496ae4acc0a150719d9d8fa8d11b3 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b6cf2583ba026ca563ff8b15805fcf30b8e192a7 (commit)]

* dm: add target preresume [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8757b7764f13e336f3c0eb1f634440d4ee4c3a67 (commit)]. * md: the scheduled removal of the START_ARRAY ioctl for md [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fbedac04fa11d7f9f9f425c7ec253f55becaae57 (commit)] * dm linear: support ioctls [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ab17ffa440cb54ca64111fa4922ba12496fcc8af (commit)] * dm mpath: support ioctls [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9af4aa30b713a58e5952045f52c41a6e3baa2fdc (commit)] * dm: add uevent change event on resume [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8560ed6fa8d43537af558514fa48f670b3349f08 (commit)] * dm crypt: add key msg [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e48d4bbf9697f4fee4f4e48c5e2586b332809519 (commit)] * md: new sysfs interface for setting bits in the write-intent-bitmap [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b1d1dac181d8c1b9492e05cee660a985d035a06 (commit)] (commit)]

* NOMMU: make futexes work under NOMMU conditions [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=930e652a21a08986b03d1f370f933057dc0db2dc (commit)], implement /proc/pid/maps for NOMMU [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dbf8685c8e21404e3a8ed244bd0219d3c4b89101 (commit)], make mremap() partially work for NOMMU kernels [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6fa5f80bc34da1a49b42117602b44441402cac2f (commit)]

* kdump: introduce "reset_devices" command line option. This option can be used by drivers to know that user forcibly wants the devices to be reset during initialization [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7e96287ddc4f42081e18248b6167041c0908004c (commit)]

* LSM: remove BSD secure level security module [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3bc1fa8ae18f281b40903cce94baba10c3cf9d88 (commit)] * Introduce kmemdup [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1a2f67b459bb7846d4a15924face63eb2683acc2 (commit)]

* NTP: Convert to the NTP4 reference model [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f19923937321244e7dc334767eb4b67e0e3d5c74 (commit)]

* Create a call_usermodehelper_pipe() function that allows to pipe data to the stdin of the called user mode program [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e239ca540594cff00adcce163dc332b27015d8e5 (commit)]

* 32-bit compatibility HDIO IOCTLs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=39484e53bb00f55b6303a908070db133608ef2a5 (commit)]

* introduce kernel_execve, the use of execve() in the kernel is dubious, since it relies on the KERNEL_SYSCALLS mechanism that stores the result in a global errno variable [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6760856791c6e527da678021ee6a67896549d4da (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fe74290d51bc08e9b90ed7c145d74a22cd50b90e (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=821278a75d270048e291fcbec9304439a176ba88 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=135ab6ec8fdad6f61aabe53f456821baf4a4aa0e (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3db03b4afb3ecd66a0399b8ba57742ca953b0ecd (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5f4c6bc1f369f20807a8e753c2308d1629478c61 (commit)]

* schedule removal of FUTEX_FD [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=19c6b6ed3f597a583f58e3fc99256cc01ae8c394 (commit)]

Architecture-specific changes

Filesystems

SELinux

Networking

* [IPV4]: Use Protocol Independant Policy Routing Rules Framework: [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e1ef4bf23b1ced0bf78a1c98289f746486e5c912 (commit)]

* [NetLabel]: core network changes: Changes to the core network stack to support the NetLabel subsystem. This

[http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11a03f78fbf15a866ba3bf6359a75cdfd1ced703 (commit)]

At outbound it makes header space like IPsec transport. At inbound it does nothing because exhdrs.c functions have responsibility to update skbuff information for these headers.

[http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1d71627d699eca831c1fbfb66ea67bb1fba41415 (commit)]

* [XFRM] POLICY: sub policy support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4e81bb8336a0ac50289d4d4c7a55e559b994ee8f (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c11f1a15c522ddd3bbd2c32b5ce3e0b1831b22f2 (commit)]

* [DCCP]: Introduce tx buffering [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=97e5848dd39e7e76bd6077735ebb5473763ab9c5 (commit)]

* [IPV6] NDISC: Add proxy_ndp sysctl [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fbea49e1e2404baa2d88ab47e2db89e49551b53b (commit)]

* [IPV6]: Add Kconfig to enable Mobile IPv6 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ee53826801a8fa7a0e333895421ef6d0e5fbfbf0 (commit)]

* [IPV6] ADDRCONF: Mobile IPv6 Home Address support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b9f9a1c3903b64c38505f9fed3bb11e48dbc931 (commit)]

* [IPV6] KCONFIG: Add subtrees support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4e96c2b4180aff4f080b77314712073c6ca430e7 (commit)]

* [TCP]: make cubic the default http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=597811ec167fa01c926a0957a91d9e39baa30e64 (commit)]

* [TCP]: default congestion control menu [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3d2573f7ebe507e372a23cdd3c8b03305d6e90aa (commit)]

* [NETFILTER]: ebt_mark: add or/and/xor action support to mark target [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b18dfa90c008850e0f3bfd63638dd8fbe8e08701 (commit)]

* [XFRM]: BEET (Bound End-to-End Tunnel) mode with as specified by [http://www.ietf.org/internet-drafts/draft-nikander-esp-beet-mode-06.txt this ietf draft] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0a69452cb45add0841c2bc1e75c25f6bd4f1d8d9 (commit)]

* [PKTGEN]: DSCP support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1ca7768c87ac1393228857d576654f7e84c8cee6 (commit)], allow pktgen to produce 802.1Q and Q-in-Q tagged frames [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=34954ddc4f3e790fb6d5ed331513f54b38713234 (commit)]

* [SCTP]: Enable Nagle algorithm by default [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=208edef6a5b6c50363c77efcf34c4b4020681029 (commit)]

* [TIPC]: Added subscription cancellation capability [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eb409460b1abec0e2a1f9c9d07019f4157a6d6bc (commit)], add support for Ethernet VLANs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3a8d12142eab420ffcbbf3d1d2e637158e85aab8 (commit)], added duplicate node address detection capability [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e91ed0bcdfc4812c0342d64281ee985213df07c3 (commit)]

Crypto

CPUFREQ

Drivers and other subsystems

Video

USB

Input devices

Sound

libata/IDE

V4L/DVB

Network drivers

SCSI drivers

Hardware monitoring drivers

Various drivers

* [MTD] physmap: add power management support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=17c2dae3aaff9b1e5d83996a5f098ad693f3aeca (commit)]

* [MTD] Remove iq80310 map driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e417fcfb857b809e5dabc9b252ad70f090d553d1 (commit)]

* [MTD] Add SSFDC (SmartMedia) read-only translation layer [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=51197abf29657373bcf9803d87da3c3d8fc3a37e (commit)]

* AVR32 MTD: Static Memory Controller driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bc157b75960f1f33566074e820342690216629b9 (commit)], add AT49BV6416 platform device for ATSTK1000 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2514183dff2d5282cb745af34f56d1b98e5b2df8 (commit)]

* RDMA: iWARP Connection Manager [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=922a8e9fb2e0711212badce47a41137e2ca04cb3 (commit)], add a driver for the Ammasso 1100 gigabit ethernet RNIC [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f94b533d091a42da92d908eb7b3f9ade1923f90d (commit)], add driver for IBM eHCA InfiniBand adapters [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fab97220c9e409a98b1956ba677ddd2dd43b0b95 (commit)], performance improvements via mmap of queues [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=373d9915803aebbbf7fd3841efd9dac31c32e148 (commit)], support revision 2 InfiniPath PCIE devices [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c9446a1d63f1ca570e92f89422595732efedf44 (commit)], support new PCIE device, QLE7142 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf3258ec418a008ab4672787ebff2c5837dd1e69 (commit)], driver support for userspace sharing of HW contexts [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9929b0fb0f35f54371e9364bab809bcd753f9d3a (commit)]

* rtc: New RTC driver for SuperH On-Chip RTC [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=317a6104a99f87c0b35c0d9f19ec23ee7429b33e (commit)]

* it87: Add support for the IT8718F [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=87673dd735b8e089b7f2830edd353aa5f5e743ad (commit)] and for the IT8716F [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=17d648bf5786ba5b8cbf7cbd5cb18d3d8d2657ca (commit)]

* abituguru: Add suspend/resume support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=360b9ab220aedaf346380fc2344729d9acc3b075 (commit)]

* atiixp: ATI SB600 IDE support for various modes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2b33b4dcbe5e09e683eef281f72aef951e17061c (commit)]

* hdaps: support Lenovo ThinkPad T60 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=710b8b5f4341e72a5f5f6fa58d1f73a0db64bf93 (commit)]

* cciss: support for >2TB logical volumes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=00988a3514bbc0cce781c067cf52559741d88b80 (commit)]

* synclink_gt: add bisync and monosync modes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb10dc9ac7eea2c891df6b79b9ef1fbe59cb5429 (commit)]

* dm: support ioctls on mapped devices [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa129a2247b164173d45da8ad43cca5de9211403 (commit)] * [WATCHDOG] iTCO_wdt (Intel TCO Timer) driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9e0ea345ff542320882caa21ec2248e6c02d8b91 (commit)]

* [WATCHDOG] w83697hf WDT driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f9a8c8913a95aed91bfa81f7d4043c6430423bf8 (commit)]

* [WATCHDOG] Winbond SMsC37B787 watchdog driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=485ae77dc7f484563707557ccf8c5d228980619f (commit)]

* i2c: New bus driver for TI OMAP boards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=010d442c4a295a73e90e93c5e42579cee61c5cc7 (commit)] * i2c-viapro: Add support for the VT8237A and VT8251 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c243353a90fae3a9a85d2bd79b1df06bb21c568a (commit)]

* OMAP: Add Watchdog driver support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7768a13c252a97e13a552f88f642962768de1fa4 (commit)] * OMAP: Add keypad driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ad4e09b16ad361c15bd7186dcd118cb901089b97 (commit)]

* Create a driver to support the platform-specific features of MSI S270 laptops backlight, wlan, bluetooth states [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8c4c731a89ea6458001f48033f8988447736fb38 (commit)] * asus_acpi: W3000 support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=288f3ad406460f03642a41bb945826891a7b866f (commit)]

* Remove old drivers/char/s3c2410_rtc.c, since there is now a drivers/rtc/rtc-s3c.c driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d202a6c0883cf17a4a6e61a12e138598ec3ed32d (commit)]

* mmc: driver for TI FlashMedia card reader [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4020f2d7f0b0e68b92bec9a3e1f4a54a7a9dc672 (commit)], http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f9565129993446e16678cfc4d9c7f3b7e75eecbd * IPMI: per-channel command registration [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c69c31270c35a6b8421a8e4ba81de1247ac6df95 (commit)]

KernelNewbies: Linux_2_6_19 (last edited 2006-11-09 06:26:39 by pool-71-117-233-100)