Re: [tip:perf/core] perf: Rework the PMU methods

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/09/10 07:50, tip-bot for Peter Zijlstra wrote:
Commit-ID:  a4eaf7f14675cb512d69f0c928055e73d0c6d252
Gitweb:     http://git.kernel.org/tip/a4eaf7f14675cb512d69f0c928055e73d0c6d252
Author:     Peter Zijlstra<a.p.zijlstra@xxxxxxxxx>
AuthorDate: Wed, 16 Jun 2010 14:37:10 +0200
Committer:  Ingo Molnar<mingo@xxxxxxx>
CommitDate: Thu, 9 Sep 2010 20:46:30 +0200

perf: Rework the PMU methods

Replace pmu::{enable,disable,start,stop,unthrottle} with
pmu::{add,del,start,stop}, all of which take a flags argument.

Regarding the new function alpha_pmu_stop() in arch/alpha/kernel/perf_event.c:

-static void alpha_pmu_unthrottle(struct perf_event *event)
+static void alpha_pmu_stop(struct perf_event *event, int flags)
  {
  	struct hw_perf_event *hwc =&event->hw;
  	struct cpu_hw_events *cpuc =&__get_cpu_var(cpu_hw_events);

+	if (!(hwc->state&  PERF_HES_STOPPED)) {
+		cpuc->idx_mask&= !(1UL<<hwc->idx);
                                 ^
Presumably ones complement (rather than logical not) is meant.

+		hwc->state |= PERF_HES_STOPPED;
+	}
+
+	if ((flags&  PERF_EF_UPDATE)&&  !(hwc->state&  PERF_HES_UPTODATE)) {
+		alpha_perf_event_update(event, hwc, hwc->idx, 0);
+		hwc->state |= PERF_HES_UPTODATE;
+	}
+
+	if (cpuc->enabled)
+		wrperfmon(PERFMON_CMD_ENABLE, (1UL<<hwc->idx));

By the name of the function (alpha_pmu_stop) I assume that the intent is to stop the specific PMC here. The above fails to do that. When wrperfmon() is used with PERFMON_CMD_ENABLE it enables the PMCs with set bits in the second argument. It does not stop the others. To do that wrperfmon() must be called with PERFMON_CMD_DISABLE and the corresponding PMC bits set to disable the PMC.

Cheers
Michael.
--
To unsubscribe from this list: send the line "unsubscribe linux-alpha" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux