Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -3866,7 +3866,7 @@ __init int intel_pmu_init(void)
|
|||||||
c->idxmsk64 |= (1ULL << x86_pmu.num_counters) - 1;
|
c->idxmsk64 |= (1ULL << x86_pmu.num_counters) - 1;
|
||||||
}
|
}
|
||||||
c->idxmsk64 &=
|
c->idxmsk64 &=
|
||||||
~(~0UL << (INTEL_PMC_IDX_FIXED + x86_pmu.num_counters_fixed));
|
~(~0ULL << (INTEL_PMC_IDX_FIXED + x86_pmu.num_counters_fixed));
|
||||||
c->weight = hweight64(c->idxmsk64);
|
c->weight = hweight64(c->idxmsk64);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -219,6 +219,9 @@
|
|||||||
#define KNL_CHA_MSR_PMON_BOX_FILTER_TID 0x1ff
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_TID 0x1ff
|
||||||
#define KNL_CHA_MSR_PMON_BOX_FILTER_STATE (7 << 18)
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_STATE (7 << 18)
|
||||||
#define KNL_CHA_MSR_PMON_BOX_FILTER_OP (0xfffffe2aULL << 32)
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_OP (0xfffffe2aULL << 32)
|
||||||
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_REMOTE_NODE (0x1ULL << 32)
|
||||||
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_LOCAL_NODE (0x1ULL << 33)
|
||||||
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_NNC (0x1ULL << 37)
|
||||||
|
|
||||||
/* KNL EDC/MC UCLK */
|
/* KNL EDC/MC UCLK */
|
||||||
#define KNL_UCLK_MSR_PMON_CTR0_LOW 0x400
|
#define KNL_UCLK_MSR_PMON_CTR0_LOW 0x400
|
||||||
@@ -1902,6 +1905,10 @@ static int knl_cha_hw_config(struct intel_uncore_box *box,
|
|||||||
reg1->reg = HSWEP_C0_MSR_PMON_BOX_FILTER0 +
|
reg1->reg = HSWEP_C0_MSR_PMON_BOX_FILTER0 +
|
||||||
KNL_CHA_MSR_OFFSET * box->pmu->pmu_idx;
|
KNL_CHA_MSR_OFFSET * box->pmu->pmu_idx;
|
||||||
reg1->config = event->attr.config1 & knl_cha_filter_mask(idx);
|
reg1->config = event->attr.config1 & knl_cha_filter_mask(idx);
|
||||||
|
|
||||||
|
reg1->config |= KNL_CHA_MSR_PMON_BOX_FILTER_REMOTE_NODE;
|
||||||
|
reg1->config |= KNL_CHA_MSR_PMON_BOX_FILTER_LOCAL_NODE;
|
||||||
|
reg1->config |= KNL_CHA_MSR_PMON_BOX_FILTER_NNC;
|
||||||
reg1->idx = idx;
|
reg1->idx = idx;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -182,7 +182,7 @@ again:
|
|||||||
if (unlikely(event->hw.event_base == MSR_SMI_COUNT))
|
if (unlikely(event->hw.event_base == MSR_SMI_COUNT))
|
||||||
delta = sign_extend64(delta, 31);
|
delta = sign_extend64(delta, 31);
|
||||||
|
|
||||||
local64_add(now - prev, &event->count);
|
local64_add(delta, &event->count);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void msr_event_start(struct perf_event *event, int flags)
|
static void msr_event_start(struct perf_event *event, int flags)
|
||||||
|
Reference in New Issue
Block a user