ds.c (50501936288d6a29d7ef78f25d00e33240fad45f) | ds.c (a430021faad6b4fa86c820fc3e7f8dbfc2f14fb4) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2#include <linux/bitops.h> 3#include <linux/types.h> 4#include <linux/slab.h> 5#include <linux/sched/clock.h> 6 7#include <asm/cpu_entry_area.h> 8#include <asm/perf_event.h> --- 130 unchanged lines hidden (view full) --- 139 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); 140 __intel_pmu_pebs_data_source_skl(false, data_source); 141 142 data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_ATOM_IDX].pebs_data_source; 143 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); 144 __intel_pmu_pebs_data_source_grt(data_source); 145} 146 | 1// SPDX-License-Identifier: GPL-2.0 2#include <linux/bitops.h> 3#include <linux/types.h> 4#include <linux/slab.h> 5#include <linux/sched/clock.h> 6 7#include <asm/cpu_entry_area.h> 8#include <asm/perf_event.h> --- 130 unchanged lines hidden (view full) --- 139 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); 140 __intel_pmu_pebs_data_source_skl(false, data_source); 141 142 data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_ATOM_IDX].pebs_data_source; 143 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); 144 __intel_pmu_pebs_data_source_grt(data_source); 145} 146 |
147static void __init intel_pmu_pebs_data_source_cmt(u64 *data_source) | 147static void __init __intel_pmu_pebs_data_source_cmt(u64 *data_source) |
148{ 149 data_source[0x07] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOPX, FWD); 150 data_source[0x08] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOP, HITM); 151 data_source[0x0a] = OP_LH | P(LVL, LOC_RAM) | LEVEL(RAM) | P(SNOOP, NONE); 152 data_source[0x0b] = OP_LH | LEVEL(RAM) | REM | P(SNOOP, NONE); 153 data_source[0x0c] = OP_LH | LEVEL(RAM) | REM | P(SNOOPX, FWD); 154 data_source[0x0d] = OP_LH | LEVEL(RAM) | REM | P(SNOOP, HITM); 155} 156 157void __init intel_pmu_pebs_data_source_mtl(void) 158{ 159 u64 *data_source; 160 161 data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_CORE_IDX].pebs_data_source; 162 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); 163 __intel_pmu_pebs_data_source_skl(false, data_source); 164 165 data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_ATOM_IDX].pebs_data_source; 166 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); | 148{ 149 data_source[0x07] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOPX, FWD); 150 data_source[0x08] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOP, HITM); 151 data_source[0x0a] = OP_LH | P(LVL, LOC_RAM) | LEVEL(RAM) | P(SNOOP, NONE); 152 data_source[0x0b] = OP_LH | LEVEL(RAM) | REM | P(SNOOP, NONE); 153 data_source[0x0c] = OP_LH | LEVEL(RAM) | REM | P(SNOOPX, FWD); 154 data_source[0x0d] = OP_LH | LEVEL(RAM) | REM | P(SNOOP, HITM); 155} 156 157void __init intel_pmu_pebs_data_source_mtl(void) 158{ 159 u64 *data_source; 160 161 data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_CORE_IDX].pebs_data_source; 162 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); 163 __intel_pmu_pebs_data_source_skl(false, data_source); 164 165 data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_ATOM_IDX].pebs_data_source; 166 memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); |
167 intel_pmu_pebs_data_source_cmt(data_source); | 167 __intel_pmu_pebs_data_source_cmt(data_source); |
168} 169 | 168} 169 |
170void __init intel_pmu_pebs_data_source_cmt(void) 171{ 172 __intel_pmu_pebs_data_source_cmt(pebs_data_source); 173} 174 |
|
170static u64 precise_store_data(u64 status) 171{ 172 union intel_x86_pebs_dse dse; 173 u64 val = P(OP, STORE) | P(SNOOP, NA) | P(LVL, L1) | P(TLB, L2); 174 175 dse.val = status; 176 177 /* --- 2248 unchanged lines hidden --- | 175static u64 precise_store_data(u64 status) 176{ 177 union intel_x86_pebs_dse dse; 178 u64 val = P(OP, STORE) | P(SNOOP, NA) | P(LVL, L1) | P(TLB, L2); 179 180 dse.val = status; 181 182 /* --- 2248 unchanged lines hidden --- |