lkml.org 
[lkml]   [2018]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf/x86/intel: Introduce PMU flag for Extended PEBS
    Commit-ID:  3196234039155a33c80e52d7aa41a29dce9a5c51
    Gitweb: https://git.kernel.org/tip/3196234039155a33c80e52d7aa41a29dce9a5c51
    Author: Kan Liang <kan.liang@linux.intel.com>
    AuthorDate: Thu, 8 Mar 2018 18:15:39 -0800
    Committer: Ingo Molnar <mingo@kernel.org>
    CommitDate: Wed, 25 Jul 2018 11:50:49 +0200

    perf/x86/intel: Introduce PMU flag for Extended PEBS

    The Extended PEBS feature, introduced in the Goldmont Plus
    microarchitecture, supports all events as "Extended PEBS".

    Introduce flag PMU_FL_PEBS_ALL to indicate the platforms which support
    extended PEBS.

    To support all events, it needs to support all constraints for PEBS. To
    avoid duplicating all the constraints in the PEBS table, making the PEBS
    code search the normal constraints too.

    Based-on-code-from: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    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: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: acme@kernel.org
    Link: http://lkml.kernel.org/r/20180309021542.11374-1-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    ---
    arch/x86/events/intel/ds.c | 7 +++++++
    arch/x86/events/perf_event.h | 1 +
    2 files changed, 8 insertions(+)

    diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
    index 8dbba77e0518..9fd9cb1d2cc8 100644
    --- a/arch/x86/events/intel/ds.c
    +++ b/arch/x86/events/intel/ds.c
    @@ -871,6 +871,13 @@ struct event_constraint *intel_pebs_constraints(struct perf_event *event)
    }
    }

    + /*
    + * Extended PEBS support
    + * Makes the PEBS code search the normal constraints.
    + */
    + if (x86_pmu.flags & PMU_FL_PEBS_ALL)
    + return NULL;
    +
    return &emptyconstraint;
    }

    diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
    index 2430398befd8..156286335351 100644
    --- a/arch/x86/events/perf_event.h
    +++ b/arch/x86/events/perf_event.h
    @@ -673,6 +673,7 @@ do { \
    #define PMU_FL_HAS_RSP_1 0x2 /* has 2 equivalent offcore_rsp regs */
    #define PMU_FL_EXCL_CNTRS 0x4 /* has exclusive counter requirements */
    #define PMU_FL_EXCL_ENABLED 0x8 /* exclusive counter active */
    +#define PMU_FL_PEBS_ALL 0x10 /* all events are valid PEBS events */

    #define EVENT_VAR(_id) event_attr_##_id
    #define EVENT_PTR(_id) &event_attr_##_id.attr.attr
    \
     
     \ /
      Last update: 2018-07-25 16:34    [W:2.798 / U:1.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site