|
|
Subscribe / Log in / New account

4.5 merge window part 2

By Jonathan Corbet
January 20, 2016
As of this writing, Linus has pulled 8,415 non-merge changesets into the mainline repository for the 4.5 development cycle; 5,300 of those have come in since last week's summary. Recent merge-window history (12,092 patches for 4.2, 10,756 for 4.3, 11,528 for 4.4) suggests that we probably have some merging to go still; a quick look at linux-next suggests that there is still a fair amount of unmerged work in the ARM tree in particular. It is probably fair to say, though, that the bulk of the significant features that we will see in 4.5 are in place now.

The most significant of those features include:

  • There is a new restriction on access to memory via /dev/mem: it can no longer access ranges of memory that have been claimed by a device driver. The specific purpose is to protect non-volatile memory arrays, which, due to their size, are relatively easy to hit by accident, but there are other advantages as well. Someday, perhaps, /dev/mem will go away entirely, but there are still a few things that use it now. Note that the first 1MB of memory is unaffected by this restriction; see the commit changelog for some more information.

  • The kernel's persistent-memory support has, until now, lacked the ability to properly support direct I/O and DMA to persistent memory. That has changed in 4.5 with the merging of proper support for page structures backing up persistent-memory arrays.

  • The libnvdimm (non-volatile memory) layer has gained a bad-block management layer borrowed from the MD RAID code.

  • The XFS filesystem now performs checksum validation of all log entries before applying them during recovery. That should greatly reduce the chance of applying corrupted data.

  • There is now more extensive accounting of kernel memory allocated via the slab allocators. At the user level, users will see various kernel allocations charged against their memory-control-group limits. At the kernel level, the new SLAB_ACCOUNT and __GFP_ACCOUNT flags are used to mark allocations that should be charged in this way. Among others, mm_struct, vm_area_struct, dentry, and inode structures are all tracked now.

  • As described in this article, it is now possible to increase the range of randomness used for address-space layout randomization. That might increase the security of the system, at the possible cost of making huge allocations fail.

  • The MADV_FREE option to madvise(), which has been under development for some time, has finally been merged. MADV_FREE allows an application to mark memory that it won't need immediately; the kernel can then reclaim that memory preferentially if resources are tight.

  • User-space mode-setting support, deprecated for years, has finally been removed from the Radeon driver. With luck, all users have long since switched to kernel mode-setting.

  • New hardware support includes:

    • Audio: Cirrus Logic CS47L24 codecs, Imagination Technologies audio controllers, Rockchip rk3036 Inno codecs, Dialog Semiconductor DA7217 and DA7218 audio codecs, Texas Instruments pcm3168a codecs, Pistachio SoC internal digital-to-analog converters, Realtec RT5616 and 5659 codecs, and AMD audio coprocessors.

    • Graphics: Panasonic VVX10F034N00 1920x1200 video mode panels and Sharp LS043T1LE01 qHD video mode panels. Notably, the "Etnaviv" driver, a free driver for Vivante GPUs, has finally been merged. The AMD driver has gained PowerPlay power-management support.

    • Industrial I/O: Memsic MXC6255 orientation-sensing accelerometers, TI Palmas general-purpose analog-to-digital converters (ADCs), TI ADS8688 ADCs, TI INA2xx power monitors, Freescale IMX7D ADCs, Freescale MMA7455L/MMA7456L accelerometers, Maxim MAX30100 heart rate and pulse oximeter sensors, and AMS iAQ-Core VOC sensors.

    • Input: EETI eGalax serial touchscreens and Technologic TS-4800 touchscreens.

    • Miscellaneous: STMicroelectronics STM32 DMA controllers, Mediatek MT81xx SPI NOR flash controllers, Ingenic JZ4780 NAND flash controllers, HiSilicon SAS SCSI adapters, TI LM363X voltage regulators, TI TPS65086 power regulators, Powerventure Semiconductor PV88060 and PV88090 voltage regulators, Cirrus Logic Fractional-N Clock synthesizer/multipliers, Qualcomm MSM8996 clock controllers, Epson RX8010SJ realtime clocks, and Intel P-Unit mailboxes.

    • USB: Mediatek MT65xx host controllers, Renesas USB3.0 peripheral controllers, Renesas R-Car generation 3 USB 2.0 PHYs, Hisilicon hi6220 USB PHYs, and Moxa UPORT 11x0 serial hubs.

    • Watchdog: CSR CSRatlas7 watchdogs, Technologic TS-4800 watchdogs, Alphascale ASM9260 watchdogs, Zodiac RAVE watchdog timers, Sigma Designs SMP86xx/SMP87xx watchdogs, and Mediatek SoC watchdogs.

Changes visible to kernel developers include:

  • A new version of the media controller API has been merged. As Mauro Carvalho Chehab described this work in the pull request: "The goal is to improve the media controller to allow proper support for other types of Video4Linux devices (radio and TV ones) and to extend the media controller functionality to allow it to be used by other subsystems like DVB, ALSA and IIO." Parts of the user-space API remain disabled, though, until 4.6 so some final points can be worked out.

  • The extensive huge-page reference counting patch set has been merged. The end goal (supporting transparent huge pages in the page cache) has not yet been reached, though.

The most likely day for the closing of the merge window remains January 24. As usual, we'll cover any final changes that come in through this merge window in next week's edition.

Index entries for this article
KernelReleases/4.5


to post comments

AMDGPU?

Posted Jan 21, 2016 18:13 UTC (Thu) by flussence (guest, #85566) [Link] (1 responses)

The linked wiki article about PowerPlay states that it's been superseded by something else, and helpfully includes a table showing this particular branded feature is for R600/R700 era hardware only (circa 2011).

I'm now confused - is the code's documentation wrong, or will the newer driver eventually replace the radeon one for that hardware?

AMDGPU?

Posted Jan 25, 2016 20:51 UTC (Mon) by nix (subscriber, #2304) [Link]

The merge says it's for "Tonga/Fiji/CZ/ST", which are all Volcanic Islands names: bleeding edge new stuff.

It appears 'PowerPlay' has been retained internally to mean 'the power management engine' or something like that.

4.5 merge window part 2

Posted Jan 26, 2016 21:41 UTC (Tue) by willy (subscriber, #9762) [Link]

Minor clarification; you could already do O_DIRECT to/from a file on a DAX filesystem. What didn't work was mmap() a file on a DAX filesystem, and then do O_DIRECT between that mapping and a file on a non-DAX filesystem.


Copyright © 2016, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds