DEPRECATED ‐ 5.4 LTS kernel patches - AmpereComputing/ampere-lts-kernel---DEPRECATED GitHub Wiki
Welcome to the ampere-lts-kernel wiki!
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
kdump: reserve crashkernel above 4GB
- Patch details: https://github.com/AmpereComputing/ampere-lts-kernel/issues/102
- Background: https://github.com/AmpereComputing/ampere-lts-kernel/wiki/kdump-on-arm64
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:
- pseudo-NMIs. The feature is in upstream 5.1 kernel, no need to backport.
- 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 |
- 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 |
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 |
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 |
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