Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar: "Misc fixes on the kernel and tooling side - nothing in particular stands out" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits) perf/core: Fix the perf_cpu_time_max_percent check perf/core: Fix perf_event_enable_on_exec() timekeeping (again) perf/core: Remove confusing comment and move put_ctx() perf record: Honor --quiet option properly perf annotate: Add -q/--quiet option perf diff: Add -q/--quiet option perf report: Add -q/--quiet option perf utils: Check verbose flag properly perf utils: Add perf_quiet_option() perf record: Add -a as default target perf stat: Add -a as default target perf tools: Fail on using multiple bits long terms without value perf tools: Move new_term arguments into struct parse_events_term template perf build: Add special fixdep cleaning rule perf tools: Replace _SC_NPROCESSORS_CONF with max_present_cpu in cpu_topology_map perf header: Make build_cpu_topology skip offline/absent CPUs perf cpumap: Add cpu__max_present_cpu() perf session: Fix DEBUG=1 build with clang tools lib traceevent: It's preempt not prempt perf python: Filter out -specs=/a/b/c from the python binding cc options ...
This commit is contained in:
@@ -455,7 +455,7 @@ int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
|
||||
void __user *buffer, size_t *lenp,
|
||||
loff_t *ppos)
|
||||
{
|
||||
int ret = proc_dointvec(table, write, buffer, lenp, ppos);
|
||||
int ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
|
||||
|
||||
if (ret || !write)
|
||||
return ret;
|
||||
@@ -3522,6 +3522,8 @@ static void perf_event_enable_on_exec(int ctxn)
|
||||
if (enabled) {
|
||||
clone_ctx = unclone_ctx(ctx);
|
||||
ctx_resched(cpuctx, ctx, event_type);
|
||||
} else {
|
||||
ctx_sched_in(ctx, cpuctx, EVENT_TIME, current);
|
||||
}
|
||||
perf_ctx_unlock(cpuctx, ctx);
|
||||
|
||||
@@ -9955,6 +9957,7 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||
* of swizzling perf_event::ctx.
|
||||
*/
|
||||
perf_remove_from_context(group_leader, 0);
|
||||
put_ctx(gctx);
|
||||
|
||||
list_for_each_entry(sibling, &group_leader->sibling_list,
|
||||
group_entry) {
|
||||
@@ -9993,13 +9996,6 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||
perf_event__state_init(group_leader);
|
||||
perf_install_in_context(ctx, group_leader, group_leader->cpu);
|
||||
get_ctx(ctx);
|
||||
|
||||
/*
|
||||
* Now that all events are installed in @ctx, nothing
|
||||
* references @gctx anymore, so drop the last reference we have
|
||||
* on it.
|
||||
*/
|
||||
put_ctx(gctx);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user