2015-05-21 11:23:35

by Peter Zijlstra

[permalink] [raw]
Subject: [PATCH 08/10] perf/x86: Remove pointless tests

Both intel_commit_scheduling() and intel_get_excl_contraints() test
for cntr < 0.

The only way that can happen (aside from a bug) is through
validate_event(), however that is already captured by the
cpuc->is_fake test.

So remove these test and simplify the code.

Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
---
arch/x86/kernel/cpu/perf_event_intel.c | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)

--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
@@ -1955,12 +1955,10 @@ static void intel_commit_scheduling(stru

lockdep_assert_held(&excl_cntrs->lock);

- if (cntr >= 0) {
- if (c->flags & PERF_X86_EVENT_EXCL)
- xl->init_state[cntr] = INTEL_EXCL_EXCLUSIVE;
- else
- xl->init_state[cntr] = INTEL_EXCL_SHARED;
- }
+ if (c->flags & PERF_X86_EVENT_EXCL)
+ xl->init_state[cntr] = INTEL_EXCL_EXCLUSIVE;
+ else
+ xl->init_state[cntr] = INTEL_EXCL_SHARED;
}

static void
@@ -2028,10 +2026,6 @@ intel_get_excl_constraints(struct cpu_hw
if (!(c->flags & PERF_X86_EVENT_DYNAMIC)) {
struct event_constraint *cx;

- /* sanity check */
- if (idx < 0)
- return &emptyconstraint;
-
/*
* grab pre-allocated constraint entry
*/


2015-05-21 13:24:37

by Stephane Eranian

[permalink] [raw]
Subject: Re: [PATCH 08/10] perf/x86: Remove pointless tests

On Thu, May 21, 2015 at 4:17 AM, Peter Zijlstra <[email protected]> wrote:
> Both intel_commit_scheduling() and intel_get_excl_contraints() test
> for cntr < 0.
>
> The only way that can happen (aside from a bug) is through
> validate_event(), however that is already captured by the
> cpuc->is_fake test.
>
You are saying that we can never get called with assign[i] = -1.
I believe this is correct. The test was leftover from debugging.

> So remove these test and simplify the code.
>
> Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> ---
> arch/x86/kernel/cpu/perf_event_intel.c | 14 ++++----------
> 1 file changed, 4 insertions(+), 10 deletions(-)
>
> --- a/arch/x86/kernel/cpu/perf_event_intel.c
> +++ b/arch/x86/kernel/cpu/perf_event_intel.c
> @@ -1955,12 +1955,10 @@ static void intel_commit_scheduling(stru
>
> lockdep_assert_held(&excl_cntrs->lock);
>
> - if (cntr >= 0) {
> - if (c->flags & PERF_X86_EVENT_EXCL)
> - xl->init_state[cntr] = INTEL_EXCL_EXCLUSIVE;
> - else
> - xl->init_state[cntr] = INTEL_EXCL_SHARED;
> - }
> + if (c->flags & PERF_X86_EVENT_EXCL)
> + xl->init_state[cntr] = INTEL_EXCL_EXCLUSIVE;
> + else
> + xl->init_state[cntr] = INTEL_EXCL_SHARED;
> }
>
> static void
> @@ -2028,10 +2026,6 @@ intel_get_excl_constraints(struct cpu_hw
> if (!(c->flags & PERF_X86_EVENT_DYNAMIC)) {
> struct event_constraint *cx;
>
> - /* sanity check */
> - if (idx < 0)
> - return &emptyconstraint;
> -
> /*
> * grab pre-allocated constraint entry
> */
>
>