[PATCH v2] Added perf functionality to mmdc driver
From: Zhengyu Shen <hidden>
Date: 2016-08-16 17:12:53
Also in:
lkml
quoted
Added cpumask and migration handling support to driver Validated event during event_init Added code to properly stop counters Used perf_invalid_context instead of perf_sw_context Added hrtimer to poll for overflow Added better description Added support for multiple mmdcsAs I commented on v1 w.r.t. the above, I would appreciate being Cc'd on future versions of this patch.
Sorry about that, I'll be sure to CC you in the future.
quoted
+static void mmdc_event_start(struct perf_event *event, int flags) { + struct mmdc_pmu *pmu_mmdc = to_mmdc_pmu(event->pmu); + void __iomem *mmdc_base, *reg; + + local64_set(&event->count, 0); + mmdc_base = pmu_mmdc->mmdc_base; + reg = mmdc_base + MMDC_MADPCR0; + hrtimer_start(&pmu_mmdc->hrtimer, mmdc_timer_period(), + HRTIMER_MODE_REL_PINNED);Why is a hrtimer necessary? Is this just copy-pasted from CCN, or do you have similar HW issues? Is there no overflow interrupt?
When overflow occurs, a register bit is set to one. There is no overflow interrupt which is why the timer is needed. Thanks a lot for the feedback!