#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)] == perf improvements == * 'perf kvm' tool for monitoring guest performance from host [http://git.kernel.org/linus/a1645ce12adb6c9cc9e19d7695466204e3f017fe (commit)] * perf probe: Support accessing members in the data structures. With this, perf-probe accepts data-structure members (IOW, it now accepts dot '.' and arrow '->' operators) as probe arguments e.g. "perf probe --add 'schedule:44 rq->curr'" or "perf probe --add 'vfs_read file->f_op->read file->f_path.dentry'" [http://git.kernel.org/linus/7df2f32956cf0f1a45df38cd0e0fe0c3467580e8 (commit)] * Improve --list to show current exist probes with line number and file name. This enables user easily to check which line is already probed. Code: [http://git.kernel.org/linus/fb1587d869a399554220e166d4b90b581a8ade01 (commit)]. For example: ./perf probe --list probe:vfs_read (on vfs_read:8@linux-2.6-tip/fs/read_write.c) * Implement a console UI using newt [http://git.kernel.org/linus/f9224c5c944b60cf709db4adf1f5195264b8d194 (commit)], [http://git.kernel.org/linus/46e3e055ce69a00d735e458445ab1d24718ff751 (commit)] * Perf probe: add --dry-run option [http://git.kernel.org/linus/f4d7da499e4fc1fdff8f26fdeb1a058d475a7a6c (commit)], add --max-probes option [http://git.kernel.org/linus/ef4a356574426877d569f8b6579325537eb7909b (commit)] == Graphic improvements == As always, there's a bunch of improvements to the graphics layer * i915 * H.264 and VC1 hardware acceleration on G45+ [http://git.kernel.org/linus/d1b851fc0d105caa6b6e3e7c92d2987dfb52cbe0 (commit)] * Intel Cougarpoint support [http://git.kernel.org/linus/3bad0781832e4e8c9a532f1169bfcd7257bcfd9e (commit 1], [http://git.kernel.org/linus/8db9d77b1b14fd730561f64beea8c00e4478d7c5 2], [http://git.kernel.org/linus/0f229062a13204120dcd23168ad008e559bb1376 4], [http://git.kernel.org/linus/b3b095b3b2b052f3c665b0d9e3e551fb65062db3 5], [http://git.kernel.org/linus/e3421a189447c0b8cd0aff5c299f53b5ab7c38f6 6], [http://git.kernel.org/linus/14571b4c1ac9c109f5d6d6e95cfdb92339151fe0 7], [http://git.kernel.org/linus/461ed3caee9b615393eb5beb9a8148d230354b41 8)] * Add power monitoring support [http://git.kernel.org/linus/7648fa99eb77a2e1a90b7beaa420e07d819b9c11 (commit)] * Add support for interlaced display. [http://git.kernel.org/linus/734b4157b367d66405f7dab80085d17c9c8dd3b5 (commit)] * Add the support of memory self-refresh on Ironlake [http://git.kernel.org/linus/7f8a85698f5c8a981641ec0bdf9926768786db9d (commit)] * Radeon * Initial power management support [http://git.kernel.org/linus/2031f77ca9c17133869b265210418959a909d259 (commit 1], [http://git.kernel.org/linus/a424816fb37f894a37585cf86dfdd6b8b1dc681f 2], [http://git.kernel.org/linus/78930b1c39dd4a5afd5aa873eec11b5bd7079866 3], [http://git.kernel.org/linus/536fcd5124df6af3b95f1bffc925d9ccb6d5b9df 4)] * Simplify & improve GPU reset [http://git.kernel.org/linus/225758d8ba4fdcc1e8c9cf617fd89529bd4a9596 (commit 1], [http://git.kernel.org/linus/90aca4d2740255bd130ea71a91530b9920c70abe 2)] * Evergreen: Implement several important pieces of the driver [http://git.kernel.org/linus/49f6598277635af13d60e7d2601963356bc48bd8 (commit 1], [http://git.kernel.org/linus/08c5c51507614ffd6fee8f3517c33ac5e1576e82 2], [http://git.kernel.org/linus/0fcdb61e78050f8f0b31029eeafa5ae013ce0f35 3], [http://git.kernel.org/linus/747943ea187e5acceb7ffc762ff2c84cb3449745 4], [http://git.kernel.org/linus/32fcdbf4084544c3d8fa413004d57e5dc6f2eefe 5], [http://git.kernel.org/linus/fe251e2fffa1ebc17c8e6e895b0374ae4e732fa5 6], [http://git.kernel.org/linus/45f9a39bedc3afab3fc85567792efc0103f34a55 7], [http://git.kernel.org/linus/0ca2ab52d451c25764e53d3d289e1be357c977d7 8], [http://git.kernel.org/linus/cb5fcbd540b438a5d311bd15dc910841d01ed140 9], [http://git.kernel.org/linus/7ac9aa5a1f1b87adb69bcbec2b89e228f074103a 10], [http://git.kernel.org/linus/9349d5cc920c10845693f906ebd67f394f1d0d04 11)] * Enable use of unmappable VRAM [http://git.kernel.org/linus/6b8b1786a8c29ce6e32298b93ac8d4a18a2b11c4 (commit)] * Add polling support for when nothing is connected. [http://git.kernel.org/linus/5c4426a782bc9509573fc7958a786ebd14fafdf3 (commit)] * ttm: add pool wc/uc page allocator [http://git.kernel.org/linus/1403b1a38e8b19a4cc17e2c158e278628943a436 (commit 1], [http://git.kernel.org/linus/c96af79e3463d5d3f865625baa8bb8aa4c0944a0 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)] * Bluetooth * Add sockopt configuration for txWindow on L2CAP [http://git.kernel.org/linus/14b5aa71ec506f4e38ca6a1dc02ecd668ecfd902 (commit)] * Add SOCK_STREAM support to L2CAP [http://git.kernel.org/linus/bd3c9e255e76ae232d417e3914ca5d80ca3e9485 (commit)] * Implement 'Send IorRRorRNR' event [http://git.kernel.org/linus/d5392c8f1e9faef089bb7cb66c3314da8bddd1fe (commit)] * 9P * Add support for 9p2000.L protocol [http://git.kernel.org/linus/9b6533c9b331ddbba9a40c972d82222ecffbc359 (commit)], [http://git.kernel.org/linus/c56e4acf55c804cbeea0ddb696ef698c73d39826 (commit)], [http://git.kernel.org/linus/4681dbdacb5cdc4d3273c3a97a1858d6e00a5fe7 (commit)], [http://git.kernel.org/linus/bda8e7752063cdbdd1d308bc1705400a8cec1aeb (commit)] * flow: structurize flow cache [http://git.kernel.org/linus/d7997fe1f4584da12e9c29fb682c18e9bdc13b73 (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 = * aesni-intel - Add AES-NI accelerated CTR mode [http://git.kernel.org/linus/12387a46bb150f5608de4aa9a90dfdddbf991e3f (commit)] * mv_cesa - Add sha1 and hmac(sha1) async hash drivers [http://git.kernel.org/linus/750052dd2400cd09e0864d75b63c2c0bf605056f (commit)] * n2 - Add Niagara2 crypto driver [http://git.kernel.org/linus/0a625fd2abaa0aa0a6852b153d429dbc784748cc (commit)] * omap - sha1 & md5 driver [http://git.kernel.org/linus/8628e7c89075834fc7b44629d09ff4f9043af114 (commit)] * talitos - add hash algorithms [http://git.kernel.org/linus/497f2e6b8b21407625a4fb34bc04b50eff098085 (commit)], add support for sha224 [http://git.kernel.org/linus/60f208d7836216885cdcd6f77a02f31dbc66f169 (commit)] = Virtualization = = Block = = Security = * TOMOYO: Add pathname grouping support. [http://git.kernel.org/linus/7762fbfffdbce8191f5236d5053b290035d3d749 (commit)] = Various = * crc32: major optimization [http://git.kernel.org/linus/836e2af92503f1642dbc3c3281ec68ec1dd39d2e (commit)] * char drivers: RAM oops/panic logger [http://git.kernel.org/linus/56d611a04fb2db77334e06274de4daed92e2c626 (commit)]