lkml.org 
[lkml]   [2011]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 09/12] perf_events: add hook to flush branch_stack on context switch (v2)
From
On Mon, Dec 5, 2011 at 1:37 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Fri, 2011-10-14 at 14:37 +0200, Stephane Eranian wrote:
>> +               /*
>> +                * check if the context has at least one
>> +                * event using PERF_SAMPLE_BRANCH_STACK
>> +                */
>> +               if (cpuctx->ctx.nr_branch_stack > 0
>> +                   && pmu->flush_branch_stack) {
>> +
>> +                       pmu = cpuctx->ctx.pmu;
>> +
>> +                       perf_ctx_lock(cpuctx, cpuctx->task_ctx);
>> +
>> +                       perf_pmu_disable(pmu);
>> +
>> +                       pmu->flush_branch_stack();
>> +
>> +                       perf_pmu_enable(pmu);
>> +
>> +                       perf_ctx_unlock(cpuctx, cpuctx->task_ctx);
>> +               }
>> +       }
>
> (what whitespace looks funny)
>
> So all PMUs not supporting this branch stuff will fail to create a
> has_branch_stack() event, right? Thus all ctx with !0 nr_branch_stack
> support it. Doesn't this make the test for pmu->flush_branch_stack
> redundant?
>
>
No, nr_branch_stack counts the number of active events with
branch_stack. It's like the ctx->nr_cgroups. Processors which
do not support branch_stack will always have this field to 0.
It's not because a processor supports branch_stack that we
need to call flush_branch_stack(), i.e., we use a lazy approach.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2011-12-07 19:29    [W:0.077 / U:1.532 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site