From: Kan Liang <kan.li...@linux.intel.com>

Implement filter_match callback for X86, which check whether an event is
schedulable on the current CPU.

Reviewed-by: Andi Kleen <a...@linux.intel.com>
Signed-off-by: Kan Liang <kan.li...@linux.intel.com>
---
 arch/x86/events/core.c       | 10 ++++++++++
 arch/x86/events/perf_event.h |  1 +
 2 files changed, 11 insertions(+)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 19e026a..18b75d6 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2650,6 +2650,14 @@ static int x86_pmu_aux_output_match(struct perf_event 
*event)
        return 0;
 }
 
+static int x86_pmu_filter_match(struct perf_event *event)
+{
+       if (x86_pmu.filter_match)
+               return x86_pmu.filter_match(event);
+
+       return 1;
+}
+
 static struct pmu pmu = {
        .pmu_enable             = x86_pmu_enable,
        .pmu_disable            = x86_pmu_disable,
@@ -2677,6 +2685,8 @@ static struct pmu pmu = {
        .check_period           = x86_pmu_check_period,
 
        .aux_output_match       = x86_pmu_aux_output_match,
+
+       .filter_match           = x86_pmu_filter_match,
 };
 
 void arch_perf_update_userpage(struct perf_event *event,
diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
index c1c90c3..f996686 100644
--- a/arch/x86/events/perf_event.h
+++ b/arch/x86/events/perf_event.h
@@ -870,6 +870,7 @@ struct x86_pmu {
 
        int (*aux_output_match) (struct perf_event *event);
 
+       int (*filter_match)(struct perf_event *event);
        /*
         * Hybrid support
         *
-- 
2.7.4

Reply via email to