linux-stable/arch/arm64/include/asm
Ilkka Koskinen 403edfa436 arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers
The driver used to truncate several 64-bit registers such as PMCEID[n]
registers used to describe whether architectural and microarchitectural
events in range 0x4000-0x401f exist. Due to discarding the bits, the
driver made the events invisible, even if they existed.

Moreover, PMCCFILTR and PMCR registers have additional bits in the upper
32 bits. This patch makes them available although they aren't currently
used. Finally, functions handling PMXEVCNTR and PMXEVTYPER registers are
removed as they not being used at all.

Fixes: df29ddf4f0 ("arm64: perf: Abstract system register accesses away")
Reported-by: Carl Worth <carl@os.amperecomputing.com>
Signed-off-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Acked-by: Will Deacon <will@kernel.org>
Closes: https://lore.kernel.org/..
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/20231102183012.1251410-1-ilkka@os.amperecomputing.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-11-07 11:00:57 +00:00
..
stacktrace arm64: stacktrace: track hyp stacks in unwinder's address space 2022-09-09 12:30:08 +01:00
vdso arm64: vdso: use SYS_CNTVCTSS_EL0 for gettimeofday 2022-09-09 12:27:25 +01:00
xen arm/xen: Introduce xen_setup_dma_ops() 2022-06-06 08:54:33 +02:00
acenv.h
acpi.h arm_pmu: acpi: Add a representative platform device for TRBE 2023-08-18 18:07:10 +01:00
alternative-macros.h arm64: Add cpucap_is_possible() 2023-10-16 12:57:47 +01:00
alternative.h Merge branches 'for-next/kpti', 'for-next/missing-proto-warn', 'for-next/iss2-decode', 'for-next/kselftest', 'for-next/misc', 'for-next/feat_mops', 'for-next/module-alloc', 'for-next/sysreg', 'for-next/cpucap', 'for-next/acpi', 'for-next/kdump', 'for-next/acpi-doc', 'for-next/doc' and 'for-next/tpidr2-fix', remote-tracking branch 'arm64/for-next/perf' into for-next/core 2023-06-23 18:32:20 +01:00
apple_m1_pmu.h drivers/perf: Add Apple icestorm/firestorm CPU PMU driver 2022-03-08 13:32:48 +00:00
arch_gicv3.h arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_CAVIUM_23154 2023-10-16 14:17:07 +01:00
arch_timer.h arm64/arch_timer: Provide noinstr sched_clock_read() functions 2023-06-05 21:11:05 +02:00
archrandom.h arm64: Avoid cpus_have_const_cap() for ARM64_HAS_RNG 2023-10-16 14:17:05 +01:00
arm-cci.h
arm_dsu_pmu.h
arm_pmuv3.h arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers 2023-11-07 11:00:57 +00:00
asm-bug.h bug: Use normal relative pointers in 'struct bug_entry' 2022-05-19 23:46:10 +02:00
asm-extable.h arm64: extable: cleanup redundant extable type EX_TYPE_FIXUP 2022-06-28 12:11:47 +01:00
asm-offsets.h
asm-prototypes.h kasan: arm64: support specialized outlined tag mismatch checks 2021-05-26 23:31:26 +01:00
asm-uaccess.h arm64/mm: remove now-superfluous ISBs from TTBR writes 2023-06-15 17:47:54 +01:00
asm_pointer_auth.h arm64/sysreg: Add _EL1 into ID_AA64ISAR2_EL1 definition names 2022-07-05 11:45:46 +01:00
assembler.h Merge branch 'for-next/trivial' into for-next/core 2022-12-06 11:33:29 +00:00
atomic.h locking/atomic: make atomic*_{cmp,}xchg optional 2023-06-05 09:57:14 +02:00
atomic_ll_sc.h arch: Remove cmpxchg_double 2023-06-05 09:36:39 +02:00
atomic_lse.h arch: Remove cmpxchg_double 2023-06-05 09:36:39 +02:00
barrier.h arm64: uaccess: permit __smp_store_release() to use zero register 2023-03-28 21:13:25 +01:00
bitops.h include: move find.h from asm_generic to linux 2022-01-15 08:47:31 -08:00
bitrev.h
boot.h
brk-imm.h arm64: Support Clang UBSAN trap codes for better reporting 2023-02-08 15:26:58 -08:00
bug.h
cache.h arm64: allow kmalloc() caches aligned to the smaller cache_line_size() 2023-06-19 16:19:22 -07:00
cacheflush.h arm64: Avoid cpus_have_const_cap() for ARM64_HAS_CACHE_DIC 2023-10-16 14:17:04 +01:00
checksum.h arm64: csum: cast to the proper type 2021-03-15 10:57:21 +00:00
clocksource.h
cmpxchg.h arch: Remove cmpxchg_double 2023-06-05 09:36:39 +02:00
compat.h arm64: avoid prototype warnings for syscalls 2023-05-25 17:44:01 +01:00
compiler.h arm64: move PAC masks to <asm/pointer_auth.h> 2023-04-13 12:27:11 +01:00
cpu.h arm64/sve: Remove SMCR pseudo register from cpufeature code 2023-09-25 16:14:49 +01:00
cpu_ops.h arm64: cpuidle: remove generic cpuidle support 2022-06-23 14:19:33 +01:00
cpucaps.h arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_REPEAT_TLBI 2023-10-16 14:17:07 +01:00
cpufeature.h Merge branch 'for-next/cpus_have_const_cap' into for-next/core 2023-10-26 17:10:18 +01:00
cpuidle.h arm64: cpuidle: remove generic cpuidle support 2022-06-23 14:19:33 +01:00
cputype.h clocksource/drivers/arm_arch_timer: limit XGene-1 workaround 2023-10-18 10:58:59 +01:00
current.h
daifflags.h arm64: entry: always set GIC_PRIO_PSR_I_SET during entry 2021-05-05 18:13:58 +01:00
dcc.h
debug-monitors.h arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step 2023-04-14 13:39:47 +01:00
device.h
dmi.h
efi.h Merge patch series "riscv: Introduce KASLR" 2023-09-08 11:25:13 -07:00
el2_setup.h KVM: arm64: Disable SME traps for (h)VHE at setup 2023-07-26 17:08:29 +00:00
elf.h arm64: exec: Adjust affinity for compat tasks with mismatched 32-bit EL0 2021-08-20 12:33:06 +02:00
esr.h Merge branches 'for-next/kpti', 'for-next/missing-proto-warn', 'for-next/iss2-decode', 'for-next/kselftest', 'for-next/misc', 'for-next/feat_mops', 'for-next/module-alloc', 'for-next/sysreg', 'for-next/cpucap', 'for-next/acpi', 'for-next/kdump', 'for-next/acpi-doc', 'for-next/doc' and 'for-next/tpidr2-fix', remote-tracking branch 'arm64/for-next/perf' into for-next/core 2023-06-23 18:32:20 +01:00
exception.h Merge branches 'for-next/kpti', 'for-next/missing-proto-warn', 'for-next/iss2-decode', 'for-next/kselftest', 'for-next/misc', 'for-next/feat_mops', 'for-next/module-alloc', 'for-next/sysreg', 'for-next/cpucap', 'for-next/acpi', 'for-next/kdump', 'for-next/acpi-doc', 'for-next/doc' and 'for-next/tpidr2-fix', remote-tracking branch 'arm64/for-next/perf' into for-next/core 2023-06-23 18:32:20 +01:00
exec.h
extable.h arm64/bpf: Remove 128MB limit for BPF JIT programs 2021-11-08 22:16:26 +01:00
fb.h arch/arm64: Implement <asm/fb.h> with generic helpers 2023-04-20 10:04:27 +02:00
fixmap.h arm64: mm: always map fixmap at page granularity 2023-04-11 18:55:28 +01:00
fpsimd.h Merge branch 'for-next/cpus_have_const_cap' into for-next/core 2023-10-26 17:10:18 +01:00
fpsimdmacros.h arm64: sme: Use STR P to clear FFR context field in streaming SVE mode 2023-06-29 11:29:31 +01:00
ftrace.h tracing: arm64: Avoid missing-prototype warnings 2023-07-12 12:06:04 -04:00
futex.h arm64: extable: add a dedicated uaccess handler 2021-10-21 10:45:22 +01:00
gpr-num.h arm64: gpr-num: support W registers 2021-10-21 10:45:22 +01:00
hardirq.h
hugetlb.h arm64: include asm/cacheflush.h in asm/hugetlb.h 2023-08-21 13:38:00 -07:00
hw_breakpoint.h arm64: move cpu_suspend_set_dbg_restorer() prototype to header 2023-05-25 17:44:01 +01:00
hwcap.h arm64: add FEAT_LSE128 HWCAP 2023-10-13 19:12:34 +01:00
hyp_image.h KVM: arm64: Allow using kvm_nvhe_sym() in hyp code 2021-03-19 12:01:20 +00:00
hyperv-tlfs.h PCI: hv: Add arm64 Hyper-V vPCI support 2022-01-12 08:24:29 -06:00
hypervisor.h arm/arm64: Probe for the presence of KVM hypervisor 2021-03-31 09:16:55 +01:00
image.h arm64: Fix dangling references to Documentation/arm64 2023-06-21 08:53:31 -06:00
insn-def.h arm64: move AARCH64_BREAK_FAULT into insn-def.h 2022-02-22 21:25:48 +00:00
insn.h arm64: insn: Add encoders for LDRSB/LDRSH/LDRSW 2023-08-18 15:45:34 +02:00
io.h arm64 : mm: add wrapper function ioremap_prot() 2023-08-18 10:12:36 -07:00
irq.h arm64: smp: Add arch support for backtrace using pseudo-NMI 2023-09-25 17:15:28 +01:00
irq_work.h arm64: smp: Add missing prototype for some smp.c functions 2021-03-29 10:41:42 +01:00
irqflags.h arm64: Avoid cpus_have_const_cap() for ARM64_HAS_GIC_PRIO_MASKING 2023-10-16 14:17:04 +01:00
jump_label.h arm64: jump_label: mark arguments as const to satisfy asm constraints 2022-11-07 15:59:14 +00:00
kasan.h arm64: kasan: simplify and inline MTE functions 2021-02-26 09:41:03 -08:00
Kbuild arm64: Factor out cpucap definitions 2023-10-16 12:57:45 +01:00
kernel-pgtable.h arm64: fix build warning for ARM64_MEMSTART_SHIFT 2023-08-04 17:19:44 +01:00
kexec.h arm64: kdump : take off the protection on crashkernel memory region 2023-04-11 19:24:46 +01:00
kfence.h mm,kfence: decouple kfence from page granularity mapping judgement 2023-03-27 16:15:20 +01:00
kgdb.h
kprobes.h kprobes: treewide: Make it harder to refer kretprobe_trampoline directly 2021-09-30 21:24:06 -04:00
kvm_arm.h Merge branch kvm-arm64/6.6/misc into kvmarm-master/next 2023-08-28 09:30:32 +01:00
kvm_asm.h KVM/arm64 updates for Linux 6.6 2023-08-31 13:18:53 -04:00
kvm_emulate.h arm64: kvm: Use cpus_have_final_cap() explicitly 2023-10-16 12:57:56 +01:00
kvm_host.h arm64: kvm: Use cpus_have_final_cap() explicitly 2023-10-16 12:57:56 +01:00
kvm_hyp.h KVM: arm64: nvhe: Ignore SVE hint in SMCCC function ID 2023-09-12 13:07:37 +01:00
kvm_mmu.h arm64: kvm: Use cpus_have_final_cap() explicitly 2023-10-16 12:57:56 +01:00
kvm_mte.h KVM: arm64: Save/restore MTE registers 2021-06-22 14:08:05 +01:00
kvm_nested.h KVM: arm64: nv: Add trap forwarding infrastructure 2023-08-17 10:00:27 +01:00
kvm_pgtable.h KVM: arm64: Define kvm_tlb_flush_vmid_range() 2023-08-17 09:40:35 +01:00
kvm_pkvm.h KVM: arm64: pkvm: Add support for fragmented FF-A descriptors 2023-06-01 21:34:51 +00:00
kvm_ptrauth.h
kvm_ras.h KVM: arm64: Treat ESR_EL2 as a 64-bit register 2022-04-29 19:26:27 +01:00
kvm_types.h
linkage.h arm64: Extend support for CONFIG_FUNCTION_ALIGNMENT 2023-01-24 11:49:43 +00:00
lse.h arm64: Remove system_uses_lse_atomics() 2023-10-18 10:58:59 +01:00
memory.h asm-generic updates for 6.5 2023-07-06 10:06:04 -07:00
mman.h arm64/mm: enable ARCH_HAS_VM_GET_PAGE_PROT 2022-04-28 23:16:13 -07:00
mmu.h arm64: Avoid cpus_have_const_cap() for ARM64_UNMAP_KERNEL_AT_EL0 2023-10-16 14:17:06 +01:00
mmu_context.h arm64: Avoid cpus_have_const_cap() for ARM64_HAS_CNP 2023-10-16 14:17:04 +01:00
mmzone.h
module.h arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_843419 2023-10-16 14:17:06 +01:00
module.lds.h arm64: module: mandate MODULE_PLTS 2023-06-06 17:39:05 +01:00
mshyperv.h arm64: hyperv: Add Hyper-V hypercall and register access utilities 2021-08-04 16:54:36 +00:00
mte-def.h arm64: mte: Define the number of bytes for storing the tags in a page 2022-02-15 22:53:29 +00:00
mte-kasan.h arm64: mte: rename TCO routines 2023-04-05 19:42:43 -07:00
mte.h arm64/mm: Hoist synchronization out of set_ptes() loop 2023-10-16 18:27:31 +01:00
neon-intrinsics.h
neon.h
numa.h
page-def.h
page.h mm: add vma_alloc_zeroed_movable_folio() 2023-02-02 22:33:18 -08:00
paravirt.h x86/paravirt: Switch time pvops functions to use static_call() 2021-03-11 16:17:52 +01:00
paravirt_api_clock.h sched/headers: Add initial new headers as identity mappings 2022-02-23 10:58:28 +01:00
patching.h arm64: patching: Add aarch64_insn_write_literal_u64() 2023-01-24 11:49:43 +00:00
pci.h asm-generic: Add new pci.h and use it 2022-07-22 17:34:57 -05:00
percpu.h arch: Remove cmpxchg_double 2023-06-05 09:36:39 +02:00
perf_event.h arm64: perf: Move PMUv3 driver to drivers/perf 2023-03-27 14:01:18 +01:00
pgalloc.h arm64: mm: Fix VM_BUG_ON(mm != &init_mm) for trans_pgd 2021-11-16 10:12:57 +00:00
pgtable-hwdef.h arm64: add encodings of PIRx_ELx registers 2023-06-06 16:52:41 +01:00
pgtable-prot.h arm64: Avoid cpus_have_const_cap() for ARM64_HAS_BTI 2023-10-16 14:17:04 +01:00
pgtable-types.h
pgtable.h arm64: Mark the 'addr' argument to set_ptes() and __set_pte_at() as unused 2023-10-18 10:58:31 +01:00
pointer_auth.h arm64: move PAC masks to <asm/pointer_auth.h> 2023-04-13 12:27:11 +01:00
preempt.h arm64: Support PREEMPT_DYNAMIC 2022-02-19 11:11:09 +01:00
probes.h
proc-fns.h
processor.h locking: remove spin_lock_prefetch 2023-08-12 09:18:47 -07:00
ptdump.h ARM: 9255/1: efi/dump UEFI runtime page tables for ARM 2022-11-07 14:19:01 +00:00
ptrace.h arm64: rename ARM64_HAS_IRQ_PRIO_MASKING to ARM64_HAS_GIC_PRIO_MASKING 2023-01-31 16:06:17 +00:00
pvclock-abi.h
rwonce.h arm64: Do not include __READ_ONCE() block in assembly files 2022-03-09 21:56:50 +00:00
scs.h arm64: add scs_patch_vmlinux prototype 2023-05-25 17:44:01 +01:00
sdei.h arm64: sdei: abort running SDEI handlers during crash 2023-08-04 17:35:33 +01:00
seccomp.h
sections.h arm64: entry: Allow the trampoline text to occupy multiple pages 2022-02-15 17:40:28 +00:00
semihost.h serial: earlycon-arm-semihost: Move smh_putc() variants in respective arch's semihost.h 2023-01-19 14:58:19 +01:00
set_memory.h set_memory: allow querying whether set_direct_map_*() is actually enabled 2021-07-08 11:48:20 -07:00
setup.h arm64: fix rodata=full 2022-08-23 11:02:02 +01:00
shmparam.h
signal.h
signal32.h
simd.h arm64: replace in_irq() with in_hardirq() 2021-08-20 19:49:38 +01:00
smp.h arm64: smp: Remove dedicated wakeup IPI 2023-09-25 17:15:28 +01:00
smp_plat.h arm64: Add missing header <asm/smp.h> in two files 2021-07-12 13:37:34 +01:00
sparsemem.h mm, treewide: redefine MAX_ORDER sanely 2023-04-05 19:42:46 -07:00
spectre.h arm64: Avoid cpus_have_const_cap() for ARM64_SPECTRE_V2 2023-10-16 14:17:05 +01:00
spinlock.h
spinlock_types.h locking: Allow to include asm/spinlock_types.h from linux/spinlock_types_raw.h 2021-12-07 15:14:12 +01:00
stack_pointer.h
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h arm64: efi: Account for the EFI runtime stack in stack unwinder 2023-01-16 15:27:31 +01:00
stage2_pgtable.h KVM: arm64: Limit stage2_apply_range() batch size to largest block 2022-10-09 02:33:49 +01:00
stat.h
string.h Revert "arm64: Mitigate MTE issues with str{n}cmp()" 2022-03-07 21:57:02 +00:00
suspend.h
sync_bitops.h
syscall.h tracing: arm64: Avoid missing-prototype warnings 2023-07-12 12:06:04 -04:00
syscall_wrapper.h arm64: avoid prototype warnings for syscalls 2023-05-25 17:44:01 +01:00
sysreg.h ARM: 2023-09-07 13:52:20 -07:00
system_misc.h arm64: die(): pass 'err' as long 2022-09-16 12:17:03 +01:00
thread_info.h thread_info: move function declarations to linux/thread_info.h 2023-06-09 17:44:16 -07:00
timex.h
tlb.h arm64: convert various functions to use ptdescs 2023-08-21 13:37:55 -07:00
tlbbatch.h arm64: support batched/deferred tlb shootdown during page reclamation/migration 2023-08-18 10:12:37 -07:00
tlbflush.h arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_REPEAT_TLBI 2023-10-16 14:17:07 +01:00
topology.h arm64, topology: enable use of init_cpu_capacity_cppc() 2022-03-10 20:21:58 +01:00
trans_pgd.h arm64: trans_pgd: remove trans_pgd_map_page() 2021-10-01 13:31:01 +01:00
traps.h arm64: move early_brk64 prototype to header 2023-05-25 17:44:03 +01:00
uaccess.h arm64/mm: remove now-superfluous ISBs from TTBR writes 2023-06-15 17:47:54 +01:00
unistd.h arch: Register fchmodat2, usually as syscall 452 2023-07-27 12:25:35 +02:00
unistd32.h arch: Register fchmodat2, usually as syscall 452 2023-07-27 12:25:35 +02:00
uprobes.h arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning 2023-01-05 15:26:09 +00:00
vdso.h arm64: alternative: patch alternatives in the vDSO 2022-09-09 12:27:25 +01:00
vectors.h arm64: Avoid cpus_have_const_cap() for ARM64_UNMAP_KERNEL_AT_EL0 2023-10-16 14:17:06 +01:00
vermagic.h
virt.h KVM: arm64: Handle kvm_arm_init failure correctly in finalize_pkvm 2023-07-11 19:30:14 +00:00
vmalloc.h kasan, vmalloc, arm64: mark vmalloc mappings as pgprot_tagged 2022-03-24 19:06:47 -07:00
vmap_stack.h kasan, arm64: reset pointer tags of vmapped stacks 2022-03-24 19:06:47 -07:00
word-at-a-time.h arm64: mte: rename TCO routines 2023-04-05 19:42:43 -07:00
xor.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00