7650
Comment:
|
4674
Add release date
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
Linux 3.2 [https://lkml.org/lkml/2012/1/4/395 released] on 4 Jan 2012 | |
Line 6: | Line 7: |
'''''Summary''''': | '''''Summary''''': This release includes support for ext4 block sizes bigger than 4KB and up to 1MB, which improve performance with big files; btrfs has been updated with faster scrubbing, automatic backup of critical filesystem metadata and tools for manual inspection of the filesystems; the process scheduler has added support to set upper limits of CPU time; the desktop reponsiveness in presence of heavy writes has been improved, TCP has been updated to include an algorithm which speeds up the recovery of the connection after lost packets; the profiling tool "perf top" has added support for live inspection of tasks and libraries and see the annotated assembly code; the Device Mapper has added support for 'thin provisioning' of storage, and a new architeture has been added: the Hexagon DSP processor from Qualcomm. Other drivers and small improvements and fixes are also available in this release. |
Line 10: | Line 12: |
== == == == |
|
Line 13: | Line 13: |
= Driver and architecture-specific changes = All the driver and architecture-specific changes can be found in the [http://kernelnewbies.org/Linux_3.2_DriverArch Linux_3.2_DriverArch page] |
== ext4: Support for bigger block sizes == Recommended LWN article: [https://lwn.net/Articles/469805/ Improving ext4: bigalloc, inline data, and metadata checksums] The maximum size of a filesystem block in ext4 has always been 4 KB in x86 systems. But the storage capacity of modern hard disks is growing fast, and with the size of hard disks, the overhead of using such small size as block size increases. Small block sizes benefit users who have many small files, because the space will be used more efficiently, but people who uses large files would benefit of larger block sizes. ext4 supports now block sizes of up to 1MB of size, which decreases considerably [https://lwn.net/Articles/469821/ the time spent doing block allocations], and there is smaller fragmentation. These new block sizes must be set at creation time, using the mkfs -C option (requires e2fsprogs 1.42). This feature is not backwards compatible with older kernels. Code: [http://git.kernel.org/linus/281b59959707dfae03ce038cdf231bf4904e170c (commit 1], [http://git.kernel.org/linus/bab08ab9646288f1b0b72a7aaeecdff94bd62c18 2], [http://git.kernel.org/linus/7137d7a48e2213eb1f6d6529da14c2ed3706b795 3], [http://git.kernel.org/linus/49f7f9af4bb4d7972f3a35a74877937fec9f622d 4], [http://git.kernel.org/linus/fd034a84e1ea5c8c8d159cd2089c32e792c269b0 5], [http://git.kernel.org/linus/d5b8f31007a93777cfb0603b665858fb7aebebfc 6], [http://git.kernel.org/linus/3212a80a58062056bb922811071062be58d8fee1 7], [http://git.kernel.org/linus/53accfa9f819c80056db6f03f9c5cfa4bcba1ed8 8], [http://git.kernel.org/linus/84130193e0e6568dfdfb823f0e1e19aec80aff6e 9], [http://git.kernel.org/linus/4d33b1ef10995d7ba6191d67456202c697a92a32 10], [http://git.kernel.org/linus/0aa060000e83ca3d09ddc446a7174fb0820d99bc 11], [http://git.kernel.org/linus/5704265188ffe4290ed73b3cb685206c3ed8209d 12], [http://git.kernel.org/linus/24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5 13], [http://git.kernel.org/linus/f975d6bcc7a698a10cc755115e27d3612dcfe322 14], [http://git.kernel.org/linus/27baebb849d46d901e756e6502b0a65a62e43771 15], [http://git.kernel.org/linus/7b415bf60f6afb0499fd3dc0ee33444f54e28567 16], [http://git.kernel.org/linus/6f16b60690ba04cf476480a6f19b204e4b95b4a6 17)] |
Line 17: | Line 22: |
== Btrfs: Faster scrubbing, automatic backup of tree roots, detailed corruption messages, manual inspection of metadata == | |
Line 18: | Line 24: |
= VFS = * The i_mutex lock use of generic _file_llseek hurts. Do (nearly) lockless generic_file_llseek [http://git.kernel.org/linus/ (commit)] |
Recommended LWN article: [https://lwn.net/Articles/465160/ A btrfs update at LinuxCon Europe] |
Line 21: | Line 26: |
= Memory management = * Restrict access to slab files under procfs and sysfs [http://git.kernel.org/linus/ (commit)] * vmscan: add block plug for page reclaim to reduce lock contention [http://git.kernel.org/linus/ (commit)] * thp: mremap support and TLB optimization [http://git.kernel.org/linus/ (commit)] * slub: per cpu cache for partial pages [http://git.kernel.org/linus/ (commit)], update slabinfo tools to report per cpu partial list [http://git.kernel.org/linus/ (commit)] |
Scrub read-ahead:: Scrubbing -the process of checking all the checksums of the filesystem- uses read-ahead to improve the performance. The average disk bandwith utilisation on a test volume was raised from 70% to 90%. On another volume, the time for a test run went down from 89 seconds to 43 seconds. Code: [http://git.kernel.org/linus/ab0fff03055d2d1b01a7581badeba18db9c4f55c (commit 1], [http://git.kernel.org/linus/90519d66abbccc251d14719ac76f191f70826e40 2], [http://git.kernel.org/linus/7414a03fbf9e75fbbf2a3c16828cd862e572aa44 3], [http://git.kernel.org/linus/7a26285eea8eb92e0088db011571d887d4551b0f 4)] |
Line 27: | Line 28: |
= Networking = * Add netlink based CAN routing [http://git.kernel.org/linus/ (commit)] * Add ethtool -g support to virtio_net [http://git.kernel.org/linus/ (commit)] * Batman adhoc networking:: implement AP-isolation on the receiver side [http://git.kernel.org/linus/ (commit)], implement AP-isolation on the sender side [http://git.kernel.org/linus/ (commit)] * af-iucv: The current transport mechanism for af_iucv is the z/VM offered communications facility IUCV. To provide equivalent support when running Linux in an LPAR, HiperSockets transport is added to the AF_IUCV address family [http://git.kernel.org/linus/ (commit)] * af-packet: af-packet: Added TPACKET_V3 headers. [http://git.kernel.org/linus/ (commit)], TPACKET_V3 flexible buffer implementation. [http://git.kernel.org/linus/ (commit)] * IEEE802.15.4: 6LoWPAN basic support [http://git.kernel.org/linus/ (commit)] * ipv4: gc_interval sysctl removed [http://git.kernel.org/linus/ (commit)] * mac80211: implement uAPSD [http://git.kernel.org/linus/ (commit)], mesh gate implementation [http://git.kernel.org/linus/ (commit)] * bridge: allow forwarding some link local frames, adding a new sysfs attribute /sys/class/net/brX/bridge/group_fwd_mask that controls forwarding of frames [http://git.kernel.org/linus/ (commit)] = File systems = * Ext3: remove deprecated oldalloc [http://git.kernel.org/linus/ (commit)] * GFS2 * Speed up delete/unlink performance for large files [http://git.kernel.org/linus/ (commit)] * CIFS * uid/gid to SID mapping [http://git.kernel.org/linus/ (commit)] * Add mount options for backup intent (try #6) [http://git.kernel.org/linus/ (commit)] * Allow for larger rsize= options and change defaults [http://git.kernel.org/linus/ (commit)] * JFFS2 * Add compr=lzo and compr=zlib options [http://git.kernel.org/linus/ (commit)] * Implement mount option parsing and compression overriding [http://git.kernel.org/linus/ (commit)] * EXOFS * exofs: Support for RAID5 read-4-write interface. [http://git.kernel.org/linus/ (commit)], ore: RAID5 read [http://git.kernel.org/linus/ (commit)], ore: RAID5 Write [http://git.kernel.org/linus/ (commit)] * SQUASHFS * Add an option to set dev block size to 4K [http://git.kernel.org/linus/ (commit)] = Device Mapper = * dm table: add always writeable feature [http://git.kernel.org/linus/ (commit)], add immutable feature [http://git.kernel.org/linus/ (commit)], add singleton feature [http://git.kernel.org/linus/ (commit)] * dm log userspace: add log device dependency [http://git.kernel.org/linus/ (commit)] = Block layer = = Virtualization = * xen: Implement discard requests ('feature-discard') [http://git.kernel.org/linus/ (commit)], support 'feature-barrier' aka old-style BARRIER [http://git.kernel.org/linus/ (commit)] * lguest: Allow running under paravirt-enabled KVM. [http://git.kernel.org/linus/ (commit)] * hv: move hyperv code out of staging directory [http://git.kernel.org/linus/ (commit)] = Crypto = * Add userspace configuration API [http://git.kernel.org/linus/ (commit)] * blowfish: add x86_64 assembly implementation [http://git.kernel.org/linus/ (commit)] * sha1: SSSE3 based SHA1 implementation for x86-64 [http://git.kernel.org/linus/ (commit)] * twofish: add 3-way parallel x86_64 assembler implemention [http://git.kernel.org/linus/ (commit)] = Security = * Smack * Domain transition protections [http://git.kernel.org/linus/ (commit)] * Rule list lookup performance [http://git.kernel.org/linus/ (commit)] * Allow to access /smack/access as normal user [http://git.kernel.org/linus/ (commit)] * TOMOYO * Add environment variable name restriction support. [http://git.kernel.org/linus/ (commit)] * Add socket operation restriction support. [http://git.kernel.org/linus/ (commit)] * Allow controlling generation of access granted logs for per [http://git.kernel.org/linus/ (commit)] * Allow domain transition without execve(). [http://git.kernel.org/linus/ (commit)] = Tracing/profiling = * perf annotate: Add --symfs option [http://git.kernel.org/linus/ (commit)] * perf script: Add drop monitor script [http://git.kernel.org/linus/ (commit)] * perf stat: Add -o and --append options [http://git.kernel.org/linus/ (commit)] * perf: Support setting the disassembler style [http://git.kernel.org/linus/ (commit)] * perf tools: Make --no-asm-raw the default [http://git.kernel.org/linus/ (commit)] * perf tools: Make perf.data more self-descriptive (v8) [http://git.kernel.org/linus/ (commit)] * x86: Implement IBS initialization [http://git.kernel.org/linus/ (commit)] * powerpc: Add POWER7 stalled-cycles-frontend/backend [http://git.kernel.org/linus/ (commit)] = Various core changes = * init: add root=PARTUUID=UUID/PARTNROFF=%d support [http://git.kernel.org/linus/ (commit)] * iommu: Add fault reporting mechanism [http://git.kernel.org/linus/ (commit)] * loop: always allow userspace partitions and optionally support [http://git.kernel.org/linus/ (commit)] * aio: allocate kiocbs in batches, to improve performance [http://git.kernel.org/linus/ (commit)] * sysfs: sysfs: Implement support for tagged files in sysfs. [http://git.kernel.org/linus/ (commit)] Implement support for class attrs in tagged sysfs [http://git.kernel.org/linus/ (commit)] * process connector: add comm change event [http://git.kernel.org/linus/ (commit)] * debug-pagealloc: add support for highmem pages [http://git.kernel.org/linus/ (commit)] * sysctl: add support for poll() [http://git.kernel.org/linus/ (commit)] * Power management: * devfreq: devfreq is a generic DVFS framework that can be registered for a device with OPP support in order to let the governor provided to DEVFREQ choose an operating frequency based on the OPP's list and the policy given with DEVFREQ PM: Introduce devfreq: generic DVFS framework with device-specific [http://git.kernel.org/linus/ (commit)] devfreq: Add common sysfs interfaces [http://git.kernel.org/linus/ (commit)] Add basic governors [http://git.kernel.org/linus/ (commit)] * Improve performance of LZO/plain hibernation, [http://git.kernel.org/linus/ (commit)] * Include storage keys in hibernation image on s390 [http://git.kernel.org/linus/ (commit)] * Implement per-device PM QoS constraints [http://git.kernel.org/linus/ (commit)] ---- CategoryReleases |
Log of past tree roots:: Btrfs will store in the filesystem superblock information about most of the tree roots in the last four commits. A "-o recovery" mount option has been used to allow a user to use the root history log when the filesystem is not able to read the tree |
Linux 3.2 [https://lkml.org/lkml/2012/1/4/395 released] on 4 Jan 2012
Summary: This release includes support for ext4 block sizes bigger than 4KB and up to 1MB, which improve performance with big files; btrfs has been updated with faster scrubbing, automatic backup of critical filesystem metadata and tools for manual inspection of the filesystems; the process scheduler has added support to set upper limits of CPU time; the desktop reponsiveness in presence of heavy writes has been improved, TCP has been updated to include an algorithm which speeds up the recovery of the connection after lost packets; the profiling tool "perf top" has added support for live inspection of tasks and libraries and see the annotated assembly code; the Device Mapper has added support for 'thin provisioning' of storage, and a new architeture has been added: the Hexagon DSP processor from Qualcomm. Other drivers and small improvements and fixes are also available in this release.
1. Prominent features in Linux 3.2
1.1. ext4: Support for bigger block sizes
Recommended LWN article: [https://lwn.net/Articles/469805/ Improving ext4: bigalloc, inline data, and metadata checksums]
The maximum size of a filesystem block in ext4 has always been 4 KB in x86 systems. But the storage capacity of modern hard disks is growing fast, and with the size of hard disks, the overhead of using such small size as block size increases. Small block sizes benefit users who have many small files, because the space will be used more efficiently, but people who uses large files would benefit of larger block sizes.
ext4 supports now block sizes of up to 1MB of size, which decreases considerably [https://lwn.net/Articles/469821/ the time spent doing block allocations], and there is smaller fragmentation. These new block sizes must be set at creation time, using the mkfs -C option (requires e2fsprogs 1.42). This feature is not backwards compatible with older kernels. Code: [http://git.kernel.org/linus/281b59959707dfae03ce038cdf231bf4904e170c (commit 1], [http://git.kernel.org/linus/bab08ab9646288f1b0b72a7aaeecdff94bd62c18 2], [http://git.kernel.org/linus/7137d7a48e2213eb1f6d6529da14c2ed3706b795 3], [http://git.kernel.org/linus/49f7f9af4bb4d7972f3a35a74877937fec9f622d 4], [http://git.kernel.org/linus/fd034a84e1ea5c8c8d159cd2089c32e792c269b0 5], [http://git.kernel.org/linus/d5b8f31007a93777cfb0603b665858fb7aebebfc 6], [http://git.kernel.org/linus/3212a80a58062056bb922811071062be58d8fee1 7], [http://git.kernel.org/linus/53accfa9f819c80056db6f03f9c5cfa4bcba1ed8 8], [http://git.kernel.org/linus/84130193e0e6568dfdfb823f0e1e19aec80aff6e 9], [http://git.kernel.org/linus/4d33b1ef10995d7ba6191d67456202c697a92a32 10], [http://git.kernel.org/linus/0aa060000e83ca3d09ddc446a7174fb0820d99bc 11], [http://git.kernel.org/linus/5704265188ffe4290ed73b3cb685206c3ed8209d 12], [http://git.kernel.org/linus/24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5 13], [http://git.kernel.org/linus/f975d6bcc7a698a10cc755115e27d3612dcfe322 14], [http://git.kernel.org/linus/27baebb849d46d901e756e6502b0a65a62e43771 15], [http://git.kernel.org/linus/7b415bf60f6afb0499fd3dc0ee33444f54e28567 16], [http://git.kernel.org/linus/6f16b60690ba04cf476480a6f19b204e4b95b4a6 17)]
1.2. Btrfs: Faster scrubbing, automatic backup of tree roots, detailed corruption messages, manual inspection of metadata
Recommended LWN article: [https://lwn.net/Articles/465160/ A btrfs update at LinuxCon Europe]
- Scrub read-ahead
Scrubbing -the process of checking all the checksums of the filesystem- uses read-ahead to improve the performance. The average disk bandwith utilisation on a test volume was raised from 70% to 90%. On another volume, the time for a test run went down from 89 seconds to 43 seconds. Code: [http://git.kernel.org/linus/ab0fff03055d2d1b01a7581badeba18db9c4f55c (commit 1], [http://git.kernel.org/linus/90519d66abbccc251d14719ac76f191f70826e40 2], [http://git.kernel.org/linus/7414a03fbf9e75fbbf2a3c16828cd862e572aa44 3], [http://git.kernel.org/linus/7a26285eea8eb92e0088db011571d887d4551b0f 4)]
- Log of past tree roots
- Btrfs will store in the filesystem superblock information about most of the tree roots in the last four commits. A "-o recovery" mount option has been used to allow a user to use the root history log when the filesystem is not able to read the tree