On Thu, Feb 20, 2020 at 11:14:09AM -0500, Liang, Kan wrote:
On 2/20/2020 6:35 AM, Jiri Olsa wrote:
On Wed, Feb 19, 2020 at 11:08:39AM -0800, kan.liang@xxxxxxxxxxxxxxx wrote:
SNIP
+static bool violate_nmi_constraint;
+
+static bool metricgroup__has_constraint(struct pmu_event *pe)
+{
+ if (!pe->metric_constraint)
+ return false;
+
+ if (!strcmp(pe->metric_constraint, "NO_NMI_WATCHDOG") &&
+ sysctl__nmi_watchdog_enabled()) {
+ pr_warning("Splitting metric group %s into standalone metrics.\n",
+ pe->metric_name);
+ violate_nmi_constraint = true;
no static flags plz.. can't you just print that rest of the warning in here?
Because we only want to print the NMI watchdog warning once.
If there are more than one metric groups with constraint, the warning may be
printed several times. For example,
$ perf stat -M Page_Walks_Utilization,Page_Walks_Utilization
Splitting metric group Page_Walks_Utilization into standalone metrics.
Try disabling the NMI watchdog to comply NO_NMI_WATCHDOG metric
constraint:
echo 0 > /proc/sys/kernel/nmi_watchdog
perf stat ...
echo 1 > /proc/sys/kernel/nmi_watchdog
Splitting metric group Page_Walks_Utilization into standalone metrics.
Try disabling the NMI watchdog to comply NO_NMI_WATCHDOG metric
constraint:
echo 0 > /proc/sys/kernel/nmi_watchdog
perf stat ...
echo 1 > /proc/sys/kernel/nmi_watchdog
Is it OK?
If it's OK, I think we can remove the flag.
we use the 'print once' static flags in functions,
so plz keep it inside like WARN_ONCE, or use it directly