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 kernel side fixes. Generic: - cgroup events counting fix x86: - Intel PMU truncated-parameter fix - RDPMC fix - API naming fix/rename - uncore driver big-hardware PCI enumeration fix - uncore driver filter constraint fix" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/cgroup: Fix child event counting bug perf/x86/intel/uncore: Fix multi-domain PCI CHA enumeration bug on Skylake servers perf/x86/intel: Rename confusing 'freerunning PEBS' API and implementation to 'large PEBS' perf/x86/intel/uncore: Add missing filter constraint for SKX CHA event perf/x86/intel: Don't accidentally clear high bits in bdw_limit_period() perf/x86/intel: Disable userspace RDPMC usage for large PEBS
This commit is contained in:
@@ -724,9 +724,15 @@ static inline void __update_cgrp_time(struct perf_cgroup *cgrp)
|
||||
|
||||
static inline void update_cgrp_time_from_cpuctx(struct perf_cpu_context *cpuctx)
|
||||
{
|
||||
struct perf_cgroup *cgrp_out = cpuctx->cgrp;
|
||||
if (cgrp_out)
|
||||
__update_cgrp_time(cgrp_out);
|
||||
struct perf_cgroup *cgrp = cpuctx->cgrp;
|
||||
struct cgroup_subsys_state *css;
|
||||
|
||||
if (cgrp) {
|
||||
for (css = &cgrp->css; css; css = css->parent) {
|
||||
cgrp = container_of(css, struct perf_cgroup, css);
|
||||
__update_cgrp_time(cgrp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static inline void update_cgrp_time_from_event(struct perf_event *event)
|
||||
@@ -754,6 +760,7 @@ perf_cgroup_set_timestamp(struct task_struct *task,
|
||||
{
|
||||
struct perf_cgroup *cgrp;
|
||||
struct perf_cgroup_info *info;
|
||||
struct cgroup_subsys_state *css;
|
||||
|
||||
/*
|
||||
* ctx->lock held by caller
|
||||
@@ -764,8 +771,12 @@ perf_cgroup_set_timestamp(struct task_struct *task,
|
||||
return;
|
||||
|
||||
cgrp = perf_cgroup_from_task(task, ctx);
|
||||
info = this_cpu_ptr(cgrp->info);
|
||||
info->timestamp = ctx->timestamp;
|
||||
|
||||
for (css = &cgrp->css; css; css = css->parent) {
|
||||
cgrp = container_of(css, struct perf_cgroup, css);
|
||||
info = this_cpu_ptr(cgrp->info);
|
||||
info->timestamp = ctx->timestamp;
|
||||
}
|
||||
}
|
||||
|
||||
static DEFINE_PER_CPU(struct list_head, cgrp_cpuctx_list);
|
||||
|
Reference in New Issue
Block a user