[Intel-gfx] [PATCH 04/11] drm/i915/perf: do not warn when OA buffer is already allocated
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Mon Mar 26 09:08:24 UTC 2018
If 2 processes race to open the perf stream, it's possible that one of them
will see that OA buffer has already been allocated, while a previous process
is still finishing to reprogram the hardware (on gen8+).
The opening sequence has been reworked a few times and we probably lost
track of the order in which things are supposed to happen.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
drivers/gpu/drm/i915/i915_perf.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index f15dda286cfe..86c18ba46816 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -1435,13 +1435,15 @@ static int alloc_oa_buffer(struct drm_i915_private *dev_priv)
struct i915_vma *vma;
int ret;
- if (WARN_ON(dev_priv->perf.oa.oa_buffer.vma))
- return -ENODEV;
-
ret = i915_mutex_lock_interruptible(&dev_priv->drm);
if (ret)
return ret;
+ if (dev_priv->perf.oa.oa_buffer.vma) {
+ ret = -EBUSY;
+ goto unlock;
+ }
+
BUILD_BUG_ON_NOT_POWER_OF_2(OA_BUFFER_SIZE);
BUILD_BUG_ON(OA_BUFFER_SIZE < SZ_128K || OA_BUFFER_SIZE > SZ_16M);
--
2.16.3
More information about the Intel-gfx
mailing list