lkml.org 
[lkml]   [2015]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 06/10] perf/x86: Make WARNs consistent
    The commit_scheduling hook is pointlessly different from the start and
    stop scheduling hook.

    Furthermore, the constraint should never be NULL, so remove that test.
    Even though we'll never get called (because we NULL the callbacks)
    when !is_ht_workaround_enabled() put that test in.

    Collapse the (pointless) WARN_ON_ONCE and bail on !cpuc->excl_cntrs --
    this is doubly pointless, because its the same condition as
    is_ht_workaround_enabled() which was already pointless because the
    whole method won't ever be called.

    Furthremore, make all the !excl_cntrs test WARN_ON_ONCE; they're all
    pointless, because the above, either the function
    ({get,put}_excl_constraint) are already predicated on it existing or
    the is_ht_workaround_enabled() thing is the same test.

    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    ---
    arch/x86/kernel/cpu/perf_event_intel.c | 18 +++++++-----------
    1 file changed, 7 insertions(+), 11 deletions(-)

    --- a/arch/x86/kernel/cpu/perf_event_intel.c
    +++ b/arch/x86/kernel/cpu/perf_event_intel.c
    @@ -1915,7 +1915,7 @@ intel_start_scheduling(struct cpu_hw_eve
    /*
    * no exclusion needed
    */
    - if (!excl_cntrs)
    + if (WARN_ON_ONCE(!excl_cntrs))
    return;

    xl = &excl_cntrs->states[tid];
    @@ -1949,7 +1949,7 @@ intel_stop_scheduling(struct cpu_hw_even
    /*
    * no exclusion needed
    */
    - if (!excl_cntrs)
    + if (WARN_ON_ONCE(!excl_cntrs))
    return;

    xl = &excl_cntrs->states[tid];
    @@ -1985,7 +1985,7 @@ intel_get_excl_constraints(struct cpu_hw
    /*
    * no exclusion needed
    */
    - if (!excl_cntrs)
    + if (WARN_ON_ONCE(!excl_cntrs))
    return c;

    /*
    @@ -2121,9 +2121,7 @@ static void intel_put_excl_constraints(s
    if (cpuc->is_fake)
    return;

    - WARN_ON_ONCE(!excl_cntrs);
    -
    - if (!excl_cntrs)
    + if (WARN_ON_ONCE(!excl_cntrs))
    return;

    xl = &excl_cntrs->states[tid];
    @@ -2190,15 +2188,13 @@ static void intel_commit_scheduling(stru
    struct intel_excl_states *xl;
    int tid = cpuc->excl_thread_id;

    - if (cpuc->is_fake || !c)
    + if (cpuc->is_fake || !is_ht_workaround_enabled())
    return;

    - if (!(c->flags & PERF_X86_EVENT_DYNAMIC))
    + if (WARN_ON_ONCE(!excl_cntrs))
    return;

    - WARN_ON_ONCE(!excl_cntrs);
    -
    - if (!excl_cntrs)
    + if (!(c->flags & PERF_X86_EVENT_DYNAMIC))
    return;

    xl = &excl_cntrs->states[tid];



    \
     
     \ /
      Last update: 2015-05-21 13:41    [W:4.695 / U:1.420 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site