On Wed, 25 Apr 2018 14:30:47 +0530 Ganapatrao Kulkarni <ganapatrao.kulkarni@xxxxxxxxxx> wrote: > +static int thunderx2_uncore_event_init(struct perf_event *event) ... > + /* > + * SOC PMU counters are shared across all cores. > + * Therefore, it does not support per-process mode. > + * Also, it does not support event sampling mode. > + */ > + if (is_sampling_event(event) || event->attach_state & PERF_ATTACH_TASK) > + return -EINVAL; > + > + /* SOC counters do not have usr/os/guest/host bits */ > + if (event->attr.exclude_user || event->attr.exclude_kernel || > + event->attr.exclude_host || event->attr.exclude_guest) > + return -EINVAL; > + > + if (event->cpu < 0) > + return -EINVAL; > + > + pmu_uncore = pmu_to_thunderx2_pmu_uncore(event->pmu); > + > + if (!pmu_uncore) > + return -ENODEV; > + > + /* Pick first online cpu from the node */ > + event->cpu = cpumask_first( > + cpumask_of_node(pmu_uncore->uncore_dev->node)); > + > + if (event->cpu >= nr_cpu_ids) > + return -EINVAL; > + > + if (event->attr.config >= pmu_uncore->uncore_dev->max_events) > + return -EINVAL; > + > + /* store event id */ > + hwc->config = event->attr.config; > + > + /* Validate the group */ > + if (!thunderx2_uncore_validate_event_group(event)) > + return -EINVAL; This PMU driver can be made more user-friendly by not just silently returning an error code such as -EINVAL, but by emitting a useful message describing the specific error via dmesg. Thanks, Kim -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html