Thread (14 messages) flat view 14 messages, 5 authors, 2016-08-17

[PATCH v2] Added perf functionality to mmdc driver

From: mark.rutland@arm.com (Mark Rutland)
Date: 2016-08-16 14:43:40
Also in: lkml

On Tue, Aug 16, 2016 at 02:40:43PM +0000, Zhengyu Shen wrote:
quoted
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 mmdcs
As 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
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. 
I see. Please have add comment in the driver explaining this, so that this is
obvious.

Does the counter itself wrap and continue counting, or does it saturate?

How have you tuned your polling period so as to avoid missing events in the
case of an overflow?

Thanks,
Mark.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help