[GIT PULL] arm64 updates for 6.11

From: Catalin Marinas
Date: Thu Jul 11 2024 - 15:04:05 EST


Hi Linus,

I'm about to go on holiday for two weeks, so here's an early pull
request for 6.11. The biggest part is the virtual CPU hotplug that
touches ACPI, irqchip. We also have some GICv3 optimisation for
pseudo-NMIs that has been queued via the arm64 tree. Otherwise the usual
perf updates, kselftest, various small cleanups. There's a minor
conflict currently in -next with the kvmarm tree but it's trivial (in
arch/arm64/include/asm/esr.h).

I'll check emails occasionally during the merging window but if there's
anything urgent, Will can take over.

Thanks.

The following changes since commit 83a7eefedc9b56fe7bfeff13b6c7356688ffa670:

Linux 6.10-rc3 (2024-06-09 14:19:43 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux tags/arm64-upstream

for you to fetch changes up to 4f3a6c4de7d932be94cde2c52ae58feeec9c9dbf:

Merge branch 'for-next/vcpu-hotplug' into for-next/core (2024-07-11 19:10:02 +0100)

----------------------------------------------------------------
arm64 updates for 6.11:

* Virtual CPU hotplug support for arm64 ACPI systems

* cpufeature infrastructure cleanups and making the FEAT_ECBHB ID bits
visible to guests

* CPU errata: expand the speculative SSBS workaround to more CPUs

* arm64 ACPI:

- acpi=nospcr option to disable SPCR as default console for arm64

- Move some ACPI code (cpuidle, FFH) to drivers/acpi/arm64/

* GICv3, use compile-time PMR values: optimise the way regular IRQs are
masked/unmasked when GICv3 pseudo-NMIs are used, removing the need for
a static key in fast paths by using a priority value chosen
dynamically at boot time

* arm64 perf updates:

- Rework of the IMX PMU driver to enable support for I.MX95

- Enable support for tertiary match groups in the CMN PMU driver

- Initial refactoring of the CPU PMU code to prepare for the fixed
instruction counter introduced by Arm v9.4

- Add missing PMU driver MODULE_DESCRIPTION() strings

- Hook up DT compatibles for recent CPU PMUs

* arm64 kselftest updates:

- Kernel mode NEON fp-stress

- Cleanups, spelling mistakes

* arm64 Documentation update with a minor clarification on TBI

* Miscellaneous:

- Fix missing IPI statistics

- Implement raw_smp_processor_id() using thread_info rather than a
per-CPU variable (better code generation)

- Make MTE checking of in-kernel asynchronous tag faults conditional
on KASAN being enabled

- Minor cleanups, typos

----------------------------------------------------------------
Andre Przywara (2):
dt-bindings: arm: pmu: Add new Cortex and Neoverse cores
perf: pmuv3: Add new Cortex and Neoverse PMUs

Anshuman Khandual (3):
arm64/mm: Stop using ESR_ELx_FSC_TYPE during fault
KVM: arm64: Replace custom macros with fields from ID_AA64PFR0_EL1
arm64/cpufeature: Replace custom macros with fields from ID_AA64PFR0_EL1

Catalin Marinas (3):
irqchip/gic-v3: Fix 'broken_rdists' unused warning when !SMP and !ACPI
Merge branches 'for-next/cpufeature', 'for-next/misc', 'for-next/kselftest', 'for-next/mte', 'for-next/errata', 'for-next/acpi', 'for-next/gic-v3-pmr' and 'for-next/doc', remote-tracking branch 'arm64/for-next/perf' into for-next/core
Merge branch 'for-next/vcpu-hotplug' into for-next/core

Colin Ian King (1):
kselftest/arm64: Fix a couple of spelling mistakes

Dev Jain (1):
kselftest/arm64: Fix redundancy of a testcase

Gavin Shan (1):
arm64: Kconfig: Fix dependencies to enable ACPI_HOTPLUG_CPU

Ilkka Koskinen (2):
perf/arm-cmn: Decouple wp_config registers from filter group number
perf/arm-cmn: Enable support for tertiary match group

James Morse (7):
ACPI: processor: Register deferred CPUs from acpi_processor_get_info()
ACPI: Add post_eject to struct acpi_scan_handler for cpu hotplug
arm64: acpi: Move get_cpu_for_acpi_id() to a header
irqchip/gic-v3: Don't return errors from gic_acpi_match_gicc()
irqchip/gic-v3: Add support for ACPI's disabled but 'online capable' CPUs
arm64: document virtual CPU hotplug's expectations
cpumask: Add enabled cpumask for present CPUs that can be brought online

Jean-Philippe Brucker (1):
arm64: psci: Ignore DENIED CPUs

Jeff Johnson (2):
ARM64: reloc_test: add missing MODULE_DESCRIPTION() macro
perf: add missing MODULE_DESCRIPTION() macros

Jinjie Ruan (1):
arm64: smp: Fix missing IPI statistics

Jonathan Cameron (11):
ACPI: processor: Simplify initial onlining to use same path for cold and hotplug
cpu: Do not warn on arch_register_cpu() returning -EPROBE_DEFER
ACPI: processor: Drop duplicated check on _STA (enabled + present)
ACPI: processor: Return an error if acpi_processor_get_info() fails in processor_add()
ACPI: processor: Fix memory leaks in error paths of processor_add()
ACPI: processor: Move checks and availability of acpi_processor earlier
ACPI: processor: Add acpi_get_processor_handle() helper
ACPI: scan: switch to flags for acpi_scan_check_and_detach()
arm64: acpi: Harden get_cpu_for_acpi_id() against missing CPU entry
arm64: arch_register_cpu() variant to check if an ACPI handle is now available.
arm64: Kconfig: Enable hotplug CPU on arm64 if ACPI_PROCESSOR is enabled.

Kevin Brodsky (1):
Documentation: arm64: Update memory.rst for TBI

Liu Wei (1):
ACPI: Add acpi=nospcr to disable ACPI SPCR as default console on ARM64

Mark Brown (1):
kselftest/arm64: Include kernel mode NEON in fp-stress

Mark Rutland (10):
arm64: cputype: Add Cortex-X3 definitions
arm64: cputype: Add Cortex-A720 definitions
arm64: cputype: Add Cortex-X925 definitions
arm64: errata: Unify speculative SSBS errata logic
arm64: errata: Expand speculative SSBS workaround
wordpart.h: Add REPEAT_BYTE_U32()
irqchip/gic-common: Remove sync_access callback
irqchip/gic-v3: Make distributor priorities variables
irqchip/gic-v3: Detect GICD_CTRL.DS and SCR_EL3.FIQ earlier
arm64: irqchip/gic-v3: Select priorities at boot time

Mike Rapoport (IBM) (1):
arm64: Kconfig: fix typo in __builtin_return_adddress

Muhammad Usama Anjum (2):
selftests: arm64: tags_test: conform test to TAP output
selftests: arm64: tags: remove the result script

Nianyao Tang (1):
arm64/cpufeatures/kvm: Add ARMv8.9 FEAT_ECBHB bits in ID_AA64MMFR1 register

Peter Collingbourne (1):
arm64: mte: Make mte_check_tfsr_*() conditional on KASAN instead of MTE

Puranjay Mohan (2):
arm64/arch_timer: include <linux/percpu.h>
arm64: implement raw_smp_processor_id() using thread_info

Rob Herring (Arm) (5):
perf: arm_pmuv3: Avoid assigning fixed cycle counter with threshold
perf: arm_pmuv3: Drop unnecessary IS_ENABLED(CONFIG_ARM64) check
perf/arm: Move 32-bit PMU drivers to drivers/perf/
perf: arm_v6/7_pmu: Drop non-DT probe support
perf: arm_pmuv3: Include asm/arm_pmuv3.h from linux/perf/arm_pmuv3.h

Seongsu Park (1):
arm64: Cleanup __cpu_set_tcr_t0sz()

Sudeep Holla (3):
ACPI: arm64: Sort entries alphabetically
arm64: cpuidle: Move ACPI specific code into drivers/acpi/arm64/
arm64: FFH: Move ACPI specific code into drivers/acpi/arm64/

Xu Yang (6):
dt-bindings: perf: fsl-imx-ddr: Add i.MX95 compatible
perf: imx_perf: add macro definitions for parsing config attr
perf: imx_perf: let the driver manage the counter usage rather the user
perf: imx_perf: refactor driver for imx93
perf: imx_perf: fix counter start and config sequence
perf: imx_perf: add support for i.MX95 platform

Youwan Wang (1):
ACPI / amba: Drop unnecessary check for registered amba_dummy_clk

Documentation/ABI/testing/sysfs-devices-system-cpu | 6 +
Documentation/admin-guide/kernel-parameters.txt | 10 +-
Documentation/arch/arm64/cpu-hotplug.rst | 79 +++++
Documentation/arch/arm64/index.rst | 1 +
Documentation/arch/arm64/memory.rst | 42 ++-
Documentation/arch/arm64/silicon-errata.rst | 16 +-
Documentation/devicetree/bindings/arm/pmu.yaml | 6 +
.../devicetree/bindings/perf/fsl-imx-ddr.yaml | 3 +
arch/arm/kernel/Makefile | 2 -
arch/arm64/Kconfig | 41 +--
arch/arm64/include/asm/acpi.h | 12 +
arch/arm64/include/asm/arch_gicv3.h | 15 -
arch/arm64/include/asm/arch_timer.h | 2 +-
arch/arm64/include/asm/arm_pmuv3.h | 2 +-
arch/arm64/include/asm/cpucaps.h | 2 +-
arch/arm64/include/asm/cpufeature.h | 4 +-
arch/arm64/include/asm/cputype.h | 6 +
arch/arm64/include/asm/esr.h | 33 +-
arch/arm64/include/asm/mmu_context.h | 4 +-
arch/arm64/include/asm/mte.h | 4 +-
arch/arm64/include/asm/ptrace.h | 33 +-
arch/arm64/include/asm/smp.h | 13 +-
arch/arm64/include/asm/sysreg.h | 4 -
arch/arm64/kernel/Makefile | 1 -
arch/arm64/kernel/acpi.c | 129 ++------
arch/arm64/kernel/acpi_numa.c | 11 -
arch/arm64/kernel/cpu_errata.c | 17 +-
arch/arm64/kernel/cpufeature.c | 5 +-
arch/arm64/kernel/image-vars.h | 5 -
arch/arm64/kernel/proton-pack.c | 2 +-
arch/arm64/kernel/psci.c | 2 +-
arch/arm64/kernel/reloc_test_core.c | 1 +
arch/arm64/kernel/smp.c | 74 ++++-
arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 10 +-
arch/arm64/kvm/hyp/nvhe/pkvm.c | 4 +-
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 2 +-
arch/arm64/kvm/pmu-emul.c | 1 -
drivers/acpi/acpi_processor.c | 145 +++++----
drivers/acpi/arm64/Makefile | 6 +-
drivers/acpi/arm64/amba.c | 6 +-
.../arm64/kernel => drivers/acpi/arm64}/cpuidle.c | 4 -
drivers/acpi/arm64/ffh.c | 107 +++++++
drivers/acpi/processor_core.c | 3 +-
drivers/acpi/processor_driver.c | 43 +--
drivers/acpi/scan.c | 47 ++-
drivers/base/cpu.c | 12 +-
drivers/irqchip/irq-gic-common.c | 22 +-
drivers/irqchip/irq-gic-common.h | 7 +-
drivers/irqchip/irq-gic-v3-its.c | 11 +-
drivers/irqchip/irq-gic-v3.c | 282 ++++++++--------
drivers/irqchip/irq-gic.c | 10 +-
drivers/irqchip/irq-hip04.c | 6 +-
drivers/perf/Kconfig | 12 +
drivers/perf/Makefile | 3 +
drivers/perf/arm-ccn.c | 1 +
drivers/perf/arm-cmn.c | 116 +++++--
drivers/perf/arm_cspmu/ampere_cspmu.c | 1 +
drivers/perf/arm_cspmu/arm_cspmu.c | 1 +
drivers/perf/arm_cspmu/nvidia_cspmu.c | 1 +
drivers/perf/arm_pmuv3.c | 26 +-
.../perf_event_v6.c => drivers/perf/arm_v6_pmu.c | 20 +-
.../perf_event_v7.c => drivers/perf/arm_v7_pmu.c | 13 +-
.../perf/arm_xscale_pmu.c | 3 -
drivers/perf/cxl_pmu.c | 1 +
drivers/perf/fsl_imx8_ddr_perf.c | 1 +
drivers/perf/fsl_imx9_ddr_perf.c | 354 +++++++++++++++------
drivers/perf/hisilicon/hisi_uncore_pmu.c | 1 +
drivers/perf/marvell_cn10k_ddr_pmu.c | 1 +
include/acpi/acpi_bus.h | 1 +
include/acpi/processor.h | 2 +-
include/linux/acpi.h | 12 +-
include/linux/cpumask.h | 25 ++
include/linux/irqchip/arm-gic-common.h | 4 -
include/linux/irqchip/arm-gic-v3-prio.h | 52 +++
include/linux/irqchip/arm-gic-v3.h | 2 +-
include/linux/perf/arm_pmuv3.h | 2 +
include/linux/wordpart.h | 8 +
kernel/cpu.c | 3 +
tools/testing/selftests/arm64/abi/ptrace.c | 2 +-
tools/testing/selftests/arm64/fp/.gitignore | 1 +
tools/testing/selftests/arm64/fp/Makefile | 1 +
tools/testing/selftests/arm64/fp/fp-stress.c | 26 +-
tools/testing/selftests/arm64/fp/kernel-test.c | 324 +++++++++++++++++++
tools/testing/selftests/arm64/tags/Makefile | 1 -
.../testing/selftests/arm64/tags/run_tags_test.sh | 12 -
tools/testing/selftests/arm64/tags/tags_test.c | 10 +-
86 files changed, 1606 insertions(+), 752 deletions(-)
create mode 100644 Documentation/arch/arm64/cpu-hotplug.rst
rename {arch/arm64/kernel => drivers/acpi/arm64}/cpuidle.c (97%)
create mode 100644 drivers/acpi/arm64/ffh.c
rename arch/arm/kernel/perf_event_v6.c => drivers/perf/arm_v6_pmu.c (95%)
rename arch/arm/kernel/perf_event_v7.c => drivers/perf/arm_v7_pmu.c (99%)
rename arch/arm/kernel/perf_event_xscale.c => drivers/perf/arm_xscale_pmu.c (99%)
create mode 100644 include/linux/irqchip/arm-gic-v3-prio.h
create mode 100644 tools/testing/selftests/arm64/fp/kernel-test.c
delete mode 100755 tools/testing/selftests/arm64/tags/run_tags_test.sh