#pragma section-numbers on #pragma keywords Linux, kernel, operating system, changes, changelog, file system, Linus Torvalds, open source, device drivers #pragma description Summary of the changes and new features merged in the Linux kernel during the 3.6 development cycle Linux 3.6 has [https://lkml.org/lkml/2012/9/30/152 been released] on 30 Sep 2012 /!\ /!\ NOTE: this document is incomplete and will be finished in the next few hours /!\ /!\ '''''Summary''''': This release includes . Many small features and new drivers and fixes are also available. [[TableOfContents()]] = Prominent features in Linux 3.6 = == Btrfs: subvolume quotas, quota groups, snapshot diff == === Subvolume size limits/quotas === A size limit can be set for each subvolume. Once the subvolume reachs that limit, it won't be possible to write more data in it. This feature can be used as a substitute of quotas, assigning to each user home a subvolume and setting a size limit to it. You can get access to it with the command btrfs quota enable/disable/rescan === Subvolume quota groups === As part of the subvolume size limits, Btrfs also supports the concept of quota groups. It is possible to create a quota group and toss multiple subvolumes into that group: the quota limits will be automatically applied to all subvolumes in the group. The command used for this feature is btrfs qgroup create/destroy assign/remove show/limit === Snapshot diffs, aka "send/receive" === Btrfs can compute the differences between two snapshots and store the differences into a file. This file can be replayed later to reconstruct the sent subvolumes/snapshots. The main, but not only, usage for send/receive is backups. == Suspend to disk and memory == In portable devices it is useful to write a hibernation image to disk, and then suspend. If the battery runs out or power is otherwise lost, the computer will power off, but it will be resumed from the hibernated image. If not, it will resume normally from memory suspend, and hibernation image will be discarded. If you would like to write hibernation image to swap and then suspend to RAM, you can try "echo suspend > /sys/power/disk; echo disk > /sys/power/state" == TCP Fast Open (client side) == "Fast Open" is a optimization to the process of stablishing a TCP connection that allows the elimination of one round time trip (RTT) from certain kinds of TCP conversations. Fast Open could result in speed improvements of between 4% and 41% in the page load times on popular web sites. In this version only the client-side has been merged. Recommended LWN article: [https://lwn.net/Articles/508865/ TCP Fast Open: expediting web services] == Bufferbloat fight: TCP small queues == TCP small queues is another mechanism designed to fight bufferbloat. TCP Small Queues goal is to reduce number of TCP packets in xmit queues (qdisc & device queues), to reduce RTT and cwnd bias, part of the bufferbloat problem. Without reduction of nominal bandwidth, we have reduction of buffering per bulk sender : < 1ms on Gbit (instead of 50ms with TSO) and < 8ms on 100Mbit (instead of 132 ms). Recommended LWN article: [https://lwn.net/Articles/507065/ TCP small queues] == Swap over NFS == Until now, using swap over NFS was not safe. This release allows safe support of swapping over NFS. Recommended LWN article: [https://lwn.net/Articles/439298/ Safely swapping over the net] = Driver and architecture-specific changes = All the driver and architecture-specific changes can be found in the [http://kernelnewbies.org/Linux_3.6_DriverArch Linux_3.6_DriverArch page] = Various core changes = * Enable suspend to both for in-kernel hibernation. [http://git.kernel.org/linus/;a=commit;h=62c552ccc3eda1198632a4f344aa32623d226bab (commit)] * Add symlink and hardlink restrictions to the Linux VFS, which helps to solve a long-standing class of security issues consisting in the symlink-based time-of-check-time-of-use race. Some distributions have been using this functionality for a while [http://git.kernel.org/linus/;a=commit;h=a51d9eaa41866ab6b4b6ecad7b621f8b66ece0dc (commit 1], [http://git.kernel.org/linus/;a=commit;h=800179c9b8a1e796e441674776d11cd4c05d61d7 2)] * PCI: Add PCIe runtime D3cold power state support. D3cold is the deepest power saving state for a PCIe device, where its main power is removed [http://git.kernel.org/linus/;a=commit;h=448bd857d48e69b33ef323739dc6d8ca20d4cda7 (commit 1], [http://git.kernel.org/linus/;a=commit;h=71a83bd727cc31c5fe960c3758cb396267ff710e 2], [http://git.kernel.org/linus/;a=commit;h=4f9c1397e2e80e52b17ec4e39760caa807bd15c7 3)] * process scheduler: Remove broken power estimation [http://git.kernel.org/linus/;a=commit;h=ee08d1284ea9235b29bd2d9b7493b4b4cf3da09c (commit)] * Thermal: Add Hysteresis attributes [http://git.kernel.org/linus/;a=commit;h=27365a6c7d64a3bba22ee62109e4a071bbd7f933 (commit)], make Thermal trip points writeable [http://git.kernel.org/linus/;a=commit;h=c56f5c0342dfee11a1a13d2f5bb7618de5b17590 (commit)] * cpuidle: add support for states that affect multiple CPUs [http://git.kernel.org/linus/;a=commit;h=4126c0197bc8c58a0bb7fcda07b01b596b6fb4c5 (commit)] * RCU: Control RCU_FANOUT_LEAF from boot-time parameter [http://git.kernel.org/linus/;a=commit;h=f885b7f2b2de70be266d2cecc476f773a1e2ca5d (commit)] = Memory Management = * Allow swap readahead IOPS to be merged, it improves throughput and at the same time lowers CPU consumption [http://git.kernel.org/linus/;a=commit;h=3fb5c298b04eb6e472f8db1f0fb472749d30041c (commit)] = Block = * Add a new operation code (BLKPG_RESIZE_PARTITION) to the BLKPG ioctl that allows alter