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

Some arm64 highlights from recently released Linux Kernel versions

  • Linux-5.5

    FTRACE_WITH_REGS support for arm64 

    Perf updates for arm64

    GICv3 optimisation to avoid a heavy barrier when accessing the ICC_PMR_EL1 register

    PAN bypass mitigation: disable execute-only permissions for user applications

    KVM: Report stolen time to guest

    KVM: Allow injection of data aborts from userspace

    KVM: GICv4 performance improvements

    Workaround for Neoverse-N1 erratum #1542419

    Workaround for Cortex-A57 and A72 erratum #1319367

  • Linux-5.4

    Armv8.2-LVA: 52-bit virtual addressing in the kernel 

    New ABI to allow tagged user pointers to be dereferenced by syscalls

    Support for the PPTT "thread" flag introduced by ACPI 6.3

    Improve in-kernel LSE atomics implementation

    SCMI v2.0 fastchannel support for performance protocol

    KVM: New ITS translation cache

    KVM: Allow up to 512 CPUs to be supported with GICv3

  • Linux-5.3

    Support for Arm64 Syscall emulation via PTRACE_SYSEMU 

    Support for Arm v8.5-CondM Condition code manipulation

    Support for Arm v8.5-FRINT Floating point to Integer

    Statistical Profiling Extensions (SPE) enabled on ACPI platforms

    KVM: Handle Neoverse N1 erratum #1349291

    KVM: Support for chained PMU counters in guests

    KVM: Allow side-channel mitigation status (Spectre Var2/Var4) to be migrated

  • Linux-5.2

    SVE2 exposed to user-space through HWCAP

    Support for ARMv8.5-DCCVAP Data Cache Clean to Point of Deep Persistence

    CPU timer erratum workaround (Neoverse-N1 #1188873 & #1418040)

    Introduce perf PMU driver for the SMMUv3 performance counters

    Populating sysfs with Spectre/Meltdown mitigations information

    KVM: Support for SVE in Guests

    KVM: Support for ARMv8.3 Pointer Authentication in Guests

    KVM: Discrimination of PMU counters between host and guests

  • Linux-5.1

    Support for arm64 pseudo NMI using GICv3 interrupt priorities

    Support for ARMv8.3 Pointer Authentication ptrace regsets for key management

    Uaccess macros clean-up

    KVM: pre-nested virtualization code rework

  • 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