DEPRECATED ‐ 5.4 LTS kernel patches - AmpereComputing/ampere-lts-kernel---DEPRECATED GitHub Wiki

DEPRECATED

This repository is deprecated and set to archive status. It will eventually be deleted.

Welcome to the ampere-lts-kernel wiki!

Introduction

There are cases to run upstream longterm maintenance kernel on the Ampere Altra® reference platform. This guide lists Linux kernel patches and kernel configurations related with Ampere 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

kdump: reserve crashkernel above 4GB

eventpoll bug fix

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/72

Accepted Kernel Hash Tag Subject
5.12 e9e15f48 locking/qrwlock: Fix ordering in queued_write_lock_slowpath()

NUMA

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/73

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

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/78

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.

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/79

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

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/80

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

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/81

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

CMN-600 Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/74

ARM DSU Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/75

DMC-620 Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/76

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
5.12 2aef8e0 BACKPORT: perf/arm-cmn: Move IRQs when migrating context
Not upstream ad71283 perf/arm-cmn: Fix kernel crash when access dtc object sharing same IRQ number
ARM DSU
5.10 92163d perf: arm_dsu: Support DSU ACPI devices
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
5.14 5cfcc6261 perf/smmuv3: Don't trample existing events with global filter

Altra LED driver

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/82

Not upstream yet.

Accepted Kernel Hash Tag Subject
TBD 5a19482 led: Add Altra LED driver

smmu-pmu PMCG

Fix smmu-pmu PMCG conflicts with nvme, see this issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/30

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/77

Accepted Kernel Hash Tag Subject
5.8 87957b27f iommu/arm-smmu-v3: Don't reserve implementation defined register space

PMU NMI

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/83

This patch serials enable Non-maskable-interrupt for PMU. Please refer to wiki: https://github.com/AmpereComputing/ampere-lts-kernel/wiki/perf-pmu-and-more#pmu-non-maskable-interrupt-nmi for details.

The patch serial includes three parts:

  1. pseudo-NMIs. The feature is in upstream 5.1 kernel, no need to backport.
  2. PMU NMI based on pseudo-NMIs, totally 7 patches
Upstream kernel Patch-set for pmu nmi
5.14 1aa0030 77bb12e c21bbca 1aa0030 cc3a384 de91dc3 ccc2351 9b87ed3
  1. Fix PMU NMI hang issue
Upstream kernel Patch-set for 'arm64: Fix cpuidle/suspend with pseudo-NMI enabled'
5.14 0036b25 497e665 662d30f a91183eb

Perf tool

Issue: https://github.com/AmpereComputing/ampere-lts-kernel/issues/84

Enhance linux perf tool features. These patches is not required for Altra.

Upstream kernel Patch-set for 'perf kvm stat'
5.14 7129c5a 35b65b84 f7408370 35938d93

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

Enabled features:

Features Configures
64KB page CONFIG_ARM64_64K_PAGES=y
numa nodes CONFIG_NODES_SHIFT=6
Altra HW monitor driver CONFIG_SENSORS_ALTRA=m
Altra LED driver CONFIG_LEDS_ALTRA_SPCI=y
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

Kernel patch test

For each kernel patch, there is a functional test case. The test cases are tracked in https://github.com/AmpereComputing/ampere-lts-kernel/issues/6

⚠️ **GitHub.com Fallback** ⚠️