Commit 93697a3c authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'perfcounters-fixes-for-linus' of...

Merge branch 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  perf_counter/powerpc: Fix cache event codes for POWER7
  perf_counter: Fix /0 bug in swcounters
  perf_counters: Increase paranoia level
parents 63995344 a3df6f7d
...@@ -317,7 +317,7 @@ static int power7_generic_events[] = { ...@@ -317,7 +317,7 @@ static int power7_generic_events[] = {
*/ */
static int power7_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = { static int power7_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
[C(L1D)] = { /* RESULT_ACCESS RESULT_MISS */ [C(L1D)] = { /* RESULT_ACCESS RESULT_MISS */
[C(OP_READ)] = { 0x400f0, 0xc880 }, [C(OP_READ)] = { 0xc880, 0x400f0 },
[C(OP_WRITE)] = { 0, 0x300f0 }, [C(OP_WRITE)] = { 0, 0x300f0 },
[C(OP_PREFETCH)] = { 0xd8b8, 0 }, [C(OP_PREFETCH)] = { 0xd8b8, 0 },
}, },
...@@ -327,8 +327,8 @@ static int power7_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = { ...@@ -327,8 +327,8 @@ static int power7_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
[C(OP_PREFETCH)] = { 0x408a, 0 }, [C(OP_PREFETCH)] = { 0x408a, 0 },
}, },
[C(LL)] = { /* RESULT_ACCESS RESULT_MISS */ [C(LL)] = { /* RESULT_ACCESS RESULT_MISS */
[C(OP_READ)] = { 0x6080, 0x6084 }, [C(OP_READ)] = { 0x16080, 0x26080 },
[C(OP_WRITE)] = { 0x6082, 0x6086 }, [C(OP_WRITE)] = { 0x16082, 0x26082 },
[C(OP_PREFETCH)] = { 0, 0 }, [C(OP_PREFETCH)] = { 0, 0 },
}, },
[C(DTLB)] = { /* RESULT_ACCESS RESULT_MISS */ [C(DTLB)] = { /* RESULT_ACCESS RESULT_MISS */
......
...@@ -50,7 +50,7 @@ static atomic_t nr_task_counters __read_mostly; ...@@ -50,7 +50,7 @@ static atomic_t nr_task_counters __read_mostly;
* 1 - disallow cpu counters to unpriv * 1 - disallow cpu counters to unpriv
* 2 - disallow kernel profiling to unpriv * 2 - disallow kernel profiling to unpriv
*/ */
int sysctl_perf_counter_paranoid __read_mostly; int sysctl_perf_counter_paranoid __read_mostly = 1;
static inline bool perf_paranoid_cpu(void) static inline bool perf_paranoid_cpu(void)
{ {
...@@ -4066,6 +4066,7 @@ perf_counter_alloc(struct perf_counter_attr *attr, ...@@ -4066,6 +4066,7 @@ perf_counter_alloc(struct perf_counter_attr *attr,
hwc->sample_period = attr->sample_period; hwc->sample_period = attr->sample_period;
if (attr->freq && attr->sample_freq) if (attr->freq && attr->sample_freq)
hwc->sample_period = 1; hwc->sample_period = 1;
hwc->last_period = hwc->sample_period;
atomic64_set(&hwc->period_left, hwc->sample_period); atomic64_set(&hwc->period_left, hwc->sample_period);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment