KernelNewbies:

Linux 3.9 was [https://lwn.net/Articles/548799/ released] on April 28, 2013.

This Linux release includes support for experimental RAID5/6 modes and better defragmentation in files shared by snapshots in Btrfs; support for the "goldfish" emulator used by the Android SDK, ability to SSD storage as cache device; two new architecture ports: Synopsys ARC 700 and Meta Imagination processors; KVM virtualization support in the ARM architecture, a Intel driver that "injects" idle states to improve performance-per-watt, support for Chrome OS laptops, a new suspend power state, and the removal of the obsolete CONFIG_EXPERIMENTAL configuration option. Many small features and new drivers and fixes are also available.

TableOfContents()

1. Prominent features in Linux 3.9

1.1. Experimental RAID 5/6 support and snapshot-aware defragmentation in Btrfs

1.2. Android "goldfish" emulator

The Android development environment provides a QEMU-based ARM virtualized platform called "goldfish". This platform provides a virtual CPU and drivers for battery, MMC, audio, graphics, etc. This release includes support for the Goldfish platform, which makes possible to develop for Android with out-of-the-box kernels.

Code: [http://git.kernel.org/linus/ddd70cf93d784af3698c86315aa0ded87ca0a0c5 (commit 1], [http://git.kernel.org/linus/84d7b768748943db2bb658b43931fdab04c224cc 2], [http://git.kernel.org/linus/c89f2750e9845aa115ca30c062edd569da619cad 3], [http://git.kernel.org/linus/e809c22b8fb0282048fc008cfcdd017186090dbc 4], [http://git.kernel.org/linus/2e82b83dc30e515ca3e03e79d4a398f30d796903 5], [http://git.kernel.org/linus/c289ba2d26cf872570ba23fceee8d80ae64be351 6], [http://git.kernel.org/linus/666b7793d4bfa9f150b5c2007ab48c755ddc53ca 7], [http://git.kernel.org/linus/85c34d2e7b0e0425cd3efc243ffc4e3631daa0b5 8)]

1.3. SSD cache devices

The device mapper has added a target (dm-cache) that allows a fast device such as an SSD to be used as a cache for a slower device such as a rotating disk. Different 'policy' plugins can be used to change the algorithms used to select which blocks are promoted, demoted, cleaned etc. It supports writeback and writethrough modes.

Documentation: [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/device-mapper/cache.txt?id=c6b4fcbad044e6fffcc75bba160e720eb8d67d17 Documentation/device-mapper/cache.txt]

Code: [http://git.kernel.org/linus/c6b4fcbad044e6fffcc75bba160e720eb8d67d17 (commit 1], [http://git.kernel.org/linus/8735a8134786fa4ef36dee65d7fa779b99ba5fe3 2], [http://git.kernel.org/linus/f283635281132af7bc7b90af3c105b8c0f73b9c7 3)]

1.4. New architecture: Synopsys ARC 700 processors

This release introduces the Linux kernel port to the ARC700 processor family (750D and 770D) from Synopsys.

ARC700 is highly configurable and power-efficient 32-bit RISC core with MMU. It is embedded in SoCs deployed in TV set top boxes, digital media players, all the way to network-on-chips. More information is available [http://www.synopsys.com/IP/ProcessorIP/ARCProcessors/Pages/default.aspx here]. More info about the kernel port can also be found in the [https://raw.github.com/vineetgarc/publish/master/ELCE-2012-ARC-Linux.pdf ELCE-Barclone '12 talk] on the same topic.

The GNU toolchain, based off of GCC 4.4 + uClibc 0.9.30.3 is also available [http://github.com/foss-for-synopsys-dwc-arc-processors/linux.git at GitHub]

Code: [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arc arch/arc/]

1.5. New architecture: Meta Imagination processors

This release introduces the Linux kernel port to the Meta ATP (Meta 1) and HTP (Meta 2) processor cores from Imagination Technologies.

Meta cores are 32-bit, hardware multithreaded, general purpose, embedded processors which also feature a DSP instruction set, and can be found in many digital radios. They are capable of running different operating systems on different hardware threads, for example a digital radio might run RTOSes for DAB decoding and audio decoding on three hardware threads, and run Linux on the fourth hardware thread to manage the user interface, networking etc. HTPs are also capable of running SMP Linux on multiple hardware threads.

Instruction set and architecture overview documents can be [http://www.imgtec.com/downloads.asp found here].

Code: [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/metag arch/metag/]

1.6. KVM support in ARM architectures

The ARM architecture port now supports the KVM virtualization system. This brings virtualization capabilities to the Linux ARM ecosystem.

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

1.7. Intel PowerClamp idle injection for improved power efficiency

Related LWN article: [https://lwn.net/Articles/528124/ The PowerClamp driver]

The Intel Powerclamp driver performs synchronized idle injection across all online CPUs. The goal is to maintain a given package level C-state ratio. Compared to other throttling methods already exist in the kernel, such as ACPI PAD (taking CPUs offline) and clock modulation, this is often more efficient in terms of performance per watt.

Documentation: [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/thermal/intel_powerclamp.txt?id=d6d71ee4a14ae602db343ec48c491851d7ec5267 Documentation/thermal/intel_powerclamp.txt]

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

1.8. New "suspend-freeze" suspend state:

This release includes a new suspend mode, suspend-freeze. It equals to frozen processes + suspended devices + idle processors. This state is useful for 1) platforms that do not have STR, or have a broken STR 2) platforms that have an extremely low power idle state which can be used to replace STR

Compared with memory suspend, suspend-freeze saves less power because the system is still in a running state, but has less resume latency because it does not touch BIOS and the processors are in idle state. Compared with RTPM/idle, suspend-freeze saves more power because the processor has longer sleep time once the processes are frozen, and it can get more power saving from the devices that does not have good RTPM support.

To enable this suspend mode, echo freeze > /sys/power/state

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

1.9. Chrome OS laptop support

Complete support for all the devices present in the Chrome laptops sold by many companies has been added in this release. Code [http://git.kernel.org/linus/d1381f45ad54e0bb40ef19f99e87187ff3458bdb (commit)], [http://git.kernel.org/linus/261f171f571a82c1f990d484c374aa3f7236fe5e (commit)], [http://git.kernel.org/linus/e65a624b86241405b51cadc8e36944966b8c36b7 (commit)], [http://git.kernel.org/linus/33a84f8a7694e442a624556ef3ae40e91e31bd11 (commit)], [http://git.kernel.org/linus/8016bcbc380f952bfccb82fde3bb8b4b9cbd6400 (commit)]

1.10. Removal of CONFIG_EXPERIMENTAL

CONFIG_EXPERIMENTAL was a configuration option which was supposed to be used to enable experimental features that normal people shouldn't use. But the changes in the development model and the staging directory have made it obsolete, these days almost all distros enable it by default, so it has been removed. Developers will now add a "(EXPERIMENTAL)" tag in the title of their configuration option to warn users.

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

/!\ /!\ /!\ The rest of the document is not 100% complete /!\ /!\ /!\ , meanwhile you can read these articles reporting about the kernel changes

2. Driver and architecture-specific changes

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

2.1. Various core changes

2.2. Filesystems

2.3. Block layer

2.4. Networking

2.5. Virtualization

VMCI: Some header and config files. Code: [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/misc/vmw_vmci drivers/misc/vmw_vmci/]

KernelNewbies: Linux_3.9 (last edited 2013-05-02 15:15:13 by diegocalleja)