4.16 Merge window part 1
Core kernel
- Initial support for the Jailhouse hypervisor has been added for the x86-64 architecture. With this support, it's possible to run Linux in a non-root cell.
- The deadline scheduler has been given an understanding of CPU frequency and voltage scaling; that allows it to operate properly without the need to disable power-saving features.
- The arm64 architecture can now work with 52-bit physical addresses on suitably equipped hardware.
- The Berkeley Packet Filter (BPF) virtual machine now has support for the defining and calling of functions within BPF programs.
Filesystems and block layer
- The MultiMediaCard subsystem (which handles storage devices like
Secure Digital cards) has been reworked to use the multiqueue block API. That should bring
performance improvements among other benefits.
- The I/O schedulers have gained support for locked zones on block
devices; this is used to prevent reordering of writes on zoned devices
where writes must be performed sequentially.
- The CIFS filesystem has experimental support for SMB Direct, which can
use remote DMA (RDMA) to transfer SMB packets.
- The Btrfs filesystem now supports the fallocate()
FALLOCATE_FL_ZERO_RANGE operation.
- The NFS client can now use the query flags in the statx()
system call to avoid calling to the remote server if the needed
information is available locally.
- The new RWF_APPEND flag to pwritev2() will append the data to the file regardless of the current offset.
Networking
- The new "netdevsim" virtual device exists to help in the testing
of hardware-offload features in the networking stack. It simulates
various offload operations so that higher-level code can be tested
without the relevant hardware being present. The initial use case is
for testing BPF offload support.
- The Netware IPX and NCPFS protocol implementations are old, unmaintained, and unused; they have been moved to the staging tree ahead of their eventual deletion from the kernel.
Security-related
- The arm64 architecture has gained the ability to invalidate the branch prediction unit, a defense against the Spectre variant-2 vulnerability. Also added to arm64 is kernel page-table isolation to defend against Meltdown.
Hardware support
- Audio: Texas Instruments PCM186x and TLV320AIC32x4 codecs, Texas Instruments TAS6424 quad-channel audio amplifiers, Maxim integrated MAX98373 speaker amplifiers, STMicroelectronics STM32 DFSDM digital audio interfaces, Tempo Semiconductor TSCS42xx codecs, and Socionext UniPhier LD11/20 codecs.
- Bus: Eckelmann SIOX buses, SLIMbus buses, Qualcomm SLIMbus controllers, and SoundWire two-pin buses.
- Cryptographic: STMicroelectronics STM32 CRYP1 cryptographic accelerators, Chelsio IPSec XFRM Tx crypto offload engines, and Samsung Exynos true random number generators.
- Industrial I/O: IDT ZOPT2201 ALS and UV B sensors and STMicroelectronics UVIS25 UV sensors.
- Networking: Hisilicon HNS3VF network acceleration engines, MediaTek MT76x2E wireless network interfaces, Socionext AVE Ethernet interfaces, SocioNext NetSec gigabit Ethernet controllers, and Cortina Gemini Ethernet controllers.
- Miscellaneous: Realtek rts5260 card readers, RAVE supervisory processor units, Nuvoton W83773G hardware-monitoring chips, Spreadtrum SC2731 power regulators, Texas Instruments DDR3 ECC controllers, Texas Instruments LM3692x LED controllers, Winbond Super I/O GPIO controllers, and Oracle SPARC data analytics accelerators.
- The LED subsystem has a new trigger type (NETDEV) that can trigger an LED based on network activity.
Internal kernel changes
- The handling of the inode i_version field has changed to eliminate changes (which must be expensively flushed to storage) when nobody is paying attention. There is a new API (found in this commit) for working with i_version.
- High-resolution timer (hrtimer) functions have traditionally run in hard-interrupt context. Many users actually need to be running in software-interrupt context, though, leading to a situation where a lot of hrtimer functions do nothing except start a tasklet to get the real work done. 4.16 adds two new timer modes (HRTIMER_MODE_REL_SOFT and HRTIMER_MODE_ABS_SOFT) that run the timer function in software-interrupt context to begin with, eliminating the need for the tasklet.
- The return type of the poll() method in struct file_operations has been changed to the new __poll_t type. It is a bitwise type that facilitates automatic checking for a number of common mistakes in poll() implementations.
- The new snap-pkg target in the build system can be used to create a Snap package containing a built kernel.
- The parser used by the configuration system is now directly generated with flex and bison; those tools are thus now part of the kernel's build requirements.
The 4.16 merge window will probably close on February 11; the final 4.16
kernel release can, barring another significant security surprise, be
expected on April 1 or 8. Stay tuned for the second article
in this series, which will cover the second half of the merge window for
this development cycle.
Index entries for this article | |
---|---|
Kernel | Releases/4.16 |
Posted Feb 4, 2018 18:05 UTC (Sun)
by fratti (guest, #105722)
[Link] (3 responses)
I predict that by 2020, around 90% of the kernel will have been rewritten in eBPF, with only a few subsystems desperately clinging onto C.
Posted Feb 4, 2018 18:40 UTC (Sun)
by xtifr (guest, #143)
[Link]
Posted Feb 4, 2018 19:08 UTC (Sun)
by josh (subscriber, #17465)
[Link] (1 responses)
Posted Feb 4, 2018 19:59 UTC (Sun)
by fratti (guest, #105722)
[Link]
Posted Feb 5, 2018 3:23 UTC (Mon)
by pr1268 (subscriber, #24648)
[Link] (9 responses)
That's 4,503,599,627,370,496 bytes, or 4 pebibytes. Anyone out there with an arm64 device with that much memory? (If so, I'd love to see a picture of said device.) ;-)
Posted Feb 5, 2018 9:30 UTC (Mon)
by Cyberax (✭ supporter ✭, #52523)
[Link] (4 responses)
Posted Feb 5, 2018 11:02 UTC (Mon)
by willy (subscriber, #9762)
[Link] (3 responses)
If you look at the most extreme public Machine from HP, it has 160TB. They claim a limit of 4096YB (92 bits), which I'm pretty sure refers to the number of address bits in the genZ packet.
P.S. Don't think about the UBER of 2^52 bits of memory ...
Posted Feb 5, 2018 11:36 UTC (Mon)
by matthias (subscriber, #94967)
[Link]
Posted Feb 5, 2018 12:43 UTC (Mon)
by epa (subscriber, #39769)
[Link] (1 responses)
Posted Feb 5, 2018 12:56 UTC (Mon)
by hthoma (subscriber, #4743)
[Link]
;-) That raised fond memories of playing "The Bard's Tale" on a C64 ...
Posted Feb 5, 2018 11:13 UTC (Mon)
by hmh (subscriber, #3838)
[Link]
It is not the RAM, it is where you place it ;-)
Posted Feb 5, 2018 12:42 UTC (Mon)
by cesarb (subscriber, #6266)
[Link]
Posted Feb 5, 2018 14:26 UTC (Mon)
by Paf (subscriber, #91811)
[Link] (1 responses)
Posted Feb 6, 2018 0:14 UTC (Tue)
by mtanski (subscriber, #56423)
[Link]
4.16 Merge window part 1
4.16 Merge window part 1
4.16 Merge window part 1
4.16 Merge window part 1
That's a LOT of memory
The arm64 architecture can now work with 52-bit physical addresses on suitably equipped hardware.
That's a LOT of memory
That's a LOT of memory
That's a LOT of memory
That's a LOT of memory
That's a LOT of memory
That's a LOT of memory
That's a LOT of memory
That's a LOT of memory
That's a LOT of memory