[PATCH 4/4] perf/x86/cqm: Support cqm/mbm only for perf events

From: Vikas Shivappa
Date: Fri Apr 22 2016 - 20:28:44 EST


The cgroup support for cqm is broken. Instead of mapping RMID to a
cgroup currently its mapped to the task and then hence when task moves
cgroup we get incorrect count.

Also the conflict handling code which is meant to handle the case of
co-existing cgroup and task events, is broken. It reports very
confusing numbers of intermittent zero and some occupancy when perf is
run with cgroup and task events.

Hence removing support for the parts which are broken rather than
pretending to support it and giving incorrect data.

Signed-off-by: Vikas Shivappa <vikas.shivappa@xxxxxxxxxxxxxxx>
---
arch/x86/events/intel/cqm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/events/intel/cqm.c b/arch/x86/events/intel/cqm.c
index 7328b73..4633fb3 100644
--- a/arch/x86/events/intel/cqm.c
+++ b/arch/x86/events/intel/cqm.c
@@ -1479,7 +1479,8 @@ static int intel_cqm_event_init(struct perf_event *event)
event->attr.exclude_idle ||
event->attr.exclude_host ||
event->attr.exclude_guest ||
- event->attr.sample_period) /* no sampling */
+ event->attr.sample_period || /* no sampling */
+ !(event->attach_state & PERF_ATTACH_TASK))
return -EINVAL;

INIT_LIST_HEAD(&event->hw.cqm_group_entry);
--
1.9.1