KernelNewbies:

Linux 3.11 /!\ /!\ /!\ HAS NOT BEEN RELEASED /!\ /!\ /!\

Summary: This release adds support for , new drivers and many small improvements.

TableOfContents()

1. Prominent features

1.1. New O_TMPFILE open(2) flag to reduce temporary file vulnerabilities

O_TMPFILE is a new [http://linux.die.net/man/2/open open(2)]/[http://linux.die.net/man/2/openat openat(2)] flag that makes easier the creation of secure temporary files. Files opened with the O_TMPFILE flag are created but they are not visible in the filesystem. And as soon as they are closed, they get deleted - just as a file you would have opened and unlinked.

There are two uses for these files. One is race-free temporary files (deleted when closed, never reachable from any directory, not subject to symlink attacks, not requiring to come up with unique names - basically, [http://linux.die.net/man/3/tmpfile tmpfile(3)] done right). Another use is for creating an initially unreachable file, write whatever you want into it, fchmod()/fchown()/fsetxattr() it as you wish, then atomically link it in, already fully set up.

Code: [http://git.kernel.org/linus/60545d0d4610b02e55f65d141c95b18ccf855b6e (commit)], [http://git.kernel.org/linus/e6bbef95429374fd3cac81c36b5894f55b2612dc (commit)], [http://git.kernel.org/linus/af51a2ac36d1f96bee30438ec95a51e4635d1e33 (commit)]

1.2. AMD Radeon experimental dynamic power management support

Drivers for AMD graphic cards have got support for dynamic power management code for all their GPUs from r600 to present day. This code is experimental, and off by default for now. To enable this experimental code it's neccesary to pass the radeon.dpm=1 module parameter.

Code: [http://git.kernel.org/linus/a9e61410921bcc1aa8f594ffa6301d5baba90f3b (commit)], [http://git.kernel.org/linus/6596afd48af4d07c8b454849b2fe7e628974f3ef (commit)], [http://git.kernel.org/linus/69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 (commit)], [http://git.kernel.org/linus/dc50ba7f9a6d9a920409892c7f30bce266067345 (commit)], [http://git.kernel.org/linus/9d67006e6ebc6c5bc553d04b8c2dabea168e5e5b (commit)], [http://git.kernel.org/linus/4a6369e9935e392402d4ccb67f5cddac953e8d3c (commit)], [http://git.kernel.org/linus/66229b200598a3b66b839d1759ff3f5b17ac5639 (commit)], [http://git.kernel.org/linus/d70229f704474b2932e03367a528773e336f6205 (commit)], [http://git.kernel.org/linus/70d01a5ee29fcb23a6b5948227b1aee212922ade (commit)]

1.3. Experimental Lustre filesystem client support

Lustre is a parallel distributed file system. It can support multiple compute clusters with tens of thousands of client nodes, tens of petabytes (PB) of storage on hundreds of servers, and more than a terabyte per second (TB/s) of aggregate I/O throughput. It is the most popular cluster file system in high performance computing: six of the top 10 and more than 60 of the top 100 supercomputers in the world [https://en.wikipedia.org/wiki/Lustre_(file_system) have Lustre file systems in them].

This release adds client support, but it's experimental, the code is not very clean and needs to live in drivers/staging for some time. See drivers/staging/lustre/TODO for details.

For more details about Lustre, visit http://lustre.org

Code: [http://git.kernel.org/linus/d7e09d0397e84eefbabfd9cb353221f3c6448d83 (commit)]

1.4. Support for NFS 4.2 and SELinux Labeled NFS

Client support for NFS 4.2 Linux 3.11 has gained preliminary client support for NFS 4.2, a new version of the NFS standard that is [http://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-20 being currently developed]. For details in what features will bring this new version, [http://sniaesfblog.org/?p=245 see this post].

Code: [http://git.kernel.org/linus/4488cc96c581f130f3e86283d514123dce0dd46b (commit)], [http://git.kernel.org/linus/42c2c4249cd0192e29eec71e3e94d7bbc383c8de (commit)], [http://git.kernel.org/linus/4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 (commit)]

Labeled NFS (SELinux for NFS)

Also, this kernel version has gained support for Labeled NFS, which adds full SELinux support to NFS. Until now, NFS mounts were treated with a single label, usually something like nfs_t; or at best allow an administrator to override the default with a label using the mount --context option. With Labeled NFS, there are lots of different Labels supported on an NFS share. This can be useful to secure virtualization applications by setting the label on an image file on a NFS share. It is also useful to export home directories on a NFS share, then confine applications to only be allowed in certain places, instead of allowing to write any file on the NFS Share.

Recommended LWN article: [https://lwn.net/Articles/548936/ LSFMM 2013: NFS status]

Code: [http://git.kernel.org/linus/f58eda9bc2f0793da4c5c1098d55df2b31e0d682 (commit)], [http://git.kernel.org/linus/aa9c2669626ca7e5e5bab28e6caeb583fd40099b (commit)], [http://git.kernel.org/linus/e058f70b8070608fedfd3e39c2ead935beecb552 (commit)], [http://git.kernel.org/linus/eb9ae686507bc5a5ca78e6b3fbe629cd5cc67864 (commit)], [http://git.kernel.org/linus/18032ca062e621e15683cb61c066ef3dc5414a7b (commit)]

1.5. Detailed tracking of which pages a program writes

This release adds a mechanism that helps to track which pages a task writes to. This feature is used by the [http://criu.org checkpoint-restore project], but it could be used to gain improved statistics and profiling.

For more details, see [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/vm/soft-dirty.txt Documentation/vm/soft-dirty.txt]

Code: [http://git.kernel.org/linus/0f8975ec4db2c8b5bd111b211292ca9be0feb6b8 (commit)]

1.6. ARM huge page support, KVM and Xen support for ARM64

The ARM architecture has gained support for [https://wiki.debian.org/Hugepages huge pages] for both 32 bits and 64 bit CPUs. This implementation allows mapping of 2MB sections; the 64K pages configuration is not supported. It also adds support for [http://kernelnewbies.org/Linux_2_6_38#head-f28790278bf537b4c4869456ad7b84425298708b transparent huge pages]; when enabled the kernel will try to map anonymous pages as 2MB sections where possible.

Code: [http://git.kernel.org/linus/0b19f93351dd68cb68a1a5b2d74e13d2ddfcfc64 (commit)], [http://git.kernel.org/linus/1355e2a6eb88f04d76125c057dc5fca64d4b6a9e (commit)], [http://git.kernel.org/linus/8d962507007357d6fbbcbdd1647faa389a9aed6d (commit)], [http://git.kernel.org/linus/084bd29810a5689e423d2f085255a3200a03a06e (commit)],[http://git.kernel.org/linus/af07484863e0c20796081e57093886c22dc16705 (commit)]

This release also adds KVM and Xen virtualization support for the ARM64 architecture

Code: [http://git.kernel.org/linus/6211753fdfd05af9e08f54c8d0ba3ee516034878 (commit)], [http://git.kernel.org/linus/aa42aa1389a54d1afb1c7606c5a37c3429cdf517 (commit)]

1.7. SYSV IPC message queue scalability improvements

This improvement continues the work that began in the SYSV IPC semaphore scaling that [http://kernelnewbies.org/Linux_3.10#head-5c725e42ba8f05ed7767cfaf1c8e8c6546c4caec was merged in Linux 3.10.

Just like semaphores used to be, message queues also abuse the lock used by the SYSV IPC code, unnecessarily holding it for operations such as permission and security checks, which hurts performance and scalability. In this release, work is done to deal with the message queues (future releases will deal with shared memory). A mix of lockless code paths, shortened critical regions, per-semaphore statistics and cacheline asignments are implemented in the code to make it faster and more scalable.

Code: [http://git.kernel.org/linus/a5001a0d9768568de5d613c3b3a5b9c7721299da (commit 1], [http://git.kernel.org/linus/2cafed30f150f7314f98717b372df8173516cae0 2], [http://git.kernel.org/linus/ac0ba20ea6f2201a1589d6dc26ad1a4f0f967bb8 3], [http://git.kernel.org/linus/15724ecb7e9bab35fc694c666ad563adba820cc3 4], [http://git.kernel.org/linus/41a0d523d0f626e9da0dc01de47f1b89058033cf 5], [http://git.kernel.org/linus/f269f40ad5aeee229ed70044926f44318abe41ef 6], [http://git.kernel.org/linus/f5c936c0f267ec58641451cf8b8d39b4c207ee4d 7], [http://git.kernel.org/linus/758a6ba39ef6df4cdc615e5edd7bd86eab81a5f7 8], [http://git.kernel.org/linus/d12e1e50e47e0900dbbf52237b7e171f4f15ea1e 9], [http://git.kernel.org/linus/1a82e9e1d0f1b45f47a97c9e2349020536ff8987 10], [http://git.kernel.org/linus/cf9d5d78d05bca96df7618dfc3a5ee4414dcae58 11], [http://git.kernel.org/linus/1ca7003ab41152d673d9e359632283d05294f3d6 12], [http://git.kernel.org/linus/dbfcd91f06f0e2d5564b2fd184e9c2a43675f9ab 13], [http://git.kernel.org/linus/9ad66ae65fc8d3e7e3344310fb0aa835910264fe 14)]

1.8. Low latency network polling

Modern Linux drivers don't notify the system of new packet arrival with interrupts, because with the current network bandwith requirements it would generate many thousands of interrupts per second, which can't be handled without severe performance degradation. For that reason, a periodic poll method (called [https://en.wikipedia.org/wiki/New_API NAPI in Linux]) is used instead. However, the polling interval add latency. This release allows applications to request a per-socket low latency poll interval. For more details, see the recommended LWN article.

Recommended LWN article: [http://lwn.net/Articles/551284/ Low-latency Ethernet device polling]

Code: [http://git.kernel.org/linus/060212928670593fb89243640bf05cf89560b023 (commit)], [http://git.kernel.org/linus/d30e383bb856f614ddb5bbbb5a7d3f86240e41ec (commit)], [http://git.kernel.org/linus/a5b50476f77a8fcc8055c955720d05a7c2d9c532 (commit)], [http://git.kernel.org/linus/dafcc4380deec21d160c31411f33c8813f67f517 (commit)]

1.9. Zswap: A compressed swap cache

Quoting from [https://lwn.net/Articles/537422/ this recommended LWN article]:

"Zswap is a lightweight, write-behind compressed cache for swap pages. It takes pages that are in the process of being swapped out and attempts to compress them into a dynamically allocated RAM-based memory pool. If this process is successful, the writeback to the swap device is deferred and, in many cases, avoided completely. This results in a significant I/O reduction and performance gains for systems that are swapping"

For more details and performance numbers, see this recommended LWN article: [https://lwn.net/Articles/537422/ The zswap compressed swap cache]

Code: [http://git.kernel.org/linus/4e2e2770b1529edc5849c86b29a6febe27e2f083 (commit)], [http://git.kernel.org/linus/61b0d76017a50c263c303fa263b295b04e0c68f6 (commit)],[http://git.kernel.org/linus/2b2811178e85553405b86e3fe78357b9b95889ce (commit)]

2. Drivers and architectures

All the driver and architecture-specific changes can be found in the [http://kernelnewbies.org/Linux_3.11-DriversArch Linux_3.11-DriversArch page]

3. Core

4. Memory management

5. Block layer

6. File systems

XFS

EXT4

Btrfs

F2FS

GFS2

CIFS

HPFS

FAT

NILFS2

7. Networking

8. Crypto

9. Virtualization

hv

10. Security

Smack

Apparmor

11. Tracing/perf

Tracing

perf

12. Other news sites that track the changes of this release


CategoryReleases

KernelNewbies: Linux_3.11 (last edited 2013-08-31 20:45:03 by diegocalleja)