Re: [PATCH v3 01/10] perf/cgroup: Reorder perf_cgroup_connect()
From: Peter Zijlstra
Date: Thu Nov 14 2019 - 03:51:01 EST
Hurm, you didn't fix my missing Changelog..
On Wed, Nov 13, 2019 at 04:30:33PM -0800, Ian Rogers wrote:
> From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Move perf_cgroup_connect() after perf_event_alloc(), such that we can
find/use the PMU's cpu context.
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> kernel/events/core.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index cfd89b4a02d8..0dce28b0aae0 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -10597,12 +10597,6 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
> if (!has_branch_stack(event))
> event->attr.branch_sample_type = 0;
>
> - if (cgroup_fd != -1) {
> - err = perf_cgroup_connect(cgroup_fd, event, attr, group_leader);
> - if (err)
> - goto err_ns;
> - }
> -
> pmu = perf_init_event(event);
> if (IS_ERR(pmu)) {
> err = PTR_ERR(pmu);
> @@ -10615,6 +10609,12 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
> goto err_pmu;
> }
>
> + if (cgroup_fd != -1) {
> + err = perf_cgroup_connect(cgroup_fd, event, attr, group_leader);
> + if (err)
> + goto err_pmu;
> + }
> +
> err = exclusive_event_init(event);
> if (err)
> goto err_pmu;
> @@ -10675,12 +10675,12 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
> exclusive_event_destroy(event);
>
> err_pmu:
> + if (is_cgroup_event(event))
> + perf_detach_cgroup(event);
> if (event->destroy)
> event->destroy(event);
> module_put(pmu->module);
> err_ns:
> - if (is_cgroup_event(event))
> - perf_detach_cgroup(event);
> if (event->ns)
> put_pid_ns(event->ns);
> if (event->hw.target)
> --
> 2.24.0.432.g9d3f5f5b63-goog
>