s390/cpumf: remove WARN_ON_ONCE in counter start handler
authorThomas Richter <tmricht@linux.ibm.com>
Thu, 29 Apr 2021 13:04:30 +0000 (15:04 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Mon, 7 Jun 2021 15:06:58 +0000 (17:06 +0200)
Remove some WARN_ON_ONCE() warnings when a counter is started. Each
counter is installed function calls
event_sched_in() --> cpumf_pmu_add(..., PERF_EF_START).

This is done after the event has been created using
perf_pmu_event_init() which verifies the counter is valid.
Member hwc->config must be valid at this point.

Function cpumf_pmu_start(..., PERF_EF_RELOAD) is called from
function cpumf_pmu_add() for counter events. All other invocations of
cpumf_pmu_start(..., PERF_EF_RELOAD) are from the performance subsystem
for sampling events.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/perf_cpum_cf.c

index 91ee0f3..1b7a052 100644 (file)
@@ -362,15 +362,9 @@ static void cpumf_pmu_start(struct perf_event *event, int flags)
        struct cpu_cf_events *cpuhw = this_cpu_ptr(&cpu_cf_events);
        struct hw_perf_event *hwc = &event->hw;
 
-       if (WARN_ON_ONCE(!(hwc->state & PERF_HES_STOPPED)))
+       if (!(hwc->state & PERF_HES_STOPPED))
                return;
 
-       if (WARN_ON_ONCE(hwc->config == -1))
-               return;
-
-       if (flags & PERF_EF_RELOAD)
-               WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
-
        hwc->state = 0;
 
        /* (Re-)enable and activate the counter set */