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

Remove the special codes in generic uncore_perf_event_update.
Introduce inline function to check the fixed counter event.

Signed-off-by: Kan Liang <kan.li...@intel.com>
---

Changes since V1:
 - New file to address check event->hw.idx >= UNCORE_PMC_IDX_FIXED

 arch/x86/events/intel/uncore.c | 4 ++--
 arch/x86/events/intel/uncore.h | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
index 1c5390f..76c1c78 100644
--- a/arch/x86/events/intel/uncore.c
+++ b/arch/x86/events/intel/uncore.c
@@ -203,7 +203,7 @@ static void uncore_assign_hw_event(struct intel_uncore_box 
*box,
        hwc->idx = idx;
        hwc->last_tag = ++box->tags[idx];
 
-       if (hwc->idx == UNCORE_PMC_IDX_FIXED) {
+       if (uncore_pmc_fixed(hwc->idx)) {
                hwc->event_base = uncore_fixed_ctr(box);
                hwc->config_base = uncore_fixed_ctl(box);
                return;
@@ -218,7 +218,7 @@ void uncore_perf_event_update(struct intel_uncore_box *box, 
struct perf_event *e
        u64 prev_count, new_count, delta;
        int shift;
 
-       if (event->hw.idx >= UNCORE_PMC_IDX_FIXED)
+       if (uncore_pmc_fixed(event->hw.idx))
                shift = 64 - uncore_fixed_ctr_bits(box);
        else
                shift = 64 - uncore_perf_ctr_bits(box);
diff --git a/arch/x86/events/intel/uncore.h b/arch/x86/events/intel/uncore.h
index df5989f..0ff08fba 100644
--- a/arch/x86/events/intel/uncore.h
+++ b/arch/x86/events/intel/uncore.h
@@ -156,6 +156,11 @@ static ssize_t __uncore_##_var##_show(struct kobject 
*kobj,                \
 static struct kobj_attribute format_attr_##_var =                      \
        __ATTR(_name, 0444, __uncore_##_var##_show, NULL)
 
+static inline bool uncore_pmc_fixed(int idx)
+{
+       return (idx == UNCORE_PMC_IDX_FIXED);
+}
+
 static inline unsigned uncore_pci_box_ctl(struct intel_uncore_box *box)
 {
        return box->pmu->type->box_ctl;
-- 
2.7.4

Reply via email to