On Mon, Jun 30, 2014 at 04:50:43PM +0800, Yan, Zheng wrote: > @@ -2347,6 +2348,11 @@ static void perf_event_context_sched_out(struct task_struct *task, int ctxn, > next->perf_event_ctxp[ctxn] = ctx; > ctx->task = next; > next_ctx->task = task; > + > + ctx_data = next_ctx->task_ctx_data; > + next_ctx->task_ctx_data = ctx->task_ctx_data; > + ctx->task_ctx_data = ctx_data; > + swap(ctx->task_ctx_data, next_ctx->task_ctx_data); ?