On Wed, Aug 09, 2017 at 08:29:21AM +0800, 石祤 wrote: > From: "leilei.lin" <leilei....@alibaba-inc.com> > > A performance issue caused by less strickly check in task > sched when these tasks were once attached by per-task perf_event. > > A task will alloc task->perf_event_ctxp[ctxn] when it was called > by perf_event_open, and task->perf_event_ctxp[ctxn] would not > ever be freed to NULL. > > __perf_event_task_sched_in() > if (task->perf_event_ctxp[ctxn]) // here is always true > perf_event_context_sched_in() // operate pmu > > 50% at most performance overhead was observed under some extreme > test case. Therefore, add a more strick check as to ctx->nr_events, > when ctx->nr_events == 0, it's no need to continue. > > Signed-off-by: leilei.lin <leilei....@alibaba-inc.com>
Thanks!