Re: [RFC 1/4] drm/i915: split out uncore_mmio_debug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 6/26/19 3:02 AM, Chris Wilson wrote:
Quoting Daniele Ceraolo Spurio (2019-06-24 21:31:49)
@@ -605,18 +614,20 @@ void intel_uncore_forcewake_get(struct intel_uncore *uncore,
  void intel_uncore_forcewake_user_get(struct intel_uncore *uncore)
  {
         spin_lock_irq(&uncore->lock);
+       spin_lock(&uncore->debug->lock);
         if (!uncore->user_forcewake.count++) {

Afaict, uncore->user_forcewake.count is only guarded by uncore->lock
and we only need to take debug->lock for the debug->unclaimed_mmio_check
manipulation. But there needs to be a shared usage counter around the
debug as it is shared state.

                 intel_uncore_forcewake_get__locked(uncore, FORCEWAKE_ALL);
/* Save and disable mmio debugging for the user bypass */
                 uncore->user_forcewake.saved_mmio_check =
-                       uncore->unclaimed_mmio_check;
+                       uncore->debug->unclaimed_mmio_check;
                 uncore->user_forcewake.saved_mmio_debug =
                         i915_modparams.mmio_debug;

Something more like

spin_lock_irq(&uncore->lock);
if (!uncore->user_forcewake_count++) {
	spin_lock(&uncore->debug->lock);
	if (!uncore->debug->usage_count++) {
		...
	}
	spin_unlock(&uncore->debug->lock);
}
...
spin_unlock_irq(&uncore->lock);
?
-Chris


I do something similar in the next patch in the series (with the lock still on the outside of the if). I've split that out because I've added some functional changes to the flow. I can squash the 2 patches if you thing it is better that way.

Daniele
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux