Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: perf, x86: Complain louder about BIOSen corrupting CPU/PMU state and continue perf, x86: P4 PMU - Read proper MSR register to catch unflagged overflows perf symbols: Look at .dynsym again if .symtab not found perf build-id: Add quirk to deal with perf.data file format breakage perf session: Pass evsel in event_ops->sample() perf: Better fit max unprivileged mlock pages for tools needs perf_events: Fix stale ->cgrp pointer in update_cgrp_time_from_cpuctx() perf top: Fix uninitialized 'counter' variable tracing: Fix set_ftrace_filter probe function display perf, x86: Fix Intel fixed counters base initialization
This commit is contained in:
@ -145,7 +145,8 @@ static struct srcu_struct pmus_srcu;
|
||||
*/
|
||||
int sysctl_perf_event_paranoid __read_mostly = 1;
|
||||
|
||||
int sysctl_perf_event_mlock __read_mostly = 512; /* 'free' kb per user */
|
||||
/* Minimum for 128 pages + 1 for the user control page */
|
||||
int sysctl_perf_event_mlock __read_mostly = 516; /* 'free' kb per user */
|
||||
|
||||
/*
|
||||
* max perf event sample rate
|
||||
@ -941,6 +942,7 @@ static void perf_group_attach(struct perf_event *event)
|
||||
static void
|
||||
list_del_event(struct perf_event *event, struct perf_event_context *ctx)
|
||||
{
|
||||
struct perf_cpu_context *cpuctx;
|
||||
/*
|
||||
* We can have double detach due to exit/hot-unplug + close.
|
||||
*/
|
||||
@ -949,8 +951,17 @@ list_del_event(struct perf_event *event, struct perf_event_context *ctx)
|
||||
|
||||
event->attach_state &= ~PERF_ATTACH_CONTEXT;
|
||||
|
||||
if (is_cgroup_event(event))
|
||||
if (is_cgroup_event(event)) {
|
||||
ctx->nr_cgroups--;
|
||||
cpuctx = __get_cpu_context(ctx);
|
||||
/*
|
||||
* if there are no more cgroup events
|
||||
* then cler cgrp to avoid stale pointer
|
||||
* in update_cgrp_time_from_cpuctx()
|
||||
*/
|
||||
if (!ctx->nr_cgroups)
|
||||
cpuctx->cgrp = NULL;
|
||||
}
|
||||
|
||||
ctx->nr_events--;
|
||||
if (event->attr.inherit_stat)
|
||||
|
@ -1467,7 +1467,7 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
|
||||
return t_hash_next(m, pos);
|
||||
|
||||
(*pos)++;
|
||||
iter->pos = *pos;
|
||||
iter->pos = iter->func_pos = *pos;
|
||||
|
||||
if (iter->flags & FTRACE_ITER_PRINTALL)
|
||||
return t_hash_start(m, pos);
|
||||
@ -1502,7 +1502,6 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
|
||||
if (!rec)
|
||||
return t_hash_start(m, pos);
|
||||
|
||||
iter->func_pos = *pos;
|
||||
iter->func = rec;
|
||||
|
||||
return iter;
|
||||
|
Reference in New Issue
Block a user