summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/task-analyzer.py
diff options
context:
space:
mode:
authorFuad Tabba <fuad.tabba@linux.dev>2026-10-09 11:07:18 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2026-10-14 14:32:38 +0100
commit342e62ded77c6ee16d80d48b8e1d2c4ba3b42ab5 (patch)
tree5dd538441facdb2b91cbcc5fe4265abb67bc5d9b /tools/perf/scripts/python/task-analyzer.py
parentcd9df8b01977929b46759376fd418621be9251f0 (diff)
arm64: cpufeature: Read MPAMIDR_EL1 in __cpuinfo_store_cpu()
MPAMIDR_EL1 is the one ID register __cpuinfo_store_cpu() doesn't read. Its read was deferred to init_cpu_features() and update_cpu_features() because it traps on firmware that fails to enable MPAM. Only the sanitised ID_AA64PFR0_EL1 and ID_AA64PFR1_EL1 carried the arm64.nompam override for such firmware. Store ID_AA64PFR0_EL1 through read_cpuid_with_overrides() as well. Then read MPAMIDR_EL1 in __cpuinfo_store_cpu() again, beside GMID_EL1, gated on this CPU's overridden ID_AA64PFR0_EL1 and ID_AA64PFR1_EL1. cpu_data is then complete before init_cpu_features() runs. Other readers of the stored ID_AA64PFR0_EL1 see the override too. With arm64.no32bit_el0, __cpuinfo_store_cpu() no longer reads the AArch32 ID registers. Adding allow_mismatched_32bit_el0 no longer enables 32-bit EL0 either. detect_ftr_has_mpam(), a system-wide test on the sanitised values, stays for the ARM64_MPAM capability. Suggested-by: Will Deacon <will@kernel.org> Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev> Signed-off-by: Will Deacon <will@kernel.org> Reviewed-by: Ben Horgan <ben.horgan@arm.com> Tested-by: Michael Kelley <mhklinux@outlook.com> Tested-by: Jinjie Ruan <ruanjinjie@huawei.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions