Work in progress
Linux 3.3 NOT released
Summary:
1. Prominent features in Linux 3.2
1.1. Feature 1
2. File systems
- Btrfs
Rewrite block group trimming, it had a few bugs, including not trimming some parts of the disk [http://git.kernel.org/linus/7fe1e641502616220437079258506196bc4d8cbf (commit)]
btrfs: Avoid dirty tasks getting too much throttling when doing sequential writes smaller than a page [http://git.kernel.org/linus/32c7f202a4801252a0f3578807b75a961f792870 (commit)]
Revamp clustered allocation logic [http://git.kernel.org/linus/1bb91902dc90e25449893e693ad45605cb08fbe5 (commit)]
Use larger system chunks [http://git.kernel.org/linus/96bdc7dc61fb1b1e8e858dafb13abee8482ba064 (commit)]
- Ext4
Add new online resize ioctl [http://git.kernel.org/linus/19c5246d251640ac76daa4d34165af78c64b1454 (commit)]
- GFS2
dlm based recovery coordination [http://git.kernel.org/linus/e0c2a9aa1e68455dc3439e95d85cabcaff073666 (commit)]
Move toward a generic multi-block allocator [http://git.kernel.org/linus/6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c (commit)]
- FUSE
Notifying the kernel of deletion [http://git.kernel.org/linus/451d0f599934fd97faf54a5d7954b518e66192cb (commit)]
Support ioctl on directories [http://git.kernel.org/linus/b18da0c56e9ff43a007b6c8e302c62e720964151 (commit)]
NFSD: Added fault injection [http://git.kernel.org/linus/65178db42a02c7984f711614546e97e9952d8e01 (commit)]
3. Memory Management
Memory control group naturalisation, reducing dramatically its memory overhead. Recommended [https://lwn.net/Articles/443241/ LWN article] [http://git.kernel.org/linus/9f3a0d0933de079665ec1b498947ffbf805b0018 (commit 1], [http://git.kernel.org/linus/89b5fae5368f6aec62fb09c8e19b6c61f1154603 2], [http://git.kernel.org/linus/527a5ec9a53471d855291ba9f1fdf1dd4e12a184 3], [http://git.kernel.org/linus/f16015fbf2f6ac45505d6ad21455ff9f6c14473d 4], [http://git.kernel.org/linus/5660048ccac8735d9bc0a46325a02e6a6518b5b2 5], [http://git.kernel.org/linus/ad2b8e601099a23dffffb53f91c18d874fe98854 6], [http://git.kernel.org/linus/b95a2f2d486d0d768a92879c023a03757b9c7e58 7], [http://git.kernel.org/linus/6290df545814990ca2663baf6e894669132d5f73 8], [http://git.kernel.org/linus/925b7673cce39116ce61e7a06683a4a0dad1e72a 9], [http://git.kernel.org/linus/6b208e3f6e35aa76d254c395bdcd984b17c6b626 10)]
Compaction combined with Transparent Huge Pages can cause significant stalls with USB sticks or browser. Recommended [https://lwn.net/Articles/467328/ LWN article] [http://git.kernel.org/linus/a77ebd333cd810d7b680d544be88c875131c2bd3 (commit 1], [http://git.kernel.org/linus/b16d3d5a5219d01e9be5e586e5d50fbf1ca955ea 2], [http://git.kernel.org/linus/5013473152d1ac9d44d787fb02edda845fdf2cb3 3], [http://git.kernel.org/linus/7335084d446b83cbcb15da80497d03f0c1dc9e21 4], [http://git.kernel.org/linus/b969c4ab9f182a6e1b2a0848be349f99714947b0 5], [http://git.kernel.org/linus/c82449352854ff09e43062246af86bdeb628f0c3 6], [http://git.kernel.org/linus/66199712e9eef5aede09dbcd9dfff87798a66917 7], [http://git.kernel.org/linus/a6bc32b899223a877f595ef9ddc1e89ead5072b8 8], [http://git.kernel.org/linus/fe4b1b244bdb96136855f2c694071cb09d140766 9], [http://git.kernel.org/linus/0cee34fd72c582b4f8ad8ce00645b75fb4168199 10)]
There is a limit to the maximum number of dirty pages that exist in the system at any time. However, the per-zone page allocator can fill one zone while other zones are spared. Implement per-zone dirty limits to distribute pages fairly across zones [http://git.kernel.org/linus/a756cf5908530e8b40bdf569eb48b40139e8d7fd (commit)]
Introduce slab_max_order kernel parameter. It determines the maximum allowed order for slabs. A high setting may cause OOMs due to memory fragmentation [http://git.kernel.org/linus/3df1cccdfb3fab6aa9176beb655d802eb384eabc (commit)]
More intensive memory corruption debugging [http://git.kernel.org/linus/c0a32fc5a2e470d0b02597b23ad79a317735253e (commit)]
- Writeback
A large number of short-lived dirtiers (eg. gcc instances in a fast kernel build) may starve long-run dirtiers (eg. dd) as well as pushing the dirty pages to the global hard limit. The solution is to charge the pages dirtied by the exited gcc to the other random dirtying tasks. It sounds not perfect, however should behave good enough in practice [http://git.kernel.org/linus/54848d73f9f254631303d6eab9b976855988b266 (commit)]
Control the pause time and the call intervals to balance_dirty_pages() (see commit for more details) [http://git.kernel.org/linus/7ccb9ad5364d6ac0c803096c67e76a7545cf7a77 (commit)]
Avoid dirty tasks getting too much throttling when doing sequential writes smaller than a page [http://git.kernel.org/linus/d3bc1fef9389e409a772ea174a5e41a6f93d9b7b (commit)], [http://git.kernel.org/linus/32c7f202a4801252a0f3578807b75a961f792870 (commit)]
Compensate the task's think time when computing the final pause time [http://git.kernel.org/linus/83712358ba0a1497ce59a4f84ce4dd0f803fe6fc (commit)]
Help to reduce dirty throttling polls and hence CPU overheads. [http://git.kernel.org/linus/82791940545be38810dfd5e03ee701e749f04aab (commit)]
The LKP tests see big 56% regression for the case fio_mmap_randwrite_64k. Avoid tiny dirty poll to restore most performance [http://git.kernel.org/linus/5b9b357435a51ff14835c06d8b00765a4c68f313 (commit)]
4. Networking
Support the socket monitoring interface used by the ss tool in UNIX sockets [http://git.kernel.org/linus/22931d3b906cd0a1726a49a09713f9220a5fab8a (1] ,[http://git.kernel.org/linus/45a96b9be6ec1b7d248642d17ceee59ff5f64451 2], [http://git.kernel.org/linus/5d3cae8bc39dd38d1aa5fd4bbc788c7b43fcaa71 3], [http://git.kernel.org/linus/f5248b48a64c221dd6157ab9cbee5a36ee45e6ed 4], [http://git.kernel.org/linus/5f7b0569460b7d8d01ca776430a00505a68b7584 5], [http://git.kernel.org/linus/ac02be8d96af9f66a4de86781ee9facc2dff99d4 6], [http://git.kernel.org/linus/2aac7a2cb0d9d8c65fc7dde3e19e46b3e878d23d 7], [http://git.kernel.org/linus/cbf391958afb9b82c72324a15891eb3102200085 8], [http://git.kernel.org/linus/5d531aaa64a06622874f06e5068b8eefca048feb 9)]
Support for the SCSI RDMA Protocol (SRP) Target driver. The SRP protocol is a protocol that allows an initiator to access a block storage device on another host (target) over a network that supports the RDMA protocol. Currently the RDMA protocol is supported by InfiniBand and by iWarp network hardware. More information about the SRP protocol can be found on [http://www.t10.org/ the website of the INCITS T10 technical committee] [http://git.kernel.org/linus/a42d985bd5b234da8b61347a78dc3057bf7bb94d (commit)]
Implementation for the NFC Logical Link Controller protocol. It's also known as NFC peer to peer mode [http://git.kernel.org/linus/d646960f7986fefb460a2b062d5ccc8ccfeacc3a (commit)]
6LoWPAN: add fragmentation support [http://git.kernel.org/linus/719269afbc69ab96339aad6c2d3b32f7d8311146 (commit)], UDP header compression [http://git.kernel.org/linus/3bd5b958c2a2dd1a9b4c8d21e75fb47b062fc941 (commit)], UDP header decompression [http://git.kernel.org/linus/f8b1b5d231c6db03f87e9db195530156fde47c4b (commit)]
neigh: new unresolved queue limits: deprecate neigh/default/unres_qlen, replace it with unres_qlen_bytes [http://git.kernel.org/linus/8b5c171bb3dc0686b2647a84e990199c5faa9ef8 (commit)]
CAIF USB support [http://git.kernel.org/linus/7ad65bf68d705b445ef10b77ab50dab22be185ee (commit)]
- Netfilter
Add extended accounting infrastructure over nfnetlink, which aims to allow displaying real-time traffic accounting without the need of complicated and resource-consuming implementation in user-space [http://git.kernel.org/linus/9413902796f56f6209e19dd54e840ed46950612c (commit)]
Add nfacct match to support extended accounting [http://git.kernel.org/linus/ceb98d03eac5704820f2ac1f370c9ff385e3a9f5 (commit)]
Add "rpfilter" reverse path filter match support, allows to match packets whose replies would go out via the interface the packet came in [http://git.kernel.org/linus/8f97339d3feb662037b86a925e692017c0b32323 (commit)], [http://git.kernel.org/linus/e26f9a480fb6c1b614660e824d69a74e2ce990f3 (commit)]
- Packet scheduler
Adaptative RED AQM for linux, based on [http://icir.org/floyd/papers/adaptiveRed.pdf paper from Sally FLoyd, Ramakrishna Gummadi, and Scott Shenker] [http://git.kernel.org/linus/8af2a218de38f51ea4b4fa48cac1273319ae260c (commit)]
Add an optional RED on top of SFQ [http://git.kernel.org/linus/18cb809850fb499ad9bf288696a95f4071f73931 (commit)], [http://git.kernel.org/linus/ddecf0f4db44ef94847a62d6ecf74456b4dcc66f (commit)]
vlan: add 802.1q netpoll support[http://git.kernel.org/linus/6d4cdf47d2cc9d40227c67c79a4942e36ed1b0ba (commit)]
bridge: add NTF_USE support[http://git.kernel.org/linus/292d1398983f3514a0eab13b7606df7f4730b498 (commit)]
Add wireless TX status socket option [http://git.kernel.org/linus/6e3e939f3b1bf8534b32ad09ff199d88800835a0 (commit)]
5. Device Mapper
6. Power management
7. Virtualization
KVM: Expose a version 2 architectural PMU (Performance Monitoring Unit) to a guest [http://git.kernel.org/linus/f5132b01386b5a67f1ff673bb2b96a507a3f7e41 (commit)]
- Xen
Add privcmd device driver [http://git.kernel.org/linus/d8414d3c157dc1f83e73c17447ba41fe5afa9d3d (commit)]
Add xenbus_backend device [http://git.kernel.org/linus/2fb3683e7b164ee2b324039f7c9d90fe5b1a259b (commit)]
Add xenbus device driver [http://git.kernel.org/linus/e9f0fec3f5d406c500861da779d16a779a110055 (commit)]
8. Crypto
caam - add support for MD5 algorithm variants[http://git.kernel.org/linus/8b4d43a4e774c02dee359c7931e47b119143f367 (commit)]
Digital signature verification support[http://git.kernel.org/linus/15647eb3985ef30dfd657038924dc85c03026733 (commit)]
Multiprecision maths library from GnuPG: used to implement RSA digital signature verification, which is used by IMA/EVM digital signature extension [http://git.kernel.org/linus/cdec9cb5167ab1113ba9c58e395f664d9d3f9acb (commit 1], [http://git.kernel.org/linus/5ce3e312ec5c11abce13215be70700778bf601f0 2], [http://git.kernel.org/linus/d9c46b184fcfd33c85a7dc48a653435a08e21f56 3], [http://git.kernel.org/linus/7e8dec918ef8e0f68b4937c3c50fa57002077a4d 4)]
serpent - add 4-way parallel i586/SSE2 assembler[http://git.kernel.org/linus/251496dbfc1be38bc43b49651f3d33c02faccc47 (commit)], add 8-way parallel x86_64/SSE2 assembler[http://git.kernel.org/linus/937c30d7f560210b0163035edd42b2aef78fed9e (commit)]
serpent-sse2 - add lrw support[http://git.kernel.org/linus/18482053f92b099663bd36a10e8f6bd2c8544669 (commit)], add xts support[http://git.kernel.org/linus/5962f8b66dd040ad89d55b58967ea2dec607f4d3 (commit)]
talitos - add hmac algorithms[http://git.kernel.org/linus/79b3a418e090248d00ceba40b81da9dfac753367 (commit)]
twofish-x86_64-3way - add xts support[http://git.kernel.org/linus/81559f9ad3d88c033e4ec3b6468012dbfda3b31d (commit)]
9. Security
- audit
Allow audit matching on inode gid [http://git.kernel.org/linus/54d3218b31aee5bc9c859ae60fbde933d922448b (commit)]
Allow interfield comparison between gid and ogid [http://git.kernel.org/linus/c9fe685f7a17a0ee8bf3fbe51e40b1c8b8e65896 (commit)]
Allow interfield comparison in audit rules [http://git.kernel.org/linus/02d86a568c6d2d335256864451ac8ce781bc5652 (commit)]
Allow matching on obj_uid [http://git.kernel.org/linus/efaffd6e4417860c67576ac760dd6e8bbd15f006 (commit)]
evm: digital signature verification support[http://git.kernel.org/linus/15647eb3985ef30dfd657038924dc85c03026733 (commit)]
10. Tracing/profiling
- perf
report: Accept fifos as input file, making possible to use commands like "perf record -a -e cpu-cycles sleep 2 | perf report | cat" [http://git.kernel.org/linus/efad14150a0b4429f37da7245001a8096ef7ee38 (commit)]
script: Implement option for system-wide profiling [http://git.kernel.org/linus/317df650c588bb9091b1fa0b5d726fe485aad88e (commit)]
11. Various core changes
Use jump labels to reduce overhead when the CFS bandwidth control group is disabled [http://git.kernel.org/linus/56f570e512eeb5b412cb3a62234adc446a8eb32b (commit)]
modules: sysfs - export: taint, coresize, initsize [http://git.kernel.org/linus/cca3e707301862ca9b9327e6a732463982f8cd1b (commit)]
Add BLKROTATIONAL ioctl, hich permits applications to query whether a block device is rotational [http://git.kernel.org/linus/ef00f59c95fe6e002e7c6e3663cdea65e253f4cc (commit)]
selftests: new very basic kernel selftests directory [http://git.kernel.org/linus/274343ad3e63c4dcee6744a75b5553940de4a0f6 (commit)]
- proc filesystem
Add hidepid= and gid= mount options. hidepid=0 means classic mode - everybody may access all /proc/<pid>/ directories (default). hidepid=1 means users may not access any /proc/<pid>/ directories but their own. hidepid=2 means hidepid=1 plus all /proc/<pid>/ will be fully invisible to other users. gid= defines a group authorized to learn processes information otherwise prohibited by hidepid= [http://git.kernel.org/linus/0499680a42141d86417a8fbaa8c8db806bea1201 (commit)]
Introduce the /proc/<pid>/map_files/ directory. This one behaves similarly to the /proc/<pid>/fd/ one - it contains symlinks one for each mapping with file, the name of a symlink is "vma->vm_start-vma->vm_end", the target is the file. Opening a symlink results in a file that point exactly to the same inode as them vma's one [http://git.kernel.org/linus/640708a2cff7f81e246243b0073c66e6ece7e53e (commit)]
Parse mount options [http://git.kernel.org/linus/97412950b10e64f347aec4a9b759395c2465adf6 (commit)]
Add a per-pci-device subdirectory in sysfs called: /sys/bus/pci/devices/<device>/msi_irqs. This sub-directory exports the set of msi vectors allocated by a given pci device, by creating a numbered sub-directory for each vector beneath msi_irqs. Currently the only attribute is called mode, which tracks the operational mode of that vector (msi vs. msix) [http://git.kernel.org/linus/da8d1c8ba4dcb16d60be54b233deca9a7cac98dc (commit)]
Add an "archheaders" build target [http://git.kernel.org/linus/052ad274964e613a12bf8ce7c5631f70d0bc82cc (commit)]
Implement 'sysdev' classes and devices, for "system" devices and buses. It will allow to use udev with them [http://git.kernel.org/linus/ca22e56debc57b47c422b749c93217ba62644be2 (commit)]
- Add a few /proc entries and prctl() codes to future checkpoint/restart support
[http://git.kernel.org/linus/067bce1a06c1f84146f873a598cd7c3a28eee1d5 (commit 1], [http://git.kernel.org/linus/b3f7f573a20081910e34e99cbc91831f4f02f1ff 2], [http://git.kernel.org/linus/028ee4be34a09a6d48bdf30ab991ae933a7bc036 3)]