Overview

Arm is an active maintainer and contributor to the Linux Kernel project, together with Linaro and a large number of partner companies and independent developers.

Arm maintains the arch/arm64 Linux Kernel tree, for all Arm 64-bit enabled systems and it actively contributes to the arch/arm tree for all legacy Arm 32-bit systems (Armv7 and Armv8 running at AArch32).

Arm also maintains the KVM/arm and KVM/arm64 ports of the popular Kernel Virtual Machine (KVM) hypervisor.

Arm develops and maintains the fundamental Arm Architecture enablement for the Linux kernel.

All the information regarding the Linux Kernel can be found in the official Kernel.org website.

Kernel versions highlights

Few arm64 highlights from recent Linux Kernel versions released

  • Linux-5.0

    Support for ARMv8.3 Pointer Authentication in userspace

    Support for ARMv8.2-LVA: 52-bit virtual addressing for userspace (kernel remains 48-bit)

    Support for the new 'SB' Speculation Barrier instruction (ARMv8.0-SB, introduced as part of the ARMv8.5 Extension)

    Support for per-thread stack canaries

    Support for kexec_file_load() for secure boot of a kexec payload but also for kexec performances improvement

    KPTI whitelisting of Cortex-A CPUs unaffected by Meltdown

    Patch in LSE atomics for per-cpu atomic operations

    Initial support for memory hotplug

    KVM: Large PUD support for HugeTLB

    EAS (Energy Aware Scheduling)

  • Linux-4.20

    Support for the new ARMv8.5 PSTATE.SSBS bit (ARMv8.0-SpecRest), used to mitigate Spectre-v4 dynamically without trapping to EL3 firmware

    Support for ARMv8.2-TTCNP Common Not Private translations allowing threads of the same CPU to share the TLB entries

    Core mmu_gather changes which allow tracking the levels of page-table being cleared together with the arm64 low-level flushing routines

    Optimise emulation of MRS instructions to ID_* registers on ARMv8.4

    Trap WFI instruction executed in user space

    Arm Smmuv3 support non-strict mode

    KVM: Improved guest IPA space support (32 to 52 bits)

    KVM: RAS event delivery for 32bit

  • Linux-4.19

    Support for qspinlock on arm64, replacing ticket lock code 

    GICv3 updates and LPI allocation refactoring

    Support for the GCC "stackleak" plugin

    Kexec/kdump support on systems booting with ACPI

    Support for chained PMU counters, allowing 64-bit event counters to be constructed on current CPUs

    KVM: Support for Group0 interrupts in guests

  • Linux-4.18

    Support for arm64 SSBD (Speculative Store Bypass Disable) Spectrev4 mitigation using SMC firmware call to set a hardware defined bit

    ACPI PPTT (Processor Properties Topology Table) parsing support and enable the feature for arm64

    Turn LSE atomics on by default in Kconfig

    Support for qspinlock in the generic codebase

    KVM: Lazy context-switching of FPSIMD registers on arm64

    KVM: Allow virtual redistributors to be part of two or more MMIO ranges