|
|
Subscribe / Log in / New account

The first half of the 4.19 merge window

By Jonathan Corbet
August 17, 2018
As of this writing, Linus Torvalds has pulled just over 7,600 non-merge changesets into the mainline repository for the 4.19 development cycle. 4.19 thus seems to be off to a faster-than-usual start, perhaps because the one-week delay in the opening of the merge window gave subsystem maintainers a bit more time to get ready. There is, as usual, a lot of interesting new code finding its way into the kernel, along with the usual stream of fixes and cleanups.

Core kernel

  • The scheduler's load-tracking subsystem has been enhanced with an improved awareness of the amount of time taken by realtime processes, deadline processes, and interrupt handling; this information is used to select more appropriate operating frequencies for the system's processors.
  • The "jprobes" tracing mechanism has been removed from the kernel; it has long been superseded by the ftrace infrastructure. Those who are curious about what jprobes did can find a description in this 2005 article.
  • The asynchronous I/O polling interface has been added again, after having been reverted out of 4.18. The internal implementation has changed into a more Linus-friendly form, so this feature should actually make it into the release this time around.

Architecture-specific

  • Support for Intel's "cache pseudo locking" feature has been added. With this feature, a portion of a processor's memory cache can be populated with data of interest, then locked against further changes. The result is consistent low-latency read access to the locked memory range. See this commit for documentation on this feature.
  • 32-Bit x86 systems finally have kernel page-table isolation support.
  • A large set of mitigations for the recently disclosed L1TF vulnerability has been merged.
  • The arm64 architecture has gained support for restartable sequences and the "stackleak" GCC plugin.

Filesystems and block layer

  • The XFS filesystem has removed the barrier and nobarrier mount options. Those options have not actually done anything for years; hopefully everybody has removed them from their fstab files by now.
  • The block I/O latency controller has been added; it allows administrators to provide minimum I/O latency guarantees to specific control groups.
  • The asynchronous bsg (SCSI generic) interface has been removed due to persistent and unfixable design issues.

Hardware support

  • Audio: Realtek RT5682 codecs, Everest ex7241 codecs, Amlogic AXG sound cards, and Qualcomm WCD9335 codecs.
  • Clock: Renesas R9A06G032 clock controllers, Maxim 9485 programmable clock generators, Meson AXG audio clock controllers, Actions Semi S700 SoC clock controllers, and Qualcomm SDM845 display clock controllers.
  • Graphics: Ilitek ILI9881C-based panels, Iletek ILI9341 display panels, and Qualcomm SDM845 display processing units.
  • Hardware monitoring: Mellanox fan controllers, Maxim MAX34451 voltage/current monitors, and Nuvoton NPCM750 PWM and fan controllers.
  • Media: Dongwoon DW9807 lens voice coils, Asahi Kasei Microdevices AK7375 lens voice coils, and Socionext MN88443x demodulators.
  • Network: Vitesse VSC7385/7388/7395/7398 switches, Realtek SMI Ethernet switches, and Theobroma Systems UCAN interfaces.
  • Pin control: Intel Ice Lake pin controllers, NXP IMX8MQ pin controllers, and Synaptics as370 pin controllers.
  • Miscellaneous: NVIDIA Tegra NAND flash controllers, Socionext UniPhier SPI controllers, Qualcomm last-level cache controllers, Qualcomm RPMh regulators, Hisilicon SEC crypto block cipher accelerators, Mediatek MT7621 GPIO controllers, and MediaTek CMDQ mailbox controllers.

Networking

  • The time-based packet transmission patch set has been merged. This feature allows a program to schedule data for transmission at some future time.
  • The CAKE queuing discipline, which works to overcome bufferbloat and other problems associated with home network links, has been merged.
  • The new "skbprio" queuing discipline can schedule packets according to an internal priority field. This feature is naturally undocumented; in the commit adding it the author says: "Skbprio was conceived as a solution for denial-of-service defenses that need to route packets with different priorities as a means to overcome DoS attacks".
  • Devices that can offload the receive side processing of TLS-encrypted connections are now supported.

Security-related

  • There is now a kernel configuration option that can be used to make the system fully initialize the entropy pool from the hardware random-number generator at boot time. This should allow for better early-boot random-number generation at the cost of placing a bit of trust in the CPU manufacturer's hardware.

Internal kernel changes

  • The simple wait queue API has been changed by renaming a number of functions to reflect the fact that it only implements exclusive waits. So prepare_to_swait() becomes prepare_to_swait_exclusive(), swake_up() becomes swake_up_one(), and so on.
  • There is a new initiative to translate kernel documentation into Italian, with an initial set of translations merged for 4.19.

If the usual schedule holds, the 4.19 merge window can be expected to remain open until August 26. There are still quite a few trees to be pulled, so one can expect a number of interesting changes will still find their way into this merge window. The final 4.19 release can be expected in mid-October.

Index entries for this article
KernelReleases/4.19


to post comments

The first half of the 4.19 merge window

Posted Aug 17, 2018 22:01 UTC (Fri) by viro (subscriber, #7872) [Link]

FWIW, from Documentation/filesystems/porting:
[mandatory]
->atomic_open() calling conventions have changed. Gone is int *opened,
along with FILE_OPENED/FILE_CREATED. In place of those we have
FMODE_OPENED/FMODE_CREATED, set in file->f_mode. Additionally, return
value for 'called finish_no_open(), open it yourself' case has become
0, not 1. Since finish_no_open() itself is returning 0 now, that part
does not need any changes in ->atomic_open() instances.

That one affects all filesystems providing ->atomic_open(). And this
[mandatory]
alloc_file() has become static now; two wrappers are to be used instead.
alloc_file_pseudo(inode, vfsmount, name, flags, ops) is for the cases
when dentry needs to be created; that's the majority of old alloc_file()
users. Calling conventions: on success a reference to new struct file
is returned and callers reference to inode is subsumed by that. On
failure, ERR_PTR() is returned and no caller's references are affected,
so the caller needs to drop the inode reference it held.
alloc_file_clone(file, flags, ops) does not affect any caller's references.
On success you get a new struct file sharing the mount/dentry with the
original, on failure - ERR_PTR().

affects the drivers playing with alloc_file() - much fewer of those in there, but also an incompatible API change.

That, BTW, is a nice example of the reasons why there isn't and there won't be any promises of in-kernel interface stability - if a change makes sense (e.g. makes for much simpler cleanup logics on failure exits), it is done, period.

PS: generally, that file is worth watching when looking for infrastructure changes...

skbprio dokumentation

Posted Sep 4, 2018 12:42 UTC (Tue) by knurd (subscriber, #113424) [Link]

> The new "skbprio" queuing discipline can schedule packets according to an internal priority field. This feature is naturally undocumented […]

TWIMC: The documentation afaics(¹) was moved to the patches that add support for skbprio in iproute2
https://git.kernel.org/pub/scm/network/iproute2/iproute2....

(¹) Quote from https://git.kernel.org/torvalds/c/aea5f654e6b78a0c976f7a2...

>> v4
>> *Drop Documentation/networking/sch_skbprio.txt doc file to move it to tc man
>> page for Skbprio, in iproute2.


Copyright © 2018, 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