#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.39 development cycle /!\ The changelog is not ready due to lazyness^Wtime constraints. /!\ It will be completed in the next days and, of course, it will be ready again for 2.6.40. Meanwhile, you can check the kernel reports in LWN [https://lwn.net/Articles/433854/ (1], [https://lwn.net/Articles/434637/ 2], [https://lwn.net/Articles/435716/ 3)] or H Open [http://www.h-online.com/open/features/What-s-new-in-Linux-2-6-39-1242910.html (1)] [[TableOfContents()]] = Prominent features (the cool stuff) = == IPset == Official IPset webpage: [http://ipset.netfilter.org/ http://ipset.netfilter.org/] IPset allows the creation of groups of network resources (IPv4/v6 addresses, TCP/UDP port numbers, IP-MAC address pairs, IP-port number pairs, etc), called "IP sets", then you can use those sets to define Netfilter/iptables rules. These sets are much more lookup-efficient than bare iptables rules, but may come with a greater memory footprint. Different storage algorithms (for the data structures in memory) are provided in ipset for the user to select an optimum solution. IPset has been available for some time in the xtables-addons patches and is now being included in the Linux tree. This tool is useful to do things like: store multiple IP addresses or port numbers and match against the collection by iptables at one swoop; dynamically update iptables rules against IP addresses or ports without performance penalty; express complex IP address and ports based rulesets with one single iptables rule and benefit from the speed of IP sets. Code: [http://git.kernel.org/linus/a7b4f989a629493bb4ec4a354def784d440b32c4 (commit 1], [http://git.kernel.org/linus/72205fc68bd13109576aa6c4c12c740962d28a6c 2], [http://git.kernel.org/linus/de76021a1bb35e3560afccf741d1119a872aea49 3], [http://git.kernel.org/linus/6c027889696a7a694b0e2f6e3cabadefec7553b6 4], [http://git.kernel.org/linus/543261907dc3c4e90845acfcd602ebdbfdfcb4f0 5], [http://git.kernel.org/linus/07896ed37b94599a1b8ea97f4bd5766be71390f4 6], [http://git.kernel.org/linus/5663bc30e6114b6ba88cc428619ede46a3246a7b 7], [http://git.kernel.org/linus/41d22f7b2e48c77175b62cec3797d7d7173a626e 8], [http://git.kernel.org/linus/b38370299eeaba4cf8a9e0c5c6acc2a1e049be23 9], [http://git.kernel.org/linus/21f45020a3084f80fcdd5f056a0c6389f5406399 10)] == Btrfs updates == Btrfs allows different compression and copy-on-write settings for each file/directory (in addition to the per-filesystem controls). There is also the usual round of minor speedups, and tracepoints for runtime analysis. Code: [http://git.kernel.org/linus/75e7cb7fe0c391561bd3af36515be3f3c64a04c6 (commit 1], [http://git.kernel.org/linus/32471f6e1983922473573da62cbee58699574aa4 2], [http://git.kernel.org/linus/c622ae6085d0c6ad834213bbf1477eb311359078 3], [http://git.kernel.org/linus/240f62c8756df285da11469259b3900f32883168 4], [http://git.kernel.org/linus/1abe9b8a138c9988ba8f7bfded6453649a31541f 5)] == Transcendent Memory == Recommended LWN article: [https://lwn.net/Articles/340080/ Transcendent memory] Trascendent memory is a new type of memory with a particular set of characteristics. From LWN: "transcendental memory can be thought of as a sort of RAM disk with some interesting characteristics: nobody knows how big it is, writes to the disk may not succeed, and, potentially, data written to the disk may vanish before being read back again". This memory could be used in places like the page cache, swap, or virtualization. In this release it is used for to implement a compressed in-memory caching mechanism called zcache. Code: [http://git.kernel.org/linus/daa6afa6d920a389015bb8f1ea519cef0636f528 (commit 1], [http://git.kernel.org/linus/9cc06bf88d554dd527ded26eab28eec6a0d0e3df 2], [http://git.kernel.org/linus/6630889735ec3d950b4f1496ada77df287d8ee1b 3)] == BKL: That's all, folks == In 2.6.37, it was possible to compile a Linux kernel without support for the BKL. In this release, the BKL has been removed completely from the kernel sources, including the functions lock_kernel() and unlock_kernel(). Code: [http://git.kernel.org/linus/4ba8216cd90560bc402f52076f64d8546e8aefcb (commit)] == Open-by-handle syscalls == Recommended LWN article: [https://lwn.net/Articles/375888/ Open by handle] Two new syscalls have been added, name_to_handle_at() and open_by_handle_at(). These syscalls return a file handle, which is useful for user-space filesystems, backup software and other storage management tools. These handles can be used in a new flag that has been added to the open() syscall: O_PATH. Code [http://git.kernel.org/linus/990d6c2d7aee921e3bce22b2d6a750fd552262be (commit)], [http://git.kernel.org/linus/becfd1f37544798cbdfd788f32c827160fab98c1 (commit)], [http://git.kernel.org/linus/7dadb755b082c259f7dd4a95a3a6eb21646a28d5 (commit)], [http://git.kernel.org/linus/6aae5f2b2085c5c90964bb78676ea8a6a336e037 (commit)], [http://git.kernel.org/linus/1abf0c718f15a56a0a435588d1b104c7a37dc9bd (commit)], [http://git.kernel.org/linus/bcda76524cd1fa32af748536f27f674a13e56700 (commit)]