The 3.11 merge window opens
The user-visible changes that have been pulled so far include:
- The f2fs filesystem now supports security labels, enabling it to be
used with security modules.
- The Lustre
distributed filesystem has been merged into the staging tree. It is
disabled in the build system, though, since it has build problems on a
number of architectures.
- The ARM architecture (both 32- and 64-bit) has gained better huge page
support, in the form
of both the hugetlbfs filesystem and transparent huge pages.
- The ARM64 architecture now supports virtualization with both KVM and
Xen.
- The new O_TMPFILE option to the open() and
openat() system calls allows filesystems to optimize the
creation of temporary files — files which need not be visible in the
filesystem. When O_TMPFILE is present, the provided pathname
is only used to locate the containing directory (and thus the
filesystem where the temporary file should be). So, among other
things, programs using O_TMPFILE should have fewer concerns
about vulnerabilities resulting from symbolic link attacks.
- New hardware support includes:
- Systems and processors:
Freescale i.MX6 SoloLite processors,
Freescale Vybrid VF610 processors,
Samsung EXYNOS5420 processors,
Rockchip RK2928 and RK3xxx processors,
TI Nspire processors, and
STMicroelectronics STiH41x and STiH416 processors.
- Miscellaneous:
Marvell EBU device bus controllers,
Marvell EBU PCIe controllers,
ARM cache-coherent interconnect controllers,
Microchip Technology MCP3204/08 analog-to-digital converters,
Analog Devices AD7303 digital-to-analog converters,
STMicroelectronics LPS331AP pressure sensors, and
Samsung S3C24XX SoC pin controllers.
- Networking:
MTK USB Bluetooth interfaces.
- USB: Faraday FUSBH200 host controllers and Cavium Networks Octeon host controllers.
- Systems and processors:
Freescale i.MX6 SoloLite processors,
Freescale Vybrid VF610 processors,
Samsung EXYNOS5420 processors,
Rockchip RK2928 and RK3xxx processors,
TI Nspire processors, and
STMicroelectronics STiH41x and STiH416 processors.
Changes visible to kernel developers include:
- There is a new struct file_operations method:
int (*iterate) (struct file *, struct dir_context *);
Its job is to iterate through the contents of a directory. This method is meant to serve as a replacement for the readdir() method that eliminates persistent race conditions associated with updating the current read position. All internal users have been converted, and the readdir() method has been removed.
- There are a couple of new functions for working with atomic types:
int wait_on_atomic_t(atomic_t *val, int (*action)(atomic_t *), unsigned mode); void wake_up_atomic_t(atomic_t *p);
A call to wait_on_atomic_t() will block the calling thread until the given val goes to zero. Simply decrementing an atomic_t variable will not be sufficient to wake anybody waiting, though; an explicit call to wake_up_atomic_t() is required to do that.
- The CONFIG_HOTPLUG configuration option has been removed; all
kernels are hotplug enabled these days.
- The wait/wound mutex locking primitive
has been merged.
- As part of the read-copy-update
simplification effort, the "tiny-preempt" version of RCU has been
removed from the kernel. From the
commit message: "
People currently using TINY_PREEMPT_RCU can get much better memory footprint with TINY_RCU, or, if they really need preemptible RCU, they can use TREE_PREEMPT_RCU with a relatively minor degradation in memory footprint.
" - The kernel now has the concept of power-efficient workqueues; these
are simply marked as "unbound," so that jobs queued to them can run on
any CPU in the system. Per-CPU workqueues may perform better in some
situations, but they can also cause sleeping CPUs to wake up; that
wakeup can be avoided if work items can be run on CPUs that are not
sleeping. If the CONFIG_WQ_POWER_EFFICIENT_DEFAULT
configuration option is set, a number of workqueues observed to impact
power performance will be switched to the unbound mode.
Kernel code can explicitly request power-efficient behavior by creating workqueues with the WQ_POWER_EFFICIENT flag or by using a couple of new systemwide workqueues: system_power_efficient_wq or system_freezable_power_efficient_wq.
- The d_hash() and d_compare() methods in struct
dentry_operations have lost their inode argument.
- A new per-CPU reference count mechanism has been added; see this article for details.
A normal two-week merge window could be expected to close on July 16,
but Linus has occasionally shortened the merge window in recent development
cycles. If the development cycle as a whole lasts for the usual
70 days, then the 3.11 kernel can be expected around
September 10.
Index entries for this article | |
---|---|
Kernel | Releases/3.11 |
Posted Jul 4, 2013 10:49 UTC (Thu)
by alonz (subscriber, #815)
[Link] (1 responses)
Posted Jul 4, 2013 14:01 UTC (Thu)
by iq-0 (subscriber, #36655)
[Link]
But I do agree that they can help in easier writing of safer code, when used.
Posted Jul 12, 2013 17:53 UTC (Fri)
by wtanksleyjr (subscriber, #74601)
[Link]
O_TMPFILE is a really welcome enhancement to temporary file semantics… and when properly combined with linkat() support added in f4e0c30, this can really spell an end to many temp-file vulnerabilities.
The 3.11 merge window opens
The 3.11 merge window opens
The 3.11 merge window opens