+ All Categories
Home > Documents > LVC20-108 Arm64 Linux Kernel architecture update

LVC20-108 Arm64 Linux Kernel architecture update

Date post: 25-Dec-2021
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
13
Arm64 Linux Kernel architecture update Matteo Carlini Director, Software Technology Management Arm – Open Source Software
Transcript
Page 1: LVC20-108 Arm64 Linux Kernel architecture update

Arm64 Linux Kernel

architecture updateMatteo Carlini

Director, Software Technology Management

Arm – Open Source Software

Page 2: LVC20-108 Arm64 Linux Kernel architecture update

A-profile Architecture new feature names!https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools/feature-names-for-a-profile

Page 3: LVC20-108 Arm64 Linux Kernel architecture update

A-profile features: arm64 kernel support tablehttps://developer.arm.com/tools-and-software/open-source-software/linux-kernel/architecture-and-kvm-enablement

Page 4: LVC20-108 Arm64 Linux Kernel architecture update

v8.1

LSE

RDMA

HPD

VHE

TTHMPAN

LOR

VMID16

PMU

v8.3

PAUTH

JSconv

CCIDX

NV

RCPC

CompNum

v8.4

PMU S2FWB

LSE

SHA

SM

DIT

IDST

CondM

RCPC

AMU

NVTLBI

TTL

MPAM

TTRem

TTST

RAS

DFE

S-EL2

Debug

Trace

CNTSC

v8.5

EVTGTG

SpecRest

PredInv

BT

MemTag

CSEH

CMODX

CondMFRINT

SB

EOPD

DCCVADP

RNG

PMU

SPE

DoPD

v8.6

ECVETS

CTSS

FGT

DGH

TWED

BF16AMU

I8MM

F32MM

F64MM

PAuth2/ FPAC

MPAM

MTPMU

Future architectures

SVE2

TME

v8.0

Enablement complete

Enablement ongoing

Enablement TBD

N/A – no Kernel impact

v8.2

TTS2UXNAA32HPD

TTPBHA

LSMAOC

TTCNP

UAO

ATS1E1

LP16

LVA

LPADCPOP

VPIPT

Debug

RAS

DotProd

SHA

SM

IESB

FHM

A64ISA

A-class architecture kernel enablement – Mar 20

Page 5: LVC20-108 Arm64 Linux Kernel architecture update

A-class architecture kernel enablement – Today

v8.1

LSE

RDMA

HPD

VHE

TTHMPAN

LOR

VMID16

PMU

v8.2

TTS2UXNAA32HPD

TTPBHA

LSMAOC

TTCNP

UAO

ATS1E1

LP16

LVA

LPADCPOP

VPIPT

Debug

RAS

DotProd

SHA

SM

IESB

FHM

A64ISA

v8.3

PAUTH

JSconv

CCIDX

NV

RCPC

CompNum

v8.4

PMUS2FWB

LSE

SHA

SM

DIT

IDST

CondM

RCPC

AMU

TLBITTL

NV

MPAM

Debug

Trace

TTRem

TTST

RAS

DFE

S-EL2

CNTSC

v8.5

GTGSpecRest

PredInv

MemTag

EVT

CSEH

CMODX

DoPD

BTCondM

FRINT

SB

EOPD

DCCVADP

RNG

PMU

SPE

v8.6

ECVETS

CTSS

FGT

TWED

DGH

BF16AMU

I8MM

F32MM

F64MM

PAuth2/ FPAC

MPAM

MTPMU

v8.0

Enablement complete

Enablement ongoing

Enablement TBD

N/A – no Kernel impact

Future architectures

SVE2

TME

Page 6: LVC20-108 Arm64 Linux Kernel architecture update

A-class architecture kernel enablement – Tomorrow

v8.1

LSE

RDMA

HPD

VHE

TTHMPAN

LOR

VMID16

PMU

v8.2

TTS2UXNAA32HPD

TTPBHA

LSMAOC

TTCNP

UAO

ATS1E1

LP16

LVA

LPADCPOP

VPIPT

Debug

RAS

DotProd

SHA

SM

IESB

FHM

A64ISA

v8.3

PAUTH

JSconv

CCIDX

NV

RCPC

CompNum

v8.4

PMUS2FWB

LSE

SHA

SM

DIT

IDST

CondM

RCPC

AMU

TLBITTL

NV

MPAM

Debug

Trace

TTRem

TTST

RAS

DFE

S-EL2

CNTSC

v8.5

GTGSpecRest

PredInv

MemTag

EVT

CSEH

CMODX

DoPD

BTCondM

FRINT

SB

EOPD

DCCVADP

RNG

PMU

SPE

v8.6

ECVETS

CTSS

FGT

TWED

DGH

BF16AMU

I8MM

F32MM

F64MM

PAuth2/ FPAC

MPAM

MTPMU

v8.0

LVC20-214-Arm-

Architecture-2020-

extensions

Enablement complete

Enablement ongoing

Enablement TBD

N/A – no Kernel impact

v8.7 2020 Arch

extensionsFuture architectures

SVE2

TME

CSRE

BRBE

Page 7: LVC20-108 Arm64 Linux Kernel architecture update

Kernel releases since March 2020

❑ Kernel v5.6

o Armv8.5-E0PD (Preventing EL0 access to halves of address maps)

o Armv8.5-RNG: HWCAP exposure & use arch entropy for KASLR seed

o HWCAP : Armv8.6-BF16, Armv8.6-I8MM, Armv8.6-DGH

❑ Kernel v5.7

o Armv8.3-Pauth: In-kernel support for function return address protection

o Armv8.4 AMU: Activity Monitors extensions

o Armv8.5 PMU 64-bit counters

o Armv8.5-RNG: use at boot to seed KASLR when ARCH_RANDOM is enabled

o asm annotations preps for Armv8.5-BTI

o KVM: GICv4.1 support & 32-bit host removal

o Memory hot-remove support for arm64

Page 8: LVC20-108 Arm64 Linux Kernel architecture update

Kernel releases since March 2020 – Cont.

❑ Kernel v5.8o Armv8.5-BTI: user-space and in-kernel support

o KVM: Non-invasive pre-Nested Virtualization preparatory patches

❑ Kernel v5.9o Armv8.4-TLBI: arm64 support for TLBI range operations

o Armv8.4-TTL: arm64 support for translation table level hints

o SCMI Notifications support

o KVM: Pointer Authentication available for guests on non-VHE hosts

o KVM: Further pre-NV preparatory patches

❑ Kernel v5.10 predictions (queued in –next)o Armv8.3-PAuth2 & Armv8.3-FPAC: Pointer Authentication enhancements introduced

in the Armv8.6 Arm architecture specification

o First chunk of resctrl clean-up patches (prep for MPAM)

Page 9: LVC20-108 Arm64 Linux Kernel architecture update

Ongoing developments: Armv8.4 MPAM

❑ Working on enabling multi-arch support to the resctrl interface

▪ https://www.kernel.org/doc/Documentation/x86/intel_rdt_ui.txt

❑ Last snapshot of Arm patches available here:

▪ https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/log/?h=mpam/snapshot/feb

▪ First chunk of resctrl clean-up patches queued on –next (on top of 5.9) https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=x86/cache

❑ System characteristics to allow use of the resctrl interface:

▪ Cache Portion bitmaps on L2 or L3, with up to 32 portions

▪ Memory-bandwidth portion bitmaps on L3 with up to 32 portions

Arm MPAM controls Resctrl interface

Cache portion bitmaps (L2 & L3 cache) Available

Cache capacity Not Available

Memory bandwidth portion bitmap Available

Memory bandwidth min/max/stride Not available

Raw priority Not available

Page 10: LVC20-108 Arm64 Linux Kernel architecture update

Ongoing developments: Armv8.4 MPAM

❑ System Description (DT/ACPI bindings) is ongoing

▪ ACPI for MPAM spec (DEN0065) – Beta now, will be finalised in October

▪ Patches will be rebased against the updated spec (and DT will be derived

accordingly)

❑ Enablement plans:

▪ Resctrl rework expected to continue throughout rest of 2020

▪ arm64 architectural specific enablement (backend) starting in 2021

▪ Sysregs & cpu feature enablement likely posted during v5.10 iteration cycle

▪ Currently investigating mobile-driven enablement use-cases in Android/GKI

▪ Also investigating possibility for in-kernel user, as an alternative path for

upstreaming arch/arm64 code (in parallel with resctrl)

Page 11: LVC20-108 Arm64 Linux Kernel architecture update

Ongoing developments (2)

❑ Armv8.2 SPE in KVM Guests

▪ Arm Kernel team working on the enablement → to be posted soon on-list

❑ Armv8.5 Memory Tagging:

▪ User-space heap tagging enablement ongoing (likely queued for v5.11)

▪ In-Kernel heap-tagging: now co-developed with Google on-list

▪ KVM Guest enablement (heap tagging) on-list

▪ Stack-tagging:

❑ Fine-grained stack-tagging (colouring each function) breaks single-image

❑ Considerations for future debug feature (pending compiler support)

❑ Debug - Coresight

▪ Coresight ETMv4.4 currently on-list / Armv8.4 Self-hosted trace also on-list

▪ Coresight built as a module on-list

▪ Working to enable ETE/TRBE → to be posted soon on-list

Page 12: LVC20-108 Arm64 Linux Kernel architecture update

Ongoing developments (3)❑ FF-A kernel driver:

▪ Public REL spec DEN0077 / Initial patch on-list

▪ Plan to support both Normal (e.g.: Hypervisor) and Secure (e.g.: Trusted OS) use

❑ True Random Number Generator (TRNG) interface

▪ EAC Spec publicly available: DEN0098

▪ Support for new SMC and entropy source coming soon

❑ SCMI

❑ System Power protocol support queued in –next (likely v5.10)

❑ System Power Control driver on-list

❑ Arm CMN-600 PMU driver:

❑ v2 patch on-list

❑ Morello

❑ Prototyping a capability-based ABI together with toolchain teams

❑ See https://linuxplumbersconf.org/event/7/contributions/654/

Page 13: LVC20-108 Arm64 Linux Kernel architecture update

Thank youAccelerating deployment in the Arm Ecosystem


Recommended