bus: arm-ccn: Add missing event attribute exclusions for host/guest

CCN PMUs have no knowledge into VM-related origins of the memory
traffic, therefore can't handle requests for host-only or guest-only
events.

Added appropriate exclusions (they should have been there from the
beginning). This required changing the error code returned, as the
userspace tool only re-negotiates the options (exclude_guest is true by
default) only for EINVAL.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
This commit is contained in:
Pawel Moll 2016-08-11 12:00:36 +01:00
parent 90d11e267a
commit 3249bce459
1 changed files with 3 additions and 2 deletions

View File

@ -745,9 +745,10 @@ static int arm_ccn_pmu_event_init(struct perf_event *event)
if (has_branch_stack(event) || event->attr.exclude_user || if (has_branch_stack(event) || event->attr.exclude_user ||
event->attr.exclude_kernel || event->attr.exclude_hv || event->attr.exclude_kernel || event->attr.exclude_hv ||
event->attr.exclude_idle) { event->attr.exclude_idle || event->attr.exclude_host ||
event->attr.exclude_guest) {
dev_warn(ccn->dev, "Can't exclude execution levels!\n"); dev_warn(ccn->dev, "Can't exclude execution levels!\n");
return -EOPNOTSUPP; return -EINVAL;
} }
if (event->cpu < 0) { if (event->cpu < 0) {