#pragma section-numbers on #pragma keywords Linux, Kernel, Operative System, Linus Torvalds, Open Source, drivers #pragma description Summary of the changes and new features merged in the Linux Kernel during the 2.6.35 development cycle /!\ /!\ /!\ '''WORK IN PROGRESS''' /!\ /!\ /!\ '''Summary''': Linux 2.6.35 This page contains details about the main features included in the kernel core and the main subsystems. For details on architecture-specific changes and driver changes, check the page [wiki:Linux_2_6_35-DriversArch Linux_2_6_35-DriversArch] [[TableOfContents()]] = Prominent features (the cool stuff) = == Btrfs improvements == * Direct I/O support: Direct I/O is a technique used to bypass the filesystem cache. This harms performance, but it's widely used by high performance software like some databases, which like to implement their own cache. Code: [http://git.kernel.org/linus/4b46fce23349bfca781a32e2707a18328ca5ae22 (commit)] * Complete -ENOSPC support: Linux 2.6.32 already added reliable -ENOSPC support for common filesystem usage, but some corner cases hit by volume management operations were not handled. The -ENOSPC code added in this version handles all difficult corner cases like space balancing, drive management, fsync logging and many others. Code: [http://git.kernel.org/linus/b742bb82f1676d50103ade0ba89bfb79debabe73 (commit 1], [http://git.kernel.org/linus/424499dbd0c4d88742bf581b5714b27fb44b9fef 2], [http://git.kernel.org/linus/5da9d01b66458b180a6bee0e637a1d0a3effc622 3], [http://git.kernel.org/linus/f0486c68e4bd9a06a5904d3eeb3a0d73a83befb8 4], [http://git.kernel.org/linus/a22285a6a32390195235171b89d157ed1a1fe932 5], [http://git.kernel.org/linus/0ca1f7ceb1991099ed5273885ebcf4323948c72e 6], [http://git.kernel.org/linus/8929ecfa50f266163832eeacfbc3642ed5eb83b6 7], [http://git.kernel.org/linus/d68fc57b7e3245cfacf2e3b47acfed1946a11786 8], [http://git.kernel.org/linus/4a500fd178c89b96fa166a2d9e7855df33429841 9], [http://git.kernel.org/linus/3fd0a5585eb98e074fb9934549c8d85c49756c0d 10] ,[http://git.kernel.org/linus/efa56464562991b8c24f965199888806bd8c4b38 11)] == XFS Delayed logging == This version adds a logging (journaling) mode called delayed logging, which is very briefly modeled after the journaling mode in the ext3/4 and reiserfs filesystems. It allows to accumulated multiple asynchronous transactions in memory instead of possibly writing them out many times. The I/O bandwidth used for the log decreases by orders of magnitude and performance on metadata intensive workloads increases massively. The log disk format is not changed, only the in-memory data structures and code. This feature is experimental, so it's not recommended for final users or production servers. Those who want to test it can enable it with the "-o delaylog" mount option. Code: [http://git.kernel.org/linus/a9a745daadab26f13884ff26a50fa38247c11ce9 (commit 1], [http://git.kernel.org/linus/71e330b593905e40d6c5afa824d38ee02d70ce5f 2)] == Support for multiple multicast route tables == Normally, a multicast router runs a userspace daemon and decides what to do with a multicast packet based on the source and destination addresses. This feature adds support for multiple independant multicast routing instances, so the kernel is able to take interfaces and packet marks into account and run multiple instances of userspace daemons simultaneously, each one handling a single table. Code: [http://git.kernel.org/linus/f0ad0860d01e47a3ffd220564c5c653b3afbe962 (commit)], [http://git.kernel.org/linus/d1db275dd3f6e4182c4c4b4a1ac6287925d60569 (commit)], [http://git.kernel.org/linus/5b285cac3570a935aaa28312c1ea28f9e01c5452 (commit)] == L2TP Version 3 (RFC 3931) support == This version adds support for Layer 2 Tunneling Protocol (L2TP) version 3, [http://www.ietf.org/rfc/rfc3931.txt RFC 3931]. L2TP provides a dynamic mechanism for tunneling Layer 2 (L2) "circuits" across a packet-oriented data network (e.g., over IP). L2TP, as originally defined in RFC 2661, is a standard method for tunneling Point-to-Point Protocol (PPP) [RFC1661] sessions. L2TP has since been adopted for tunneling a number of other L2 protocols, including ATM, Frame Relay, HDLC and even raw ethernet frames, this is the version 3. Code: [http://git.kernel.org/linus/f7faffa3ff8ef6ae712ef16312b8a2aa7a1c95fe (commit)], [http://git.kernel.org/linus/e0d4435f93905f517003cfa7328a36ea19788147 (commit)], [http://git.kernel.org/linus/0d76751fad7739014485ba5bd388d4f1b4fd4143 (commit)], [http://git.kernel.org/linus/789a4a2c61d843df67988d69e7c3f3a4bca97e8e (commit)] == CAIF Protocol support == Support for the CAIF protocol. CAIF is a MUX protocol used by ST-Ericsson cellular modems for communication between Modem and host. The host processes can open virtual AT channels, initiate GPRS Data connections, Video channels and Utility Channels. The Utility Channels are general purpose pipes between modem and host. ST-Ericsson modems support a number of transports between modem and host. Currently, UART and Loopback are available for Linux [http://git.kernel.org/linus/70596b612c04694806a31dd389bd796c035085fa (commit 1], [http://git.kernel.org/linus/09009f30de188c847d72039e6250bfea56a0f887 2], [http://git.kernel.org/linus/f671c54207d8a47129f35a84569fdfda614d2439 3], [http://git.kernel.org/linus/2721c5b9dd2a56a9710021c00146bb26ba8dd7b3 4], [http://git.kernel.org/linus/b482cd2053e3b90a7b33a78c63cdb6badf2ec383 5], [http://git.kernel.org/linus/15c9ac0c80e390df09ce5730a7b08b13e07a8dd5 6], [http://git.kernel.org/linus/c72dfae2f77620e5b3fcee1beeee7e536a42b2ad 7], [http://git.kernel.org/linus/e6f95ec8db312491235b4f06343fbd991a82ce20 8], [http://git.kernel.org/linus/cc36a070b5901cd54386348b4d79d2daac91ce75 9], [http://git.kernel.org/linus/3908c6902372206cc582ecf459af889b09a150c9 10], [http://git.kernel.org/linus/edc7616c307ad315159a8aa050142237f524e079 11], [http://git.kernel.org/linus/9b27105b4a44c54bf91ecd7d0315034ae75684f7 12)] = CPU scheduler = * The following features have no use today and are being removed: AFFINE_WAKEUPS [http://git.kernel.org/linus/beac4c7e4a1cc6d57801f690e5e82fa2c9c245c8 (commit)], ASYM_GRAN [http://git.kernel.org/linus/13814d42e45dfbe845a0bbe5184565d9236896ae (commit)], avg_overlap [http://git.kernel.org/linus/e12f31d3e5d36328c7fbd0fce40a95e70b59152c (commit)], avg_wakeup [http://git.kernel.org/linus/b42e0c41a422a212ddea0666d5a3a0e3c35206db (commit)], FAIR_SLEEPERS feature [http://git.kernel.org/linus/5ca9880c6f4ba4c84b517bc2fed5366adf63d191 (commit)], NORMALIZED_SLEEPER [http://git.kernel.org/linus/6bc6cf2b61336ed0c55a615eb4c0c8ed5daf3f08 (commit)], SYNC_WAKEUPS feature [http://git.kernel.org/linus/c6ee36c423c3ed1fb86bb3eabba9fc256a300d16 (commit)], WAKEUP_SYNC feature [http://git.kernel.org/linus/f2e74eeac03ffb779d64b66a643c5e598145a28b (commit)] * Tweak sched_latency and min_granularity, speeds up a tiny bit tbench [http://git.kernel.org/linus/21406928afe43f1db6acab4931bb8c886f4d04ce (commit)] * Rate-limit nohz [http://git.kernel.org/linus/39c0cbe2150cbd848a25ba6cdb271d1ad46818ad (commit)] * sysfs: Implement sysfs tagged directory support. [http://git.kernel.org/linus/3ff195b011d7decf501a4d55aeed312731094796 (commit)] = Filesystems = * OCFS2 * Implement allocation reservations [http://git.kernel.org/linus/d02f00cc057809d96c044cc72d5b9809d59f7d49 (commit)], [http://git.kernel.org/linus/4fe370afaae49c57619bb0bedb75de7e7c168308 (commit)], [http://git.kernel.org/linus/e3b4a97dbe9741a3227c3ed857a0632532fcd386 (commit)], [http://git.kernel.org/linus/6b82021b9e91cd689fdffadbcdb9a42597bbe764 (commit)], [http://git.kernel.org/linus/83f92318fa33cc084e14e64dc903e605f75884c1 (commit)], * Optimize punching-hole code. [http://git.kernel.org/linus/c1631d4a484fbb498e35d661f1aebd64c86b66bf (commit)] * Discontiguous block groups. [http://git.kernel.org/linus/798db35f4649eac2778381c390ed7d12de9ec767 (commit)], [http://git.kernel.org/linus/4cbe4249d6586d5d88ef271e07302407a14c8443 (commit)], [http://git.kernel.org/linus/1a934c3e57594588c373aea858e4593cdfcba4f4 (commit)] * Make nointr a default mount option [http://git.kernel.org/linus/4b37fcb7d41ce3b9264b9562d6ffd62db9294bd1 (commit)] * Squashfs: XATTR support [http://git.kernel.org/linus/67f66cc6c728de183d9d43c243cb163c1ebd8e04 (commit)], [http://git.kernel.org/linus/f41d207cbedecd82f797adcce83890aa96f1c9e9 (commit)], [http://git.kernel.org/linus/4b5397dc24ab12afaac85be3d0863b7f6eb8b0f0 (commit)], [http://git.kernel.org/linus/01e5b4e4e897fce8c7e6236bc933c9721c7ee237 (commit)] * Ext2: Remove BKL from ext2 filesystem [http://git.kernel.org/linus/e0a5cbac029db69032758000c67465c2ed7a5736 (commit)] * Ext4: check for a good block group before loading buddy pages [http://git.kernel.org/linus/8a57d9d61a6e361c7bb159dda797672c1df1a691 (commit)] * UFS: permit mounting of Borderware filesystems [http://git.kernel.org/linus/d27d7a9a7838587fcdcc6f2b042f5610eb4984a1 (commit)] * NILFS2: change default of 'errors' mount option to 'remount-ro' mode [http://git.kernel.org/linus/277a6a34175dcb0ee98dceee619e0e3190347a25 (commit)] = Networking = * L2TP (Layer 2 Tunneling Protocol) * Add netlink control API for L2TP [http://git.kernel.org/linus/309795f4bec2d69cd507a631f82065c2198a0825 (commit)] * Add L2TP ethernet pseudowire support [http://git.kernel.org/linus/d9e31d17ceba5f0736f5a34bbc236239cd42b420 (commit)] * Add debugfs files for dumping l2tp debug info [http://git.kernel.org/linus/0ad6614048cf722e4d27909665b4846805357f1b (commit)] * IPv6 * Add GSO support on forwarding path [http://git.kernel.org/linus/0aa68271510ae2b221d4b60892103837be63afe4 (commit)] * Complete IPV6_DONTFRAG support [http://git.kernel.org/linus/4b340ae20d0e2366792abe70f46629e576adaf5e (commit)] * Convert addrconf hash list to RCU [http://git.kernel.org/linus/5c578aedcb21d79eeb4e9cf04ca5b276ac82614c (commit)] * Add support for the Generic TTL security mechanism ([http://tools.ietf.org/html/rfc5082 RFC 5082]), equivalent to the IPv4 functionality merged in 2.6.34 [http://git.kernel.org/linus/e802af9cabb011f09b9c19a82faef3dd315f27eb (commit)] * mac80211 (wireless stack) * Add offload channel switch support [http://git.kernel.org/linus/5ce6e438d5d9ed8ed775cd1e94f92002c8da2bad (commit)] * Add support for connection quality monitoring [http://git.kernel.org/linus/1e4dcd012423b6a28f968a55886d2b27896a1586 (commit)], [http://git.kernel.org/linus/a97c13c34509be460dea23c86f31c02daa2428b5 (commit)] * Enable QoS explicitly in AP mode [http://git.kernel.org/linus/0af26b278bc1d747370b451595b7586cb7b3455c (commit)] * Implement ap isolation support [http://git.kernel.org/linus/7b7b5e56d7bdfdd0eb5ea13e6c9613b16b8eac46 (commit)] * Use different MAC addresses for virtual interfaces automatically [http://git.kernel.org/linus/fa9029f8c34576e121a4b6ddbbd645081fe50c74 (commit)] * Allow controlling aggregation manually in debugfs [http://git.kernel.org/linus/a75b4363eaafa99d909da4f1192322a78b074c73 (commit)] * cfg80211 (wifi configuration layer) * Add ap isolation support [http://git.kernel.org/linus/fd8aaaf3519f3fd3c82594e90bc6808072b94d54 (commit)] * Add connection quality monitoring support to nl80211 [http://git.kernel.org/linus/d6dc1a386358979e12366d1f35eeb68fc181e101 (commit)] * Add local-state-change-only auth/deauth/disassoc [http://git.kernel.org/linus/d5cdfacb35ed886271d1ccfffbded98d3447da17 (commit)] * Bridge * per-cpu (scalable) packet statistics [http://git.kernel.org/linus/14bb4789833a2e2610f30e2d3e1451701ac96ec1 (commit)] * IPv6 MLD support. [http://git.kernel.org/linus/08b202b6726459626c73ecfa08fcdc8c3efc76c2 (commit)] * netpoll: add generic support for bridge and bonding devices [http://git.kernel.org/linus/0e34e93177fb1f642cab080e0bde664c06c7183a (commit)], [http://git.kernel.org/linus/c06ee961d3c0e51009cbd0e123b61fbb97f37d0b (commit)], [http://git.kernel.org/linus/f6dc31a85cd46a959bdd987adad14c3b645e03c1 (commit)] * Add netlink support for virtual port management (was iovnl) [http://git.kernel.org/linus/57b610805ce92dbd79fc97509f80fa5391b99623 (commit)] * alloc_skb() speedup [http://git.kernel.org/linus/ec7d2f2cf3a1b76202986519ec4f8ec75b2de232 (commit)] * Expose all network devices in a namespaces in sysfs [http://git.kernel.org/linus/a1b3f594dc5faab91d3a218c7019e9b5edd9fe1a (commit)] * Netfilter xtables: merge xt_CONNMARK into xt_connmark [http://git.kernel.org/linus/b8f00ba27e4acc4a2224360ce3aa8a22354434c5 (commit)], merge xt_MARK into xt_mark [http://git.kernel.org/linus/28b949885f80efb87d7cebdcf879c99db12c37bd (commit)], inclusion of xt_TEE [http://git.kernel.org/linus/e281b19897dc21c1071802808d461627d747a877 (commit)] * Add IFLA_STATS64 support [http://git.kernel.org/linus/10708f37ae729baba9b67bd134c3720709d4ae62 (commit)] = Tracing/Profiling = = Crypto = = Virtualization = = Block = = Security = * TOMOYO: Add pathname grouping support. [http://git.kernel.org/linus/7762fbfffdbce8191f5236d5053b290035d3d749 (commit)]