Message ID | 1426795557-135648-1-git-send-email-david.ahern@oracle.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
From: David Ahern <david.ahern@oracle.com> Date: Thu, 19 Mar 2015 16:05:57 -0400 > perf_pmu_disable is called by core perf code before pmu->del and the > enable function is called by core perf code afterwards. No need to > call again within sparc_pmu_del. > > Ditto for pmu->add and sparc_pmu_add. > > Signed-off-by: David Ahern <david.ahern@oracle.com> > Acked-by: Bob Picco <bob.picco@oracle.com> Applied, thanks David. I wonder why I coded it this way, maybe long ago in the past the caller didn't do this. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 3/19/15 7:55 PM, David Miller wrote: > I wonder why I coded it this way, maybe long ago in the past > the caller didn't do this. short answer: I know 2.6.39 does not need this, so it changed somewhere between 2.6.39 and 3.18. From what I can tell you used the x86 perf code as the template for sparc. That was roughly 2009 or 2010. The x86 code has changed a lot over the years; the sparc code not so much. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index 46a5e4508752..6dc4e793df4c 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c @@ -1101,7 +1101,6 @@ static void sparc_pmu_del(struct perf_event *event, int _flags) int i; local_irq_save(flags); - perf_pmu_disable(event->pmu); for (i = 0; i < cpuc->n_events; i++) { if (event == cpuc->event[i]) { @@ -1127,7 +1126,6 @@ static void sparc_pmu_del(struct perf_event *event, int _flags) } } - perf_pmu_enable(event->pmu); local_irq_restore(flags); } @@ -1361,7 +1359,6 @@ static int sparc_pmu_add(struct perf_event *event, int ef_flags) unsigned long flags; local_irq_save(flags); - perf_pmu_disable(event->pmu); n0 = cpuc->n_events; if (n0 >= sparc_pmu->max_hw_events) @@ -1394,7 +1391,6 @@ static int sparc_pmu_add(struct perf_event *event, int ef_flags) ret = 0; out: - perf_pmu_enable(event->pmu); local_irq_restore(flags); return ret; }