Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

5.4 kernel patches (WIP)

Yi Li edited this page Feb 5, 2021 · 11 revisions

Welcome to the ampere-lts-kernel wiki!

The wiki is Work In Progress

Introduction

There are cases to run upstream longterm maintenance kernel on Ampere Altra™ SoC. This guide lists Linux kernel patches and kernel configurations related with Altra, targeting for longterm 5.4 kernel. The guide is based on the Ampere Altra™ Linux Kernel Porting Guide.

Kernel patches and configurations are back ported from Ampere centos kernel. Kernel patch is on linux-5.4.y branch: https://github.com/AmpereComputing/ampere-lts-kernel/tree/linux-5.4.y

Back ported patches

NUMA

These patches provide multi-socket optimization:

Accepted Kernel Hash Tag Subject
5.10 409b032 arm64: NUMA: Kconfig: Increase NODES_SHIFT to 4
N/A 30abc1a NOUPSTREAM: arm64: Kconfig: Enable NODES_SPAN_OTHER_NODES config for NUMA

ARM64

This patch is required to fix PCI ECAM reading:

Accepted Kernel Hash Tag Subject
5.10 44b1b99 drivers/pci: Add ecam quirk for Ampere Altra SOC.

This patch is required to fix soft lockup during heavy stress test:

Accepted Kernel Hash Tag Subject
5.8 480804b BACKPORT: Split the old READ_IMPLIES_EXEC workaround from executable.

HW Monitor

These patches are required to support HW monitor:

Accepted Kernel Hash Tag Subject
TBD - 5.11? 8109a6c hwmon: Add Ampere Altra HW monitor driver

APEI

These patches are required to support APEI/RAS features:

Accepted Kernel Hash Tag Subject
5.8 af3b585 BACKPORT: mm/memory-failure: Add memory_failure_queue_kick()
5.8 16ac324 BACKPORT: ACPI / APEI: Kick the memory_failure() queue for synchronous err

PMU

Accepted Kernel Hash Tag Subject
CMN-600
5.10 80264b8 perf:Add Arm CMN-600 DT binding
5.10 cdaf907 perf: Add Arm CMN-600 PMU driver
ARM DSU
5.10 7655e30 perf: arm_dsu: Support ACPI mode
TBD 48b4d60 NOUPSTREAM:perf: arm_dsu: Allow IRQ to be shared among devices
DMC-620
5.11 8895c29 perf: Add ARM DMC-620 PMU driver
5.11 51af7e2 perf: arm_dmc620: Update ACPI ID
ARM SMMUv3 PMU (PMCG)
5.5 a4b00c9 perf/smmuv3: Remove the leftover put_cpu() in error path
5.8 779bed7 perf/smmuv3: Allow sharing MMIO registers with the SMMU drive

Patches already in upstream LTS 5.4 kernel

scsi: mpt3sas

Fix CPU lock up when doing fio test. The issue is because of the driver didn't handle IRQ correctly when number of cores greater than number of MSIx supported

Accepted Kernel 5.4 kernel version Hash Tag Subject
5.9 5.4.66 122cdbd scsi: mpt3sas: Don't call disable_irq from IRQ poll handler

APEI

Accepted Kernel 5.4 kernel version Hash Tag Subject
5.8 5.4.69 af02933 arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work

PMU

Accepted Kernel 5.4 kernel version Hash Tag Subject
5.8 Already in 5.4.93 b1d2d3d ACPI/IORT: Fix PMCG node always look for a single ID mapping

Kernel configurations

Please refer to altra_5.4_defconfig. It is based on Ampere centos 8 default kernel configure.

Significant changes are:

Ampere centos 8 kernel 5.4.93 kernel
CONFIG_ARM64_USER_VA_BITS_52=y replaced by CONFIG_ARM64_VA_BITS_52=y
CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem" not set

Enabld features:

Features Configures
64KB page CONFIG_ARM64_64K_PAGES=y
numa nodes CONFIG_NODES_SHIFT=6
Altra HW monitor driver CONFIG_SENSORS_ALTRA=m
Arm CMN-600 PMU CONFIG_ARM_CMN=y
ARM DynamIQ Shared Unit (DSU) PMU CONFIG_ARM_DSU_PMU=y
DMC-620 PMU CONFIG_ARM_DMC620_PMU=y
ARMv8.2 Statistical Profiling Extension CONFIG_ARM_SPE_PMU=y
ARM SMMUv3 Performance Monitors Extension CONFIG_ARM_SMMU_V3_PMU=y