/linux/Documentation/devicetree/bindings/perf/ |
H A D | spe-pmu.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/perf/spe-pmu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ARMv8.2 Statistical Profiling Extension (SPE) Performance Monitor Units (PMU) 10 - Will Deacon <will@kernel.org> 14 performance sample data using an in-memory trace buffer. 18 const: arm,statistical-profiling-extension-v1 23 The PPI to signal SPE events. For heterogeneous systems where SPE is only 24 supported on a subset of the CPUs, please consult the arm,gic-v3 binding [all …]
|
/linux/arch/arm64/kvm/hyp/nvhe/ |
H A D | switch.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2015 - ARM Ltd 8 #include <hyp/sysreg-sr.h> 10 #include <linux/arm-smccc.h> 26 #include <asm/debug-monitors.h> 31 /* Non-VHE specific context */ 52 ___activate_traps(vcpu, vcpu->arch.hcr_el2); in __activate_traps() 59 struct kvm_cpu_context *ctxt = &vcpu->arch.ctxt; in __activate_traps() 98 write_sysreg_hcr(this_cpu_ptr(&kvm_init_params)->hcr_el2); in __deactivate_traps() 104 /* Save VGICv3 state on non-VHE systems */ [all …]
|
/linux/tools/perf/tests/shell/ |
H A D | test_arm_spe_fork.sh | 2 # Check Arm SPE doesn't hang when there are forks 4 # SPDX-License-Identifier: GPL-2.0 8 perf list pmu | grep -E -q 'arm_spe_[0-9]+//' && return 0 14 TEST_PROGRAM="perf test -w sqrtloop 10" 21 rm -f ${PERF_RECORD_LOG} 22 rm -f ${PERF_DATA} 28 perf record -o ${PERF_DATA} -e arm_spe/period=65536/ -vvv -- $TEST_PROGRAM > ${PERF_RECORD_LOG} 2>&… 31 # Check if perf hangs by checking the perf-record logs. 33 log0=$(wc -l $PERF_RECORD_LOG) 36 log1=$(wc -l $PERF_RECORD_LOG) [all …]
|
H A D | test_arm_spe.sh | 2 # Check Arm SPE trace data recording and synthesized samples (exclusive) 4 # Uses the 'perf record' to record trace data of Arm SPE events; 5 # then verify if any SPE event samples are generated by SPE with 8 # SPDX-License-Identifier: GPL-2.0 12 perf list pmu | grep -E -q 'arm_spe_[0-9]+//' && return 0 25 rm -f ${perfdata} 26 rm -f ${perfdata}.old 46 # from arm-spe.c/arm_spe_synth_events() 47 …events="(ld1-miss|ld1-access|llc-miss|lld-access|tlb-miss|tlb-access|branch-miss|remote-access|mem… 50 …# dd 3048 [002] 1 l1d-access: ffffaa64999c __GI___libc_write+0x3c (/lib/aarch64-… [all …]
|
/linux/tools/perf/arch/arm/util/ |
H A D | pmu.c | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <linux/coresight-pmu.h> 12 #include "arm-spe.h" 13 #include "hisi-ptt.h" 15 #include "../../../util/pmu.h" 16 #include "../../../util/cs-etm.h" 17 #include "../../arm64/util/mem-events.h" 19 void perf_pmu__arch_init(struct perf_pmu *pmu) in perf_pmu__arch_init() argument 24 if (!strcmp(pmu->name, CORESIGHT_ETM_PMU_NAME)) { in perf_pmu__arch_init() 26 pmu->auxtrace = true; in perf_pmu__arch_init() [all …]
|
H A D | auxtrace.c | 1 // SPDX-License-Identifier: GPL-2.0 9 #include <linux/coresight-pmu.h> 16 #include "../../../util/pmu.h" 18 #include "cs-etm.h" 19 #include "arm-spe.h" 20 #include "hisi-ptt.h" 32 *err = -ENOMEM; in find_all_arm_spe_pmus() 40 *err = -ENOMEM; in find_all_arm_spe_pmus() 48 arm_spe_pmus[*nr_spes]->type, in find_all_arm_spe_pmus() 49 arm_spe_pmus[*nr_spes]->name); in find_all_arm_spe_pmus() [all …]
|
/linux/drivers/perf/ |
H A D | arm_pmu_acpi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 29 gsi = gicc->performance_interrupt; in arm_pmu_acpi_register_irq() 32 * Per the ACPI spec, the MADT cannot describe a PMU that doesn't in arm_pmu_acpi_register_irq() 41 if (gicc->flags & ACPI_MADT_PERFORMANCE_IRQ_MODE) in arm_pmu_acpi_register_irq() 67 gsi = gicc->performance_interrupt; in arm_pmu_acpi_unregister_irq() 83 if (pdev->num_resources != 1) in arm_acpi_register_pmu_device() 84 return -ENXIO; in arm_acpi_register_pmu_device() 86 if (pdev->resource[0].flags != IORESOURCE_IRQ) in arm_acpi_register_pmu_device() 87 return -ENXIO; in arm_acpi_register_pmu_device() 97 if (gicc->header.length < len) in arm_acpi_register_pmu_device() [all …]
|
H A D | arm_spe_pmu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 54 event->hw.flags |= SPE_PMU_HW_FLAGS_CX; in set_spe_event_has_cx() 59 return !!(event->hw.flags & SPE_PMU_HW_FLAGS_CX); in get_spe_event_has_cx() 71 struct pmu pmu; member 97 #define to_spe_pmu(p) (container_of(p, struct arm_spe_pmu, pmu)) 99 /* Convert a free-running index from perf into an SPE buffer offset */ 100 #define PERF_IDX2OFF(idx, buf) ((idx) % ((buf)->nr_pages << PAGE_SHIFT)) 128 return !!(spe_pmu->features & arm_spe_pmu_feat_caps[cap]); in arm_spe_pmu_cap_get() 132 return spe_pmu->counter_sz; in arm_spe_pmu_cap_get() 134 return spe_pmu->min_period; in arm_spe_pmu_cap_get() [all …]
|
/linux/tools/perf/arch/arm64/util/ |
H A D | Build | 1 perf-util-y += header.o 2 perf-util-y += machine.o 3 perf-util-y += perf_regs.o 4 perf-util-y += tsc.o 5 perf-util-y += pmu.o 6 perf-util-$(CONFIG_LIBTRACEEVENT) += kvm-stat.o 7 perf-util-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind.o 8 perf-util-$(CONFIG_LIBDW_DWARF_UNWIND) += unwind-libdw.o 10 perf-util-$(CONFIG_AUXTRACE) += ../../arm/util/pmu.o \ 12 ../../arm/util/cs-etm.o \ [all …]
|
/linux/tools/perf/util/ |
H A D | arm-spe.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Arm Statistical Profiling Extensions (SPE) support 4 * Copyright (c) 2017-2018, Arm Ltd. 28 #include "thread-stack.h" 31 #include "util/synthetic-events.h" 33 #include "arm-spe.h" 34 #include "arm-spe-decoder/arm-spe-decoder.h" 35 #include "arm-spe-decoder/arm-spe-pkt-decoder.h" 90 struct arm_spe *spe; member 121 static void arm_spe_dump(struct arm_spe *spe __maybe_unused, in arm_spe_dump() [all …]
|
H A D | arm-spe.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Arm Statistical Profiling Extensions (SPE) support 4 * Copyright (c) 2017-2018, Arm Ltd. 30 /* PMU type shared by CPUs */ 46 /* Associated PMU type */
|
H A D | Build | 4 perf-util-y += arm64-frame-pointer-unwind-support.o 5 perf-util-y += addr_location.o 6 perf-util-y += annotate.o 7 perf-util-y += block-info.o 8 perf-util-y += block-range.o 9 perf-util-y += build-id.o 10 perf-util-y += cacheline.o 11 perf-util-y += config.o 12 perf-util-y += copyfile.o 13 perf-util-y += ctype.o [all …]
|
/linux/tools/perf/Documentation/ |
H A D | perf-c2c.txt | 1 perf-c2c(1) 5 ---- 6 perf-c2c - Shared Data C2C/HITM Analyzer. 9 -------- 12 'perf c2c record' [<options>] \-- [<record command options>] <command> 16 ----------- 24 with thresholding feature. On AMD, the tool uses IBS op pmu (due to hardware 25 limitations, perf c2c is not supported on Zen3 cpus). On Arm64 it uses SPE to 27 required. See linkperf:perf-arm-spe[1] for a setup guide. Due to the 28 statistical nature of Arm SPE sampling, not every memory operation will be [all …]
|
H A D | perf-mem.txt | 1 perf-mem(1) 5 ---- 6 perf-mem - Profile memory accesses 9 -------- 14 ----------- 20 and stores are sampled. Use the -t option to limit to loads or stores. 22 Note that on Intel systems the memory latency reported is the use-latency, 26 On Arm64 this uses SPE to sample load and store operations, therefore hardware 27 and kernel support is required. See linkperf:perf-arm-spe[1] for a setup guide. 28 Due to the statistical nature of SPE sampling, not every memory operation will [all …]
|
H A D | perf.txt | 5 ---- 6 perf - Performance analysis tools for Linux 9 -------- 11 'perf' [--version] [--help] [OPTIONS] COMMAND [ARGS] 14 ------- 15 -h:: 16 --help:: 19 -v:: 20 --version:: 23 -vv:: [all …]
|
H A D | perf-record.txt | 1 perf-record(1) 5 ---- 6 perf-record - Run a command and record its profile into perf.data 9 -------- 11 'perf record' [-e <EVENT> | --event=EVENT] [-a] <command> 12 'perf record' [-e <EVENT> | --event=EVENT] [-a] \-- <command> [<options>] 15 ----------- 17 from it, into perf.data - without displaying anything. 23 ------- 27 -e:: [all …]
|
/linux/include/linux/perf/ |
H A D | arm_pmu.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * linux/arch/arm/include/asm/pmu.h 20 * The Armv7 and Armv8.8 or less CPU PMU supports up to 32 event counters. 21 * The Armv8.9/9.4 CPU PMU supports up to 33 event counters. 29 * ARM PMU hw_event flags 44 [0 ... PERF_COUNT_HW_MAX - 1] = HW_OP_UNSUPPORTED 47 [0 ... C(MAX) - 1] = { \ 48 [0 ... C(OP_MAX) - 1] = { \ 49 [0 ... C(RESULT_MAX) - 1] = CACHE_OP_UNSUPPORTED, \ 53 /* The events for a given PMU register set. */ [all …]
|
/linux/Documentation/trace/coresight/ |
H A D | coresight-perf.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 CoreSight - Perf 15 perf record -e cs_etm//u testbinary 22 perf report --stdio --dump -i perf.data 26 …ERF_RECORD_AUXTRACE size: 0x11dd0 offset: 0 ref: 0x1b614fc1061b0ad1 idx: 0 tid: 531230 cpu: -1 48 for the support such as libopencsd and libopencsd-dev or download it 60 ------------------------ 81 Fine-grained tracing with AUX pause and resume 82 ---------------------------------------------- 87 provides AUX pause and resume functionality for fine-grained tracing. [all …]
|
/linux/arch/arm64/boot/dts/arm/ |
H A D | morello.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) 3 * Copyright (c) 2020-2024, Arm Limited. All rights reserved. 6 #include <dt-bindings/interrupt-controller/arm-gic.h> 9 interrupt-parent = <&gic>; 11 #address-cells = <2>; 12 #size-cells = <2>; 14 soc_refclk50mhz: clock-50000000 { 15 compatible = "fixed-clock"; 16 #clock-cells = <0>; 17 clock-frequency = <50000000>; [all …]
|
H A D | fvp-base-revc.dts | 1 // SPDX-License-Identifier: GPL-2.0 5 * Architecture Envelope Model (AEM) ARMv8-A 11 /dts-v1/; 13 #include <dt-bindings/interrupt-controller/arm-gic.h> 17 #include "rtsm_ve-motherboard.dtsi" 18 #include "rtsm_ve-motherboard-rs2.dtsi" 22 compatible = "arm,fvp-base-revc", "arm,vexpress"; 23 interrupt-parent = <&gic>; 24 #address-cells = <2>; 25 #size-cells = <2>; [all …]
|
/linux/drivers/ps3/ |
H A D | ps3-lpm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 18 #include <asm/cell-pmu.h> 66 * struct ps3_lpm_shadow_regs - Performance monitor shadow registers. 73 * The logical performance monitor provides a write-only interface to 91 * struct ps3_lpm_priv - Private lpm device data. 137 * lpm_priv - Static instance of the lpm data. 148 BUG_ON(!lpm_priv || !lpm_priv->sbd); in sbd_core() 149 return &lpm_priv->sbd->core; in sbd_core() 153 * use_start_stop_bookmark - Enable the PPU bookmark trace. 192 * ps3_read_phys_ctr - Read physical counter registers. [all …]
|
/linux/drivers/dma/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 80 depends on 440SPe || 440SP 96 tristate "Arm DMA-350 support" 101 Enable support for the Arm DMA-350 controller. 119 tristate "Analog Devices AXI-DMAC DMA support" 125 Enable support for the Analog Devices AXI-DMAC peripheral. This DMA 161 tristate "SA-11x0 DMA support" 166 Support the DMA engine found on Intel StrongARM SA-1100 and 167 SA-1110 SoCs. This DMA engine can only be used with on-chip 227 This module can be found on Freescale Vybrid and LS-1 SoCs. [all …]
|
/linux/arch/powerpc/kernel/ |
H A D | traps.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) 4 * Copyright 2007-2010 Freescale Semiconductor, Inc. 11 * This file handles the architecture-dependent parts of hardware exceptions 58 #include <asm/ppc-opcode.h> 64 #include <asm/asm-prototypes.h> 122 props = &pmac_backlight->props; in pmac_backlight_unblank() 123 props->brightness = props->max_brightness; in pmac_backlight_unblank() 124 props->power = BACKLIGHT_POWER_ON; in pmac_backlight_unblank() 149 !current->pid || is_global_init(current)) in die_will_crash() [all …]
|
H A D | process.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 10 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) 57 #include <asm/text-patching.h> 61 #include <asm/asm-prototypes.h> 91 if (tsk == current && tsk->thread.regs && in check_if_tm_restore_required() 92 MSR_TM_ACTIVE(tsk->thread.regs->msr) && in check_if_tm_restore_required() 94 regs_set_return_msr(&tsk->thread.ckpt_regs, in check_if_tm_restore_required() 95 tsk->thread.regs->msr); in check_if_tm_restore_required() 156 msr = tsk->thread.regs->msr; in __giveup_fpu() 160 regs_set_return_msr(tsk->thread.regs, msr); in __giveup_fpu() [all …]
|
/linux/arch/arm64/kvm/ |
H A D | sys_regs.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2012,2013 - ARM Ltd 7 * Copyright (C) 2012 - Virtual Open Systems and Columbia University 20 #include <linux/irqchip/arm-gic-v3.h> 25 #include <asm/debug-monitors.h> 74 "sys_reg read to write-only register"); in read_from_write_only() 82 "sys_reg write to read-only register"); in write_to_read_only() 188 * If we have a non-VHE guest and that the sysreg in vcpu_read_sys_reg() 190 * in-memory copy instead. in vcpu_read_sys_reg() 228 * to reverse-translate virtual EL2 system registers for a in vcpu_write_sys_reg() [all …]
|