• P
    perf/x86: Remove PERF_X86_EVENT_COMMITTED · 1f6a1e2d
    Peter Zijlstra 提交于
    The flag PERF_X86_EVENT_COMMITTED is used to find uncommitted events
    for which to call put_event_constraint() when scheduling fails.
    
    These are the newly added events to the list, and must form, per
    definition, the tail of cpuc->event_list[]. By computing the list
    index of the last successfull schedule, then iteration can start there
    and the flag is redundant.
    
    There are only 3 callers of x86_schedule_events(), notably:
    
     - x86_pmu_add()
     - x86_pmu_commit_txn()
     - validate_group()
    
    For x86_pmu_add(), cpuc->n_events isn't updated until after
    schedule_events() succeeds, therefore cpuc->n_events points to the
    desired index.
    
    For x86_pmu_commit_txn(), cpuc->n_events is updated, but we can
    trivially compute the desired value with cpuc->n_txn -- the number of
    events added in this transaction.
    
    For validate_group(), we can make the rule for x86_pmu_add() work by
    simply setting cpuc->n_events to 0 before calling schedule_events().
    Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: NStephane Eranian <eranian@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Signed-off-by: NIngo Molnar <mingo@kernel.org>
    1f6a1e2d
core.c 60.7 KB