]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/pmu: Replace closed with registered
authorLucas De Marchi <lucas.demarchi@intel.com>
Mon, 4 Nov 2024 21:35:11 +0000 (13:35 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 5 Nov 2024 19:24:33 +0000 (11:24 -0800)
Since i915 calls perf_pmu_register/perf_pmu_unregister, let's call the
variable "registered" so we can flip the logic and rely on it being
false by default. Looking at other drivers, it's also more common.
Examples: arch/x86/events/intel/uncore.c and
drivers/powercap/intel_rapl_common.c.

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241104213512.2314930-4-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/i915/i915_pmu.c
drivers/gpu/drm/i915/i915_pmu.h

index 86faa5705fd8f5e1fc47872cf68f1e98cebcda68..bd476297ed0a13ba6b6dc76cdaec5d182c7aebb8 100644 (file)
@@ -302,7 +302,7 @@ void i915_pmu_gt_parked(struct intel_gt *gt)
 {
        struct i915_pmu *pmu = &gt->i915->pmu;
 
-       if (pmu->closed)
+       if (!pmu->registered)
                return;
 
        spin_lock_irq(&pmu->lock);
@@ -324,7 +324,7 @@ void i915_pmu_gt_unparked(struct intel_gt *gt)
 {
        struct i915_pmu *pmu = &gt->i915->pmu;
 
-       if (pmu->closed)
+       if (!pmu->registered)
                return;
 
        spin_lock_irq(&pmu->lock);
@@ -626,7 +626,7 @@ static int i915_pmu_event_init(struct perf_event *event)
        struct drm_i915_private *i915 = pmu_to_i915(pmu);
        int ret;
 
-       if (pmu->closed)
+       if (!pmu->registered)
                return -ENODEV;
 
        if (event->attr.type != event->pmu->type)
@@ -724,7 +724,7 @@ static void i915_pmu_event_read(struct perf_event *event)
        struct hw_perf_event *hwc = &event->hw;
        u64 prev, new;
 
-       if (pmu->closed) {
+       if (!pmu->registered) {
                event->hw.state = PERF_HES_STOPPED;
                return;
        }
@@ -850,7 +850,7 @@ static void i915_pmu_event_start(struct perf_event *event, int flags)
 {
        struct i915_pmu *pmu = event_to_pmu(event);
 
-       if (pmu->closed)
+       if (!pmu->registered)
                return;
 
        i915_pmu_enable(event);
@@ -861,7 +861,7 @@ static void i915_pmu_event_stop(struct perf_event *event, int flags)
 {
        struct i915_pmu *pmu = event_to_pmu(event);
 
-       if (pmu->closed)
+       if (!pmu->registered)
                goto out;
 
        if (flags & PERF_EF_UPDATE)
@@ -877,7 +877,7 @@ static int i915_pmu_event_add(struct perf_event *event, int flags)
 {
        struct i915_pmu *pmu = event_to_pmu(event);
 
-       if (pmu->closed)
+       if (!pmu->registered)
                return -ENODEV;
 
        if (flags & PERF_EF_START)
@@ -1193,7 +1193,7 @@ static int i915_pmu_cpu_offline(unsigned int cpu, struct hlist_node *node)
         * Unregistering an instance generates a CPU offline event which we must
         * ignore to avoid incorrectly modifying the shared i915_pmu_cpumask.
         */
-       if (pmu->closed)
+       if (!pmu->registered)
                return 0;
 
        if (cpumask_test_and_clear_cpu(cpu, &i915_pmu_cpumask)) {
@@ -1263,8 +1263,6 @@ void i915_pmu_register(struct drm_i915_private *i915)
        };
        int ret = -ENOMEM;
 
-       pmu->closed = true;
-
        spin_lock_init(&pmu->lock);
        hrtimer_init(&pmu->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
        pmu->timer.function = i915_sample;
@@ -1313,7 +1311,7 @@ void i915_pmu_register(struct drm_i915_private *i915)
        if (ret)
                goto err_unreg;
 
-       pmu->closed = false;
+       pmu->registered = true;
 
        return;
 
@@ -1334,12 +1332,15 @@ void i915_pmu_unregister(struct drm_i915_private *i915)
 {
        struct i915_pmu *pmu = &i915->pmu;
 
+       if (!pmu->registered)
+               return;
+
        /*
         * "Disconnect" the PMU callbacks - since all are atomic synchronize_rcu
         * ensures all currently executing ones will have exited before we
         * proceed with unregistration.
         */
-       pmu->closed = true;
+       pmu->registered = false;
        synchronize_rcu();
 
        hrtimer_cancel(&pmu->timer);
index 41af038c373882c785e3d8793acc2b73543fdff5..8e66d63d0c9f98c061c6ad6a31ae36303d1f9b8a 100644 (file)
@@ -68,9 +68,9 @@ struct i915_pmu {
         */
        struct pmu base;
        /**
-        * @closed: i915 is unregistering.
+        * @registered: PMU is registered and not in the unregistering process.
         */
-       bool closed;
+       bool registered;
        /**
         * @name: Name as registered with perf core.
         */