Home
last modified time | relevance | path

Searched refs:hwc (Results 1 – 54 of 54) sorted by relevance

/linux-4.4.14/arch/alpha/kernel/
Dperf_event.c252 struct hw_perf_event *hwc, int idx) in alpha_perf_event_set_period() argument
254 long left = local64_read(&hwc->period_left); in alpha_perf_event_set_period()
255 long period = hwc->sample_period; in alpha_perf_event_set_period()
260 local64_set(&hwc->period_left, left); in alpha_perf_event_set_period()
261 hwc->last_period = period; in alpha_perf_event_set_period()
267 local64_set(&hwc->period_left, left); in alpha_perf_event_set_period()
268 hwc->last_period = period; in alpha_perf_event_set_period()
282 local64_set(&hwc->prev_count, (unsigned long)(-left)); in alpha_perf_event_set_period()
307 struct hw_perf_event *hwc, int idx, long ovf) in alpha_perf_event_update() argument
313 prev_raw_count = local64_read(&hwc->prev_count); in alpha_perf_event_update()
[all …]
/linux-4.4.14/arch/s390/include/asm/
Dperf_event.h64 #define OVERFLOW_REG(hwc) ((hwc)->extra_reg.config) argument
65 #define SFB_ALLOC_REG(hwc) ((hwc)->extra_reg.alloc) argument
66 #define RAWSAMPLE_REG(hwc) ((hwc)->config) argument
67 #define TEAR_REG(hwc) ((hwc)->last_tag) argument
68 #define SAMPL_RATE(hwc) ((hwc)->event_base) argument
69 #define SAMPL_FLAGS(hwc) ((hwc)->config_base) argument
70 #define SAMPL_DIAG_MODE(hwc) (SAMPL_FLAGS(hwc) & PERF_CPUM_SF_DIAG_MODE) argument
71 #define SDB_FULL_BLOCKS(hwc) (SAMPL_FLAGS(hwc) & PERF_CPUM_SF_FULL_BLOCKS) argument
/linux-4.4.14/arch/metag/kernel/perf/
Dperf_event.c190 struct hw_perf_event *hwc, int idx) in metag_pmu_event_update() argument
205 prev_raw_count = local64_read(&hwc->prev_count); in metag_pmu_event_update()
208 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in metag_pmu_event_update()
218 local64_sub(delta, &hwc->period_left); in metag_pmu_event_update()
222 struct hw_perf_event *hwc, int idx) in metag_pmu_event_set_period() argument
224 s64 left = local64_read(&hwc->period_left); in metag_pmu_event_set_period()
225 s64 period = hwc->sample_period; in metag_pmu_event_set_period()
229 if (unlikely(period != hwc->last_period)) in metag_pmu_event_set_period()
230 left += period - hwc->last_period; in metag_pmu_event_set_period()
234 local64_set(&hwc->period_left, left); in metag_pmu_event_set_period()
[all …]
/linux-4.4.14/arch/arc/kernel/
Dperf_event.c104 struct hw_perf_event *hwc, int idx) in arc_perf_event_update() argument
106 uint64_t prev_raw_count = local64_read(&hwc->prev_count); in arc_perf_event_update()
114 local64_set(&hwc->prev_count, new_raw_count); in arc_perf_event_update()
116 local64_sub(delta, &hwc->period_left); in arc_perf_event_update()
154 struct hw_perf_event *hwc = &event->hw; in arc_pmu_event_init() local
158 hwc->sample_period = arc_pmu->max_period; in arc_pmu_event_init()
159 hwc->last_period = hwc->sample_period; in arc_pmu_event_init()
160 local64_set(&hwc->period_left, hwc->sample_period); in arc_pmu_event_init()
163 hwc->config = 0; in arc_pmu_event_init()
168 hwc->config |= ARC_REG_PCT_CONFIG_KERN; in arc_pmu_event_init()
[all …]
/linux-4.4.14/arch/x86/kernel/cpu/
Dperf_event_amd_ibs.c73 perf_event_set_period(struct hw_perf_event *hwc, u64 min, u64 max, u64 *hw_period) in perf_event_set_period() argument
75 s64 left = local64_read(&hwc->period_left); in perf_event_set_period()
76 s64 period = hwc->sample_period; in perf_event_set_period()
84 local64_set(&hwc->period_left, left); in perf_event_set_period()
85 hwc->last_period = period; in perf_event_set_period()
91 local64_set(&hwc->period_left, left); in perf_event_set_period()
92 hwc->last_period = period; in perf_event_set_period()
118 struct hw_perf_event *hwc = &event->hw; in perf_event_try_update() local
130 prev_raw_count = local64_read(&hwc->prev_count); in perf_event_try_update()
131 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in perf_event_try_update()
[all …]
Dperf_event_amd_uncore.c76 struct hw_perf_event *hwc = &event->hw; in amd_uncore_read() local
85 prev = local64_read(&hwc->prev_count); in amd_uncore_read()
86 rdpmcl(hwc->event_base_rdpmc, new); in amd_uncore_read()
87 local64_set(&hwc->prev_count, new); in amd_uncore_read()
95 struct hw_perf_event *hwc = &event->hw; in amd_uncore_start() local
98 wrmsrl(hwc->event_base, (u64)local64_read(&hwc->prev_count)); in amd_uncore_start()
100 hwc->state = 0; in amd_uncore_start()
101 wrmsrl(hwc->config_base, (hwc->config | ARCH_PERFMON_EVENTSEL_ENABLE)); in amd_uncore_start()
107 struct hw_perf_event *hwc = &event->hw; in amd_uncore_stop() local
109 wrmsrl(hwc->config_base, hwc->config); in amd_uncore_stop()
[all …]
Dperf_event.c66 struct hw_perf_event *hwc = &event->hw; in x86_perf_event_update() local
69 int idx = hwc->idx; in x86_perf_event_update()
83 prev_raw_count = local64_read(&hwc->prev_count); in x86_perf_event_update()
84 rdpmcl(hwc->event_base_rdpmc, new_raw_count); in x86_perf_event_update()
86 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in x86_perf_event_update()
102 local64_sub(delta, &hwc->period_left); in x86_perf_event_update()
292 set_ext_hw_attr(struct hw_perf_event *hwc, struct perf_event *event) in set_ext_hw_attr() argument
320 hwc->config |= val; in set_ext_hw_attr()
389 struct hw_perf_event *hwc = &event->hw; in x86_setup_perfctr() local
393 hwc->sample_period = x86_pmu.max_period; in x86_setup_perfctr()
[all …]
Dperf_event_intel_uncore_nhmex.c241 struct hw_perf_event *hwc = &event->hw; in nhmex_uncore_msr_enable_event() local
243 if (hwc->idx >= UNCORE_PMC_IDX_FIXED) in nhmex_uncore_msr_enable_event()
244 wrmsrl(hwc->config_base, NHMEX_PMON_CTL_EN_BIT0); in nhmex_uncore_msr_enable_event()
246 wrmsrl(hwc->config_base, hwc->config | NHMEX_PMON_CTL_EN_BIT22); in nhmex_uncore_msr_enable_event()
248 wrmsrl(hwc->config_base, hwc->config | NHMEX_PMON_CTL_EN_BIT0); in nhmex_uncore_msr_enable_event()
345 struct hw_perf_event *hwc = &event->hw; in nhmex_bbox_hw_config() local
346 struct hw_perf_event_extra *reg1 = &hwc->extra_reg; in nhmex_bbox_hw_config()
347 struct hw_perf_event_extra *reg2 = &hwc->branch_reg; in nhmex_bbox_hw_config()
350 ctr = (hwc->config & NHMEX_B_PMON_CTR_MASK) >> in nhmex_bbox_hw_config()
352 ev_sel = (hwc->config & NHMEX_B_PMON_CTL_EV_SEL_MASK) >> in nhmex_bbox_hw_config()
[all …]
Dperf_event_intel_uncore_snb.c76 struct hw_perf_event *hwc = &event->hw; in snb_uncore_msr_enable_event() local
78 if (hwc->idx < UNCORE_PMC_IDX_FIXED) in snb_uncore_msr_enable_event()
79 wrmsrl(hwc->config_base, hwc->config | SNB_UNC_CTL_EN); in snb_uncore_msr_enable_event()
81 wrmsrl(hwc->config_base, SNB_UNC_CTL_EN); in snb_uncore_msr_enable_event()
247 struct hw_perf_event *hwc = &event->hw; in snb_uncore_imc_read_counter() local
249 return (u64)*(unsigned int *)(box->io_addr + hwc->event_base); in snb_uncore_imc_read_counter()
261 struct hw_perf_event *hwc = &event->hw; in snb_uncore_imc_event_init() local
274 if (hwc->sample_period) in snb_uncore_imc_event_init()
362 struct hw_perf_event *hwc = &event->hw; in snb_uncore_imc_event_stop() local
364 if (!(hwc->state & PERF_HES_STOPPED)) { in snb_uncore_imc_event_stop()
[all …]
Dperf_event_p4.c855 static inline int p4_pmu_clear_cccr_ovf(struct hw_perf_event *hwc) in p4_pmu_clear_cccr_ovf() argument
860 rdmsrl(hwc->config_base, v); in p4_pmu_clear_cccr_ovf()
862 wrmsrl(hwc->config_base, v & ~P4_CCCR_OVF); in p4_pmu_clear_cccr_ovf()
873 rdmsrl(hwc->event_base, v); in p4_pmu_clear_cccr_ovf()
905 struct hw_perf_event *hwc = &event->hw; in p4_pmu_disable_event() local
912 (void)wrmsrl_safe(hwc->config_base, in p4_pmu_disable_event()
913 p4_config_unpack_cccr(hwc->config) & ~P4_CCCR_ENABLE & ~P4_CCCR_OVF & ~P4_CCCR_RESERVED); in p4_pmu_disable_event()
951 struct hw_perf_event *hwc = &event->hw; in p4_pmu_enable_event() local
952 int thread = p4_ht_config_thread(hwc->config); in p4_pmu_enable_event()
953 u64 escr_conf = p4_config_unpack_escr(p4_clear_ht_bit(hwc->config)); in p4_pmu_enable_event()
[all …]
Dperf_event_amd_iommu.c199 struct hw_perf_event *hwc = &event->hw; in perf_iommu_event_init() local
244 hwc->config = config; in perf_iommu_event_init()
245 hwc->extra_reg.config = config1; in perf_iommu_event_init()
294 struct hw_perf_event *hwc = &event->hw; in perf_iommu_start() local
297 if (WARN_ON_ONCE(!(hwc->state & PERF_HES_STOPPED))) in perf_iommu_start()
300 WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE)); in perf_iommu_start()
301 hwc->state = 0; in perf_iommu_start()
304 u64 prev_raw_count = local64_read(&hwc->prev_count); in perf_iommu_start()
320 struct hw_perf_event *hwc = &event->hw; in perf_iommu_read() local
330 prev_raw_count = local64_read(&hwc->prev_count); in perf_iommu_read()
[all …]
Dperf_event_intel_uncore.c212 struct hw_perf_event *hwc = &event->hw; in uncore_assign_hw_event() local
214 hwc->idx = idx; in uncore_assign_hw_event()
215 hwc->last_tag = ++box->tags[idx]; in uncore_assign_hw_event()
217 if (hwc->idx == UNCORE_PMC_IDX_FIXED) { in uncore_assign_hw_event()
218 hwc->event_base = uncore_fixed_ctr(box); in uncore_assign_hw_event()
219 hwc->config_base = uncore_fixed_ctl(box); in uncore_assign_hw_event()
223 hwc->config_base = uncore_event_ctl(box, hwc->idx); in uncore_assign_hw_event()
224 hwc->event_base = uncore_perf_ctr(box, hwc->idx); in uncore_assign_hw_event()
416 struct hw_perf_event *hwc; in uncore_assign_events() local
429 hwc = &box->event_list[i]->hw; in uncore_assign_events()
[all …]
Dperf_event_intel_uncore_snbep.c290 struct hw_perf_event *hwc = &event->hw; in snbep_uncore_pci_enable_event() local
292 pci_write_config_dword(pdev, hwc->config_base, hwc->config | SNBEP_PMON_CTL_EN); in snbep_uncore_pci_enable_event()
298 struct hw_perf_event *hwc = &event->hw; in snbep_uncore_pci_disable_event() local
300 pci_write_config_dword(pdev, hwc->config_base, hwc->config); in snbep_uncore_pci_disable_event()
306 struct hw_perf_event *hwc = &event->hw; in snbep_uncore_pci_read_counter() local
309 pci_read_config_dword(pdev, hwc->event_base, (u32 *)&count); in snbep_uncore_pci_read_counter()
310 pci_read_config_dword(pdev, hwc->event_base + 4, (u32 *)&count + 1); in snbep_uncore_pci_read_counter()
350 struct hw_perf_event *hwc = &event->hw; in snbep_uncore_msr_enable_event() local
351 struct hw_perf_event_extra *reg1 = &hwc->extra_reg; in snbep_uncore_msr_enable_event()
356 wrmsrl(hwc->config_base, hwc->config | SNBEP_PMON_CTL_EN); in snbep_uncore_msr_enable_event()
[all …]
Dperf_event_amd.c197 static inline unsigned int amd_get_event_code(struct hw_perf_event *hwc) in amd_get_event_code() argument
199 return ((hwc->config >> 24) & 0x0f00) | (hwc->config & 0x00ff); in amd_get_event_code()
202 static inline int amd_is_nb_event(struct hw_perf_event *hwc) in amd_is_nb_event() argument
204 return (hwc->config & 0xe0) == 0xe0; in amd_is_nb_event()
295 struct hw_perf_event *hwc = &event->hw; in __amd_get_nb_event_constraints() local
317 if (new == -1 || hwc->idx == idx) in __amd_get_nb_event_constraints()
545 struct hw_perf_event *hwc = &event->hw; in amd_get_event_constraints_f15h() local
546 unsigned int event_code = amd_get_event_code(hwc); in amd_get_event_constraints_f15h()
552 if (!(hwc->config & 0x0000F000ULL)) in amd_get_event_constraints_f15h()
554 if (!(hwc->config & 0x00000F00ULL)) in amd_get_event_constraints_f15h()
[all …]
Dperf_event_knc.c178 struct hw_perf_event *hwc = &event->hw; in knc_pmu_disable_event() local
181 val = hwc->config; in knc_pmu_disable_event()
184 (void)wrmsrl_safe(hwc->config_base + hwc->idx, val); in knc_pmu_disable_event()
189 struct hw_perf_event *hwc = &event->hw; in knc_pmu_enable_event() local
192 val = hwc->config; in knc_pmu_enable_event()
195 (void)wrmsrl_safe(hwc->config_base + hwc->idx, val); in knc_pmu_enable_event()
Dperf_event_p6.c160 struct hw_perf_event *hwc = &event->hw; in p6_pmu_disable_event() local
163 (void)wrmsrl_safe(hwc->config_base, val); in p6_pmu_disable_event()
168 struct hw_perf_event *hwc = &event->hw; in p6_pmu_enable_event() local
171 val = hwc->config; in p6_pmu_enable_event()
180 (void)wrmsrl_safe(hwc->config_base, val); in p6_pmu_enable_event()
Dperf_event_intel_rapl.c170 struct hw_perf_event *hwc = &event->hw; in rapl_event_update() local
176 prev_raw_count = local64_read(&hwc->prev_count); in rapl_event_update()
179 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in rapl_event_update()
274 struct hw_perf_event *hwc = &event->hw; in rapl_pmu_event_stop() local
280 if (!(hwc->state & PERF_HES_STOPPED)) { in rapl_pmu_event_stop()
288 WARN_ON_ONCE(hwc->state & PERF_HES_STOPPED); in rapl_pmu_event_stop()
289 hwc->state |= PERF_HES_STOPPED; in rapl_pmu_event_stop()
293 if ((mode & PERF_EF_UPDATE) && !(hwc->state & PERF_HES_UPTODATE)) { in rapl_pmu_event_stop()
299 hwc->state |= PERF_HES_UPTODATE; in rapl_pmu_event_stop()
308 struct hw_perf_event *hwc = &event->hw; in rapl_pmu_event_add() local
[all …]
Dperf_event_intel.c1612 static void intel_pmu_disable_fixed(struct hw_perf_event *hwc) in intel_pmu_disable_fixed() argument
1614 int idx = hwc->idx - INTEL_PMC_IDX_FIXED; in intel_pmu_disable_fixed()
1619 rdmsrl(hwc->config_base, ctrl_val); in intel_pmu_disable_fixed()
1621 wrmsrl(hwc->config_base, ctrl_val); in intel_pmu_disable_fixed()
1631 struct hw_perf_event *hwc = &event->hw; in intel_pmu_disable_event() local
1634 if (unlikely(hwc->idx == INTEL_PMC_IDX_FIXED_BTS)) { in intel_pmu_disable_event()
1640 cpuc->intel_ctrl_guest_mask &= ~(1ull << hwc->idx); in intel_pmu_disable_event()
1641 cpuc->intel_ctrl_host_mask &= ~(1ull << hwc->idx); in intel_pmu_disable_event()
1642 cpuc->intel_cp_status &= ~(1ull << hwc->idx); in intel_pmu_disable_event()
1651 if (unlikely(hwc->config_base == MSR_ARCH_PERFMON_FIXED_CTR_CTRL)) { in intel_pmu_disable_event()
[all …]
Dperf_event.h736 static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc, in __x86_pmu_enable_event() argument
741 if (hwc->extra_reg.reg) in __x86_pmu_enable_event()
742 wrmsrl(hwc->extra_reg.reg, hwc->extra_reg.config); in __x86_pmu_enable_event()
743 wrmsrl(hwc->config_base, (hwc->config | enable_mask) & ~disable_mask); in __x86_pmu_enable_event()
756 struct hw_perf_event *hwc = &event->hw; in x86_pmu_disable_event() local
758 wrmsrl(hwc->config_base, hwc->config); in x86_pmu_disable_event()
Dperf_event_intel_ds.c777 struct hw_perf_event *hwc = &event->hw; in intel_pmu_pebs_enable() local
782 hwc->config &= ~ARCH_PERFMON_EVENTSEL_INT; in intel_pmu_pebs_enable()
785 cpuc->pebs_enabled |= 1ULL << hwc->idx; in intel_pmu_pebs_enable()
788 cpuc->pebs_enabled |= 1ULL << (hwc->idx + 32); in intel_pmu_pebs_enable()
796 if (hwc->flags & PERF_X86_EVENT_FREERUNNING) { in intel_pmu_pebs_enable()
815 if (hwc->flags & PERF_X86_EVENT_AUTO_RELOAD) { in intel_pmu_pebs_enable()
816 ds->pebs_event_reset[hwc->idx] = in intel_pmu_pebs_enable()
817 (u64)(-hwc->sample_period) & x86_pmu.cntval_mask; in intel_pmu_pebs_enable()
827 struct hw_perf_event *hwc = &event->hw; in intel_pmu_pebs_disable() local
835 cpuc->pebs_enabled &= ~(1ULL << hwc->idx); in intel_pmu_pebs_disable()
[all …]
Dperf_event_intel_cstate.c435 struct hw_perf_event *hwc = &event->hw; in cstate_pmu_event_update() local
439 prev_raw_count = local64_read(&hwc->prev_count); in cstate_pmu_event_update()
442 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in cstate_pmu_event_update()
Dperf_event_intel_pt.c1065 struct hw_perf_event *hwc = &event->hw; in pt_event_add() local
1086 if (hwc->state == PERF_HES_STOPPED) in pt_event_add()
1089 hwc->state = PERF_HES_STOPPED; in pt_event_add()
1097 hwc->state = PERF_HES_STOPPED; in pt_event_add()
Dperf_event_intel_bts.c446 struct hw_perf_event *hwc = &event->hw; in bts_event_add() local
473 if (hwc->state & PERF_HES_STOPPED) { in bts_event_add()
/linux-4.4.14/arch/s390/kernel/
Dperf_cpum_cf.c105 static int validate_event(const struct hw_perf_event *hwc) in validate_event() argument
107 switch (hwc->config_base) { in validate_event()
113 if ((hwc->config >= 6 && hwc->config <= 31) || in validate_event()
114 (hwc->config >= 38 && hwc->config <= 63) || in validate_event()
115 (hwc->config >= 80 && hwc->config <= 127)) in validate_event()
125 static int validate_ctr_version(const struct hw_perf_event *hwc) in validate_ctr_version() argument
133 switch (hwc->config_base) { in validate_ctr_version()
143 if ((cpuhw->info.csvn == 1 && hwc->config > 159) || in validate_ctr_version()
144 (cpuhw->info.csvn == 2 && hwc->config > 175) || in validate_ctr_version()
145 (cpuhw->info.csvn > 2 && hwc->config > 255)) in validate_ctr_version()
[all …]
Dperf_cpum_sf.c308 static unsigned long sfb_max_limit(struct hw_perf_event *hwc) in sfb_max_limit() argument
310 return SAMPL_DIAG_MODE(hwc) ? CPUM_SF_MAX_SDB * CPUM_SF_SDB_DIAG_FACTOR in sfb_max_limit()
315 struct hw_perf_event *hwc) in sfb_pending_allocs() argument
318 return SFB_ALLOC_REG(hwc); in sfb_pending_allocs()
319 if (SFB_ALLOC_REG(hwc) > sfb->num_sdb) in sfb_pending_allocs()
320 return SFB_ALLOC_REG(hwc) - sfb->num_sdb; in sfb_pending_allocs()
325 struct hw_perf_event *hwc) in sfb_has_pending_allocs() argument
327 return sfb_pending_allocs(sfb, hwc) > 0; in sfb_has_pending_allocs()
330 static void sfb_account_allocs(unsigned long num, struct hw_perf_event *hwc) in sfb_account_allocs() argument
333 num = min_t(unsigned long, num, sfb_max_limit(hwc) - SFB_ALLOC_REG(hwc)); in sfb_account_allocs()
[all …]
/linux-4.4.14/arch/xtensa/kernel/
Dperf_event.c140 struct hw_perf_event *hwc, int idx) in xtensa_perf_event_update() argument
146 prev_raw_count = local64_read(&hwc->prev_count); in xtensa_perf_event_update()
148 } while (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in xtensa_perf_event_update()
154 local64_sub(delta, &hwc->period_left); in xtensa_perf_event_update()
158 struct hw_perf_event *hwc, int idx) in xtensa_perf_event_set_period() argument
166 s64 period = hwc->sample_period; in xtensa_perf_event_set_period()
168 left = local64_read(&hwc->period_left); in xtensa_perf_event_set_period()
171 local64_set(&hwc->period_left, left); in xtensa_perf_event_set_period()
172 hwc->last_period = period; in xtensa_perf_event_set_period()
176 local64_set(&hwc->period_left, left); in xtensa_perf_event_set_period()
[all …]
/linux-4.4.14/arch/tile/kernel/
Dperf_event.c412 struct hw_perf_event *hwc = &event->hw; in tile_pmu_enable_event() local
414 int shift, idx = hwc->idx; in tile_pmu_enable_event()
447 cfg |= hwc->config << shift; in tile_pmu_enable_event()
461 struct hw_perf_event *hwc = &event->hw; in tile_pmu_disable_event() local
463 int idx = hwc->idx; in tile_pmu_disable_event()
504 struct hw_perf_event *hwc = &event->hw; in tile_perf_event_update() local
508 int idx = hwc->idx; in tile_perf_event_update()
519 prev_raw_count = local64_read(&hwc->prev_count); in tile_perf_event_update()
522 oldval = local64_cmpxchg(&hwc->prev_count, prev_raw_count, in tile_perf_event_update()
539 local64_sub(delta, &hwc->period_left); in tile_perf_event_update()
[all …]
/linux-4.4.14/arch/blackfin/kernel/
Dperf_event.c195 static void bfin_pfmon_disable(struct hw_perf_event *hwc, int idx) in bfin_pfmon_disable() argument
200 static void bfin_pfmon_enable(struct hw_perf_event *hwc, int idx) in bfin_pfmon_enable() argument
208 val |= (hwc->config << (PFMON1_P - PFMON0_P)); in bfin_pfmon_enable()
209 val |= (hwc->config & PFCNT0) << (PFCNT1_P - PFCNT0_P); in bfin_pfmon_enable()
213 val |= hwc->config; in bfin_pfmon_enable()
261 struct hw_perf_event *hwc, int idx) in bfin_perf_event_update() argument
280 prev_raw_count = local64_read(&hwc->prev_count); in bfin_perf_event_update()
283 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in bfin_perf_event_update()
304 struct hw_perf_event *hwc = &event->hw; in bfin_pmu_stop() local
305 int idx = hwc->idx; in bfin_pmu_stop()
[all …]
/linux-4.4.14/arch/arm/kernel/
Dperf_event_xscale.c175 struct hw_perf_event *hwc; in xscale1pmu_handle_irq() local
183 hwc = &event->hw; in xscale1pmu_handle_irq()
185 perf_sample_data_init(&data, 0, hwc->last_period); in xscale1pmu_handle_irq()
208 struct hw_perf_event *hwc = &event->hw; in xscale1pmu_enable_event() local
210 int idx = hwc->idx; in xscale1pmu_enable_event()
219 evt = (hwc->config_base << XSCALE1_COUNT0_EVT_SHFT) | in xscale1pmu_enable_event()
224 evt = (hwc->config_base << XSCALE1_COUNT1_EVT_SHFT) | in xscale1pmu_enable_event()
244 struct hw_perf_event *hwc = &event->hw; in xscale1pmu_disable_event() local
246 int idx = hwc->idx; in xscale1pmu_disable_event()
278 struct hw_perf_event *hwc = &event->hw; in xscale1pmu_get_event_idx() local
[all …]
Dperf_event_v7.c643 struct hw_perf_event *hwc = &event->hw; in armv7pmu_read_counter() local
644 int idx = hwc->idx; in armv7pmu_read_counter()
663 struct hw_perf_event *hwc = &event->hw; in armv7pmu_write_counter() local
664 int idx = hwc->idx; in armv7pmu_write_counter()
768 struct hw_perf_event *hwc = &event->hw; in armv7pmu_enable_event() local
771 int idx = hwc->idx; in armv7pmu_enable_event()
796 armv7_pmnc_write_evtsel(idx, hwc->config_base); in armv7pmu_enable_event()
814 struct hw_perf_event *hwc = &event->hw; in armv7pmu_disable_event() local
817 int idx = hwc->idx; in armv7pmu_disable_event()
870 struct hw_perf_event *hwc; in armv7pmu_handle_irq() local
[all …]
Dperf_event_v6.c237 struct hw_perf_event *hwc = &event->hw; in armv6pmu_read_counter() local
238 int counter = hwc->idx; in armv6pmu_read_counter()
255 struct hw_perf_event *hwc = &event->hw; in armv6pmu_write_counter() local
256 int counter = hwc->idx; in armv6pmu_write_counter()
272 struct hw_perf_event *hwc = &event->hw; in armv6pmu_enable_event() local
274 int idx = hwc->idx; in armv6pmu_enable_event()
281 evt = (hwc->config_base << ARMV6_PMCR_EVT_COUNT0_SHIFT) | in armv6pmu_enable_event()
285 evt = (hwc->config_base << ARMV6_PMCR_EVT_COUNT1_SHIFT) | in armv6pmu_enable_event()
329 struct hw_perf_event *hwc; in armv6pmu_handle_irq() local
342 hwc = &event->hw; in armv6pmu_handle_irq()
[all …]
/linux-4.4.14/drivers/perf/
Darm_pmu.c106 struct hw_perf_event *hwc = &event->hw; in armpmu_event_set_period() local
107 s64 left = local64_read(&hwc->period_left); in armpmu_event_set_period()
108 s64 period = hwc->sample_period; in armpmu_event_set_period()
113 local64_set(&hwc->period_left, left); in armpmu_event_set_period()
114 hwc->last_period = period; in armpmu_event_set_period()
120 local64_set(&hwc->period_left, left); in armpmu_event_set_period()
121 hwc->last_period = period; in armpmu_event_set_period()
134 local64_set(&hwc->prev_count, (u64)-left); in armpmu_event_set_period()
146 struct hw_perf_event *hwc = &event->hw; in armpmu_event_update() local
150 prev_raw_count = local64_read(&hwc->prev_count); in armpmu_event_update()
[all …]
/linux-4.4.14/arch/mips/kernel/
Dperf_event_mipsxx.c312 struct hw_perf_event *hwc) in mipsxx_pmu_alloc_counter() argument
320 unsigned long cntr_mask = (hwc->event_base >> 8) & 0xffff; in mipsxx_pmu_alloc_counter()
376 struct hw_perf_event *hwc, in mipspmu_event_set_period() argument
379 u64 left = local64_read(&hwc->period_left); in mipspmu_event_set_period()
380 u64 period = hwc->sample_period; in mipspmu_event_set_period()
386 local64_set(&hwc->period_left, left); in mipspmu_event_set_period()
387 hwc->last_period = period; in mipspmu_event_set_period()
392 local64_set(&hwc->period_left, left); in mipspmu_event_set_period()
393 hwc->last_period = period; in mipspmu_event_set_period()
399 local64_set(&hwc->period_left, left); in mipspmu_event_set_period()
[all …]
/linux-4.4.14/arch/sh/kernel/
Dperf_event.c124 struct hw_perf_event *hwc = &event->hw; in __hw_perf_event_init() local
174 hwc->config |= config; in __hw_perf_event_init()
180 struct hw_perf_event *hwc, int idx) in sh_perf_event_update() argument
199 prev_raw_count = local64_read(&hwc->prev_count); in sh_perf_event_update()
202 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in sh_perf_event_update()
223 struct hw_perf_event *hwc = &event->hw; in sh_pmu_stop() local
224 int idx = hwc->idx; in sh_pmu_stop()
227 sh_pmu->disable(hwc, idx); in sh_pmu_stop()
241 struct hw_perf_event *hwc = &event->hw; in sh_pmu_start() local
242 int idx = hwc->idx; in sh_pmu_start()
[all …]
/linux-4.4.14/drivers/clk/
Dclk-qoriq.c642 struct mux_hwclock *hwc = to_mux_hwclock(hw); in mux_set_parent() local
645 if (idx >= hwc->num_parents) in mux_set_parent()
648 clksel = hwc->parent_to_clksel[idx]; in mux_set_parent()
649 cg_out(hwc->cg, (clksel << CLKSEL_SHIFT) & CLKSEL_MASK, hwc->reg); in mux_set_parent()
656 struct mux_hwclock *hwc = to_mux_hwclock(hw); in mux_get_parent() local
660 clksel = (cg_in(hwc->cg, hwc->reg) & CLKSEL_MASK) >> CLKSEL_SHIFT; in mux_get_parent()
662 ret = hwc->clksel_to_parent[clksel]; in mux_get_parent()
664 pr_err("%s: mux at %p has bad clksel\n", __func__, hwc->reg); in mux_get_parent()
685 struct mux_hwclock *hwc, in get_pll_div() argument
690 if (!(hwc->info->clksel[idx].flags & CLKSEL_VALID)) in get_pll_div()
[all …]
/linux-4.4.14/arch/sparc/kernel/
Dperf_event.c825 static inline void sparc_pmu_enable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, in… in sparc_pmu_enable_event() argument
843 static inline void sparc_pmu_disable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, i… in sparc_pmu_disable_event() argument
862 struct hw_perf_event *hwc, int idx) in sparc_perf_event_update() argument
869 prev_raw_count = local64_read(&hwc->prev_count); in sparc_perf_event_update()
872 if (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in sparc_perf_event_update()
880 local64_sub(delta, &hwc->period_left); in sparc_perf_event_update()
886 struct hw_perf_event *hwc, int idx) in sparc_perf_event_set_period() argument
888 s64 left = local64_read(&hwc->period_left); in sparc_perf_event_set_period()
889 s64 period = hwc->sample_period; in sparc_perf_event_set_period()
894 local64_set(&hwc->period_left, left); in sparc_perf_event_set_period()
[all …]
/linux-4.4.14/arch/arm64/kernel/
Dperf_event.c277 struct hw_perf_event *hwc = &event->hw; in armv8pmu_read_counter() local
278 int idx = hwc->idx; in armv8pmu_read_counter()
295 struct hw_perf_event *hwc = &event->hw; in armv8pmu_write_counter() local
296 int idx = hwc->idx; in armv8pmu_write_counter()
365 struct hw_perf_event *hwc = &event->hw; in armv8pmu_enable_event() local
368 int idx = hwc->idx; in armv8pmu_enable_event()
384 armv8pmu_write_evtype(idx, hwc->config_base); in armv8pmu_enable_event()
402 struct hw_perf_event *hwc = &event->hw; in armv8pmu_disable_event() local
405 int idx = hwc->idx; in armv8pmu_disable_event()
452 struct hw_perf_event *hwc; in armv8pmu_handle_irq() local
[all …]
/linux-4.4.14/drivers/bus/
Darm-cci.c771 struct hw_perf_event *hwc = &event->hw; in pmu_event_update() local
775 prev_raw_count = local64_read(&hwc->prev_count); in pmu_event_update()
777 } while (local64_cmpxchg(&hwc->prev_count, prev_raw_count, in pmu_event_update()
794 struct hw_perf_event *hwc = &event->hw; in pmu_event_set_period() local
802 local64_set(&hwc->prev_count, val); in pmu_event_set_period()
921 struct hw_perf_event *hwc = &event->hw; in cci_pmu_start() local
922 int idx = hwc->idx; in cci_pmu_start()
930 WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE)); in cci_pmu_start()
932 hwc->state = 0; in cci_pmu_start()
943 pmu_set_event(cci_pmu, idx, hwc->config_base); in cci_pmu_start()
[all …]
/linux-4.4.14/arch/sh/kernel/cpu/sh4a/
Dperf_event.c235 static void sh4a_pmu_disable(struct hw_perf_event *hwc, int idx) in sh4a_pmu_disable() argument
244 static void sh4a_pmu_enable(struct hw_perf_event *hwc, int idx) in sh4a_pmu_enable() argument
254 tmp |= (hwc->config << 6) | CCBR_CMDS | CCBR_PPCE; in sh4a_pmu_enable()
/linux-4.4.14/arch/sh/kernel/cpu/sh4/
Dperf_event.c211 static void sh7750_pmu_disable(struct hw_perf_event *hwc, int idx) in sh7750_pmu_disable() argument
220 static void sh7750_pmu_enable(struct hw_perf_event *hwc, int idx) in sh7750_pmu_enable() argument
223 __raw_writew(hwc->config | PMCR_PMEN | PMCR_PMST, PMCR(idx)); in sh7750_pmu_enable()
/linux-4.4.14/kernel/events/
Dcore.c2962 struct hw_perf_event *hwc = &event->hw; in perf_adjust_period() local
2968 delta = (s64)(period - hwc->sample_period); in perf_adjust_period()
2971 sample_period = hwc->sample_period + delta; in perf_adjust_period()
2976 hwc->sample_period = sample_period; in perf_adjust_period()
2978 if (local64_read(&hwc->period_left) > 8*sample_period) { in perf_adjust_period()
2982 local64_set(&hwc->period_left, 0); in perf_adjust_period()
2998 struct hw_perf_event *hwc; in perf_adjust_freq_unthr_context() local
3022 hwc = &event->hw; in perf_adjust_freq_unthr_context()
3024 if (hwc->interrupts == MAX_INTERRUPTS) { in perf_adjust_freq_unthr_context()
3025 hwc->interrupts = 0; in perf_adjust_freq_unthr_context()
[all …]
/linux-4.4.14/drivers/video/fbdev/
Dau1200fb.c877 lcd->hwc.cursorctrl = 0; in au1200_setpanel()
878 lcd->hwc.cursorpos = 0; in au1200_setpanel()
879 lcd->hwc.cursorcolor0 = 0; in au1200_setpanel()
880 lcd->hwc.cursorcolor1 = 0; in au1200_setpanel()
881 lcd->hwc.cursorcolor2 = 0; in au1200_setpanel()
882 lcd->hwc.cursorcolor3 = 0; in au1200_setpanel()
926 D(lcd->hwc.cursorctrl); in au1200_setpanel()
927 D(lcd->hwc.cursorpos); in au1200_setpanel()
928 D(lcd->hwc.cursorcolor0); in au1200_setpanel()
929 D(lcd->hwc.cursorcolor1); in au1200_setpanel()
[all …]
Dau1200fb.h59 } hwc; member
345 } hwc; member
Dpxa168fb.h308 #define CFG_CSB_256x32(hwc) ((hwc) << 15) /* HWC */ argument
/linux-4.4.14/arch/powerpc/perf/
Dmpc7450-pmu.c263 static int mpc7450_compute_mmcr(u64 event[], int n_ev, unsigned int hwc[], in mpc7450_compute_mmcr() argument
318 hwc[event_index[class][i]] = pmc - 1; in mpc7450_compute_mmcr()
Dppc970-pmu.c260 unsigned int hwc[], unsigned long mmcr[], struct perf_event *pevents[]) in p970_compute_mmcr() argument
381 hwc[i] = pmc; in p970_compute_mmcr()
Dpower6-pmu.c178 unsigned int hwc[], unsigned long mmcr[], struct perf_event *pevents[]) in p6_compute_mmcr() argument
211 hwc[i] = pmc; in p6_compute_mmcr()
Dpower7-pmu.c248 unsigned int hwc[], unsigned long mmcr[], struct perf_event *pevents[]) in power7_compute_mmcr() argument
300 hwc[i] = pmc; in power7_compute_mmcr()
Dpower4-pmu.c359 unsigned int hwc[], unsigned long mmcr[], struct perf_event *pevents[]) in p4_compute_mmcr() argument
509 hwc[i] = pmc; in p4_compute_mmcr()
Dpower5-pmu.c386 unsigned int hwc[], unsigned long mmcr[], struct perf_event *pevents[]) in power5_compute_mmcr() argument
531 hwc[i] = pmc; in power5_compute_mmcr()
Dpower5+-pmu.c455 unsigned int hwc[], unsigned long mmcr[], struct perf_event *pevents[]) in power5p_compute_mmcr() argument
589 hwc[i] = pmc; in power5p_compute_mmcr()
Dpower8-pmu.c402 unsigned int hwc[], unsigned long mmcr[], in power8_compute_mmcr() argument
495 hwc[i] = pmc - 1; in power8_compute_mmcr()
/linux-4.4.14/arch/powerpc/include/asm/
Dperf_event_server.h35 unsigned int hwc[], unsigned long mmcr[],
/linux-4.4.14/drivers/video/fbdev/mmp/hw/
Dmmp_ctrl.h548 #define CFG_CSB_256x32(hwc) ((hwc)<<15) /* HWC */ argument