* [CI 1/3] drm/i915: Track ggtt fence reservations under its own mutex
@ 2019-08-22 0:23 Chris Wilson
2019-08-22 0:23 ` [CI 2/3] drm/i915: Pull obj->userfault tracking under the ggtt->mutex Chris Wilson
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Chris Wilson @ 2019-08-22 0:23 UTC (permalink / raw)
To: intel-gfx
We can reduce the locking for fence registers from the dev->struct_mutex
to a local mutex. We could introduce a mutex for the sole purpose of
tracking the fence acquisition, except there is a little bit of overlap
with the fault tracking, so use the i915_ggtt.mutex as it covers both.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
---
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 7 ++
drivers/gpu/drm/i915/gvt/aperture_gm.c | 10 +-
drivers/gpu/drm/i915/i915_debugfs.c | 5 +-
drivers/gpu/drm/i915/i915_gem_fence_reg.c | 108 ++++++++++++-------
drivers/gpu/drm/i915/i915_gem_fence_reg.h | 2 +-
drivers/gpu/drm/i915/i915_vma.h | 4 +-
6 files changed, 87 insertions(+), 49 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index 298c4d191439..a0098fc35921 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -1157,7 +1157,14 @@ static int evict_fence(void *data)
goto out_unlock;
}
+ err = i915_vma_pin(arg->vma, 0, 0, PIN_GLOBAL | PIN_MAPPABLE);
+ if (err) {
+ pr_err("Unable to pin vma for Y-tiled fence; err:%d\n", err);
+ goto out_unlock;
+ }
+
err = i915_vma_pin_fence(arg->vma);
+ i915_vma_unpin(arg->vma);
if (err) {
pr_err("Unable to pin Y-tiled fence; err:%d\n", err);
goto out_unlock;
diff --git a/drivers/gpu/drm/i915/gvt/aperture_gm.c b/drivers/gpu/drm/i915/gvt/aperture_gm.c
index c3d19d88da40..5ff2437b2998 100644
--- a/drivers/gpu/drm/i915/gvt/aperture_gm.c
+++ b/drivers/gpu/drm/i915/gvt/aperture_gm.c
@@ -172,14 +172,14 @@ static void free_vgpu_fence(struct intel_vgpu *vgpu)
intel_runtime_pm_get(&dev_priv->runtime_pm);
- mutex_lock(&dev_priv->drm.struct_mutex);
+ mutex_lock(&dev_priv->ggtt.vm.mutex);
_clear_vgpu_fence(vgpu);
for (i = 0; i < vgpu_fence_sz(vgpu); i++) {
reg = vgpu->fence.regs[i];
i915_unreserve_fence(reg);
vgpu->fence.regs[i] = NULL;
}
- mutex_unlock(&dev_priv->drm.struct_mutex);
+ mutex_unlock(&dev_priv->ggtt.vm.mutex);
intel_runtime_pm_put_unchecked(&dev_priv->runtime_pm);
}
@@ -195,7 +195,7 @@ static int alloc_vgpu_fence(struct intel_vgpu *vgpu)
intel_runtime_pm_get(rpm);
/* Request fences from host */
- mutex_lock(&dev_priv->drm.struct_mutex);
+ mutex_lock(&dev_priv->ggtt.vm.mutex);
for (i = 0; i < vgpu_fence_sz(vgpu); i++) {
reg = i915_reserve_fence(dev_priv);
@@ -207,7 +207,7 @@ static int alloc_vgpu_fence(struct intel_vgpu *vgpu)
_clear_vgpu_fence(vgpu);
- mutex_unlock(&dev_priv->drm.struct_mutex);
+ mutex_unlock(&dev_priv->ggtt.vm.mutex);
intel_runtime_pm_put_unchecked(rpm);
return 0;
out_free_fence:
@@ -220,7 +220,7 @@ static int alloc_vgpu_fence(struct intel_vgpu *vgpu)
i915_unreserve_fence(reg);
vgpu->fence.regs[i] = NULL;
}
- mutex_unlock(&dev_priv->drm.struct_mutex);
+ mutex_unlock(&dev_priv->ggtt.vm.mutex);
intel_runtime_pm_put_unchecked(rpm);
return -ENOSPC;
}
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index b39226d7f8d2..f5d6702ec7df 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -652,10 +652,11 @@ static int i915_gem_fence_regs_info(struct seq_file *m, void *data)
rcu_read_lock();
for (i = 0; i < i915->ggtt.num_fences; i++) {
- struct i915_vma *vma = i915->ggtt.fence_regs[i].vma;
+ struct i915_fence_reg *reg = &i915->ggtt.fence_regs[i];
+ struct i915_vma *vma = reg->vma;
seq_printf(m, "Fence %d, pin count = %d, object = ",
- i, i915->ggtt.fence_regs[i].pin_count);
+ i, atomic_read(®->pin_count));
if (!vma)
seq_puts(m, "unused");
else
diff --git a/drivers/gpu/drm/i915/i915_gem_fence_reg.c b/drivers/gpu/drm/i915/i915_gem_fence_reg.c
index c9654f1a468f..6a33a0bb97a9 100644
--- a/drivers/gpu/drm/i915/i915_gem_fence_reg.c
+++ b/drivers/gpu/drm/i915/i915_gem_fence_reg.c
@@ -299,15 +299,24 @@ static int fence_update(struct i915_fence_reg *fence,
*/
int i915_vma_put_fence(struct i915_vma *vma)
{
+ struct i915_ggtt *ggtt = i915_vm_to_ggtt(vma->vm);
struct i915_fence_reg *fence = vma->fence;
+ int err;
if (!fence)
return 0;
- if (fence->pin_count)
+ if (atomic_read(&fence->pin_count))
return -EBUSY;
- return fence_update(fence, NULL);
+ err = mutex_lock_interruptible(&ggtt->vm.mutex);
+ if (err)
+ return err;
+
+ err = fence_update(fence, NULL);
+ mutex_unlock(&ggtt->vm.mutex);
+
+ return err;
}
static struct i915_fence_reg *fence_find(struct drm_i915_private *i915)
@@ -317,7 +326,7 @@ static struct i915_fence_reg *fence_find(struct drm_i915_private *i915)
list_for_each_entry(fence, &i915->ggtt.fence_list, link) {
GEM_BUG_ON(fence->vma && fence->vma->fence != fence);
- if (fence->pin_count)
+ if (atomic_read(&fence->pin_count))
continue;
return fence;
@@ -330,6 +339,48 @@ static struct i915_fence_reg *fence_find(struct drm_i915_private *i915)
return ERR_PTR(-EDEADLK);
}
+static int __i915_vma_pin_fence(struct i915_vma *vma)
+{
+ struct i915_ggtt *ggtt = i915_vm_to_ggtt(vma->vm);
+ struct i915_fence_reg *fence;
+ struct i915_vma *set = i915_gem_object_is_tiled(vma->obj) ? vma : NULL;
+ int err;
+
+ /* Just update our place in the LRU if our fence is getting reused. */
+ if (vma->fence) {
+ fence = vma->fence;
+ GEM_BUG_ON(fence->vma != vma);
+ atomic_inc(&fence->pin_count);
+ if (!fence->dirty) {
+ list_move_tail(&fence->link, &ggtt->fence_list);
+ return 0;
+ }
+ } else if (set) {
+ fence = fence_find(vma->vm->i915);
+ if (IS_ERR(fence))
+ return PTR_ERR(fence);
+
+ GEM_BUG_ON(atomic_read(&fence->pin_count));
+ atomic_inc(&fence->pin_count);
+ } else {
+ return 0;
+ }
+
+ err = fence_update(fence, set);
+ if (err)
+ goto out_unpin;
+
+ GEM_BUG_ON(fence->vma != set);
+ GEM_BUG_ON(vma->fence != (set ? fence : NULL));
+
+ if (set)
+ return 0;
+
+out_unpin:
+ atomic_dec(&fence->pin_count);
+ return err;
+}
+
/**
* i915_vma_pin_fence - set up fencing for a vma
* @vma: vma to map through a fence reg
@@ -350,8 +401,6 @@ static struct i915_fence_reg *fence_find(struct drm_i915_private *i915)
*/
int i915_vma_pin_fence(struct i915_vma *vma)
{
- struct i915_fence_reg *fence;
- struct i915_vma *set = i915_gem_object_is_tiled(vma->obj) ? vma : NULL;
int err;
/*
@@ -359,39 +408,16 @@ int i915_vma_pin_fence(struct i915_vma *vma)
* must keep the device awake whilst using the fence.
*/
assert_rpm_wakelock_held(&vma->vm->i915->runtime_pm);
+ GEM_BUG_ON(!i915_vma_is_pinned(vma));
+ GEM_BUG_ON(!i915_vma_is_ggtt(vma));
- /* Just update our place in the LRU if our fence is getting reused. */
- if (vma->fence) {
- fence = vma->fence;
- GEM_BUG_ON(fence->vma != vma);
- fence->pin_count++;
- if (!fence->dirty) {
- list_move_tail(&fence->link,
- &fence->i915->ggtt.fence_list);
- return 0;
- }
- } else if (set) {
- fence = fence_find(vma->vm->i915);
- if (IS_ERR(fence))
- return PTR_ERR(fence);
-
- GEM_BUG_ON(fence->pin_count);
- fence->pin_count++;
- } else
- return 0;
-
- err = fence_update(fence, set);
+ err = mutex_lock_interruptible(&vma->vm->mutex);
if (err)
- goto out_unpin;
+ return err;
- GEM_BUG_ON(fence->vma != set);
- GEM_BUG_ON(vma->fence != (set ? fence : NULL));
-
- if (set)
- return 0;
+ err = __i915_vma_pin_fence(vma);
+ mutex_unlock(&vma->vm->mutex);
-out_unpin:
- fence->pin_count--;
return err;
}
@@ -404,16 +430,17 @@ int i915_vma_pin_fence(struct i915_vma *vma)
*/
struct i915_fence_reg *i915_reserve_fence(struct drm_i915_private *i915)
{
+ struct i915_ggtt *ggtt = &i915->ggtt;
struct i915_fence_reg *fence;
int count;
int ret;
- lockdep_assert_held(&i915->drm.struct_mutex);
+ lockdep_assert_held(&ggtt->vm.mutex);
/* Keep at least one fence available for the display engine. */
count = 0;
- list_for_each_entry(fence, &i915->ggtt.fence_list, link)
- count += !fence->pin_count;
+ list_for_each_entry(fence, &ggtt->fence_list, link)
+ count += !atomic_read(&fence->pin_count);
if (count <= 1)
return ERR_PTR(-ENOSPC);
@@ -429,6 +456,7 @@ struct i915_fence_reg *i915_reserve_fence(struct drm_i915_private *i915)
}
list_del(&fence->link);
+
return fence;
}
@@ -440,9 +468,11 @@ struct i915_fence_reg *i915_reserve_fence(struct drm_i915_private *i915)
*/
void i915_unreserve_fence(struct i915_fence_reg *fence)
{
- lockdep_assert_held(&fence->i915->drm.struct_mutex);
+ struct i915_ggtt *ggtt = &fence->i915->ggtt;
+
+ lockdep_assert_held(&ggtt->vm.mutex);
- list_add(&fence->link, &fence->i915->ggtt.fence_list);
+ list_add(&fence->link, &ggtt->fence_list);
}
/**
diff --git a/drivers/gpu/drm/i915/i915_gem_fence_reg.h b/drivers/gpu/drm/i915/i915_gem_fence_reg.h
index 37e4f104f7c0..99866fb9d94f 100644
--- a/drivers/gpu/drm/i915/i915_gem_fence_reg.h
+++ b/drivers/gpu/drm/i915/i915_gem_fence_reg.h
@@ -41,7 +41,7 @@ struct i915_fence_reg {
struct list_head link;
struct drm_i915_private *i915;
struct i915_vma *vma;
- int pin_count;
+ atomic_t pin_count;
int id;
/**
* Whether the tiling parameters for the currently
diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index 9e7d8f4154b2..cf6c0437091d 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -426,8 +426,8 @@ int __must_check i915_vma_put_fence(struct i915_vma *vma);
static inline void __i915_vma_unpin_fence(struct i915_vma *vma)
{
- GEM_BUG_ON(vma->fence->pin_count <= 0);
- vma->fence->pin_count--;
+ GEM_BUG_ON(atomic_read(&vma->fence->pin_count) <= 0);
+ atomic_dec(&vma->fence->pin_count);
}
/**
--
2.23.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 5+ messages in thread* [CI 2/3] drm/i915: Pull obj->userfault tracking under the ggtt->mutex 2019-08-22 0:23 [CI 1/3] drm/i915: Track ggtt fence reservations under its own mutex Chris Wilson @ 2019-08-22 0:23 ` Chris Wilson 2019-08-22 0:23 ` [CI 3/3] drm/i915: Replace i915_vma_put_fence() Chris Wilson ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: Chris Wilson @ 2019-08-22 0:23 UTC (permalink / raw) To: intel-gfx Since we want to revoke the ggtt vma from only under the ggtt->mutex, we need to move protection of the userfault tracking from the struct_mutex to the ggtt->mutex. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> --- drivers/gpu/drm/i915/gem/i915_gem_mman.c | 10 +++++++--- drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_vma.c | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c index dba5dd779149..595539a09e38 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c @@ -306,14 +306,17 @@ vm_fault_t i915_gem_fault(struct vm_fault *vmf) if (ret) goto err_fence; - /* Mark as being mmapped into userspace for later revocation */ assert_rpm_wakelock_held(rpm); + + /* Mark as being mmapped into userspace for later revocation */ + mutex_lock(&i915->ggtt.vm.mutex); if (!i915_vma_set_userfault(vma) && !obj->userfault_count++) list_add(&obj->userfault_link, &i915->ggtt.userfault_list); + mutex_unlock(&i915->ggtt.vm.mutex); + if (CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND) intel_wakeref_auto(&i915->ggtt.userfault_wakeref, msecs_to_jiffies_timeout(CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND)); - GEM_BUG_ON(!obj->userfault_count); i915_vma_set_ggtt_write(vma); @@ -408,8 +411,8 @@ void i915_gem_object_release_mmap(struct drm_i915_gem_object *obj) * requirement that operations to the GGTT be made holding the RPM * wakeref. */ - lockdep_assert_held(&i915->drm.struct_mutex); wakeref = intel_runtime_pm_get(&i915->runtime_pm); + mutex_lock(&i915->ggtt.vm.mutex); if (!obj->userfault_count) goto out; @@ -426,6 +429,7 @@ void i915_gem_object_release_mmap(struct drm_i915_gem_object *obj) wmb(); out: + mutex_unlock(&i915->ggtt.vm.mutex); intel_runtime_pm_put(&i915->runtime_pm, wakeref); } diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index f5d6702ec7df..b0f51591f2e4 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -94,7 +94,7 @@ static char get_tiling_flag(struct drm_i915_gem_object *obj) static char get_global_flag(struct drm_i915_gem_object *obj) { - return obj->userfault_count ? 'g' : ' '; + return READ_ONCE(obj->userfault_count) ? 'g' : ' '; } static char get_pin_mapped_flag(struct drm_i915_gem_object *obj) diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c index 79f9d1fb7611..9840cb2f70b9 100644 --- a/drivers/gpu/drm/i915/i915_vma.c +++ b/drivers/gpu/drm/i915/i915_vma.c @@ -864,7 +864,7 @@ void i915_vma_revoke_mmap(struct i915_vma *vma) struct drm_vma_offset_node *node = &vma->obj->base.vma_node; u64 vma_offset; - lockdep_assert_held(&vma->vm->i915->drm.struct_mutex); + lockdep_assert_held(&vma->vm->mutex); if (!i915_vma_has_userfault(vma)) return; @@ -987,7 +987,9 @@ int i915_vma_unbind(struct i915_vma *vma) return ret; /* Force a pagefault for domain tracking on next user access */ + mutex_lock(&vma->vm->mutex); i915_vma_revoke_mmap(vma); + mutex_unlock(&vma->vm->mutex); __i915_vma_iounmap(vma); vma->flags &= ~I915_VMA_CAN_FENCE; -- 2.23.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [CI 3/3] drm/i915: Replace i915_vma_put_fence() 2019-08-22 0:23 [CI 1/3] drm/i915: Track ggtt fence reservations under its own mutex Chris Wilson 2019-08-22 0:23 ` [CI 2/3] drm/i915: Pull obj->userfault tracking under the ggtt->mutex Chris Wilson @ 2019-08-22 0:23 ` Chris Wilson 2019-08-22 1:00 ` ✓ Fi.CI.BAT: success for series starting with [CI,1/3] drm/i915: Track ggtt fence reservations under its own mutex Patchwork 2019-08-22 17:45 ` ✗ Fi.CI.IGT: failure " Patchwork 3 siblings, 0 replies; 5+ messages in thread From: Chris Wilson @ 2019-08-22 0:23 UTC (permalink / raw) To: intel-gfx Avoid calling i915_vma_put_fence() by using our alternate paths that bind a secondary vma avoiding the original fenced vma. For the few instances where we need to release the fence (i.e. on binding when the GGTT range becomes invalid), replace the put_fence with a revoke_fence. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> --- drivers/gpu/drm/i915/display/intel_overlay.c | 4 --- drivers/gpu/drm/i915/gem/i915_gem_domain.c | 16 ++++++--- .../gpu/drm/i915/gem/i915_gem_execbuffer.c | 9 ++--- drivers/gpu/drm/i915/i915_gem.c | 36 ++++++++----------- drivers/gpu/drm/i915/i915_gem_fence_reg.c | 16 +++------ drivers/gpu/drm/i915/i915_vma.c | 4 ++- drivers/gpu/drm/i915/i915_vma.h | 4 +-- 7 files changed, 38 insertions(+), 51 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c index eca41c4a5aa6..29edfc343716 100644 --- a/drivers/gpu/drm/i915/display/intel_overlay.c +++ b/drivers/gpu/drm/i915/display/intel_overlay.c @@ -770,10 +770,6 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay, } intel_frontbuffer_flush(new_bo->frontbuffer, ORIGIN_DIRTYFB); - ret = i915_vma_put_fence(vma); - if (ret) - goto out_unpin; - if (!overlay->active) { u32 oconfig; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_domain.c b/drivers/gpu/drm/i915/gem/i915_gem_domain.c index a1afc2690e9e..60134c5aefa7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_domain.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_domain.c @@ -221,6 +221,8 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj, * state and so involves less work. */ if (atomic_read(&obj->bind_count)) { + struct drm_i915_private *i915 = to_i915(obj->base.dev); + /* Before we change the PTE, the GPU must not be accessing it. * If we wait upon the object, we know that all the bound * VMA are no longer active. @@ -232,8 +234,7 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj, if (ret) return ret; - if (!HAS_LLC(to_i915(obj->base.dev)) && - cache_level != I915_CACHE_NONE) { + if (!HAS_LLC(i915) && cache_level != I915_CACHE_NONE) { /* Access to snoopable pages through the GTT is * incoherent and on some machines causes a hard * lockup. Relinquish the CPU mmaping to force @@ -241,6 +242,10 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj, * then double check if the GTT mapping is still * valid for that pointer access. */ + ret = mutex_lock_interruptible(&i915->ggtt.vm.mutex); + if (ret) + return ret; + i915_gem_object_release_mmap(obj); /* As we no longer need a fence for GTT access, @@ -251,10 +256,13 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj, * supposed to be linear. */ for_each_ggtt_vma(vma, obj) { - ret = i915_vma_put_fence(vma); + ret = i915_vma_revoke_fence(vma); if (ret) - return ret; + break; } + mutex_unlock(&i915->ggtt.vm.mutex); + if (ret) + return ret; } else { /* We either have incoherent backing store and * so no GTT access or the architecture is fully diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c index 2dca2962c73a..b5f6937369ea 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c @@ -1024,6 +1024,9 @@ static void *reloc_iomap(struct drm_i915_gem_object *obj, struct i915_vma *vma; int err; + if (i915_gem_object_is_tiled(obj)) + return ERR_PTR(-EINVAL); + if (use_cpu_reloc(cache, obj)) return NULL; @@ -1047,12 +1050,6 @@ static void *reloc_iomap(struct drm_i915_gem_object *obj, if (err) /* no inactive aperture space, use cpu reloc */ return NULL; } else { - err = i915_vma_put_fence(vma); - if (err) { - i915_vma_unpin(vma); - return ERR_PTR(err); - } - cache->node.start = vma->node.start; cache->node.mm = (void *)vma; } diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 68976689d569..eb31b69a316a 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -343,20 +343,16 @@ i915_gem_gtt_pread(struct drm_i915_gem_object *obj, return ret; wakeref = intel_runtime_pm_get(&i915->runtime_pm); - vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, - PIN_MAPPABLE | - PIN_NONBLOCK /* NOWARN */ | - PIN_NOEVICT); + vma = ERR_PTR(-ENODEV); + if (!i915_gem_object_is_tiled(obj)) + vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, + PIN_MAPPABLE | + PIN_NONBLOCK /* NOWARN */ | + PIN_NOEVICT); if (!IS_ERR(vma)) { node.start = i915_ggtt_offset(vma); node.allocated = false; - ret = i915_vma_put_fence(vma); - if (ret) { - i915_vma_unpin(vma); - vma = ERR_PTR(ret); - } - } - if (IS_ERR(vma)) { + } else { ret = insert_mappable_node(ggtt, &node, PAGE_SIZE); if (ret) goto out_unlock; @@ -557,20 +553,16 @@ i915_gem_gtt_pwrite_fast(struct drm_i915_gem_object *obj, wakeref = intel_runtime_pm_get(rpm); } - vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, - PIN_MAPPABLE | - PIN_NONBLOCK /* NOWARN */ | - PIN_NOEVICT); + vma = ERR_PTR(-ENODEV); + if (!i915_gem_object_is_tiled(obj)) + vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, + PIN_MAPPABLE | + PIN_NONBLOCK /* NOWARN */ | + PIN_NOEVICT); if (!IS_ERR(vma)) { node.start = i915_ggtt_offset(vma); node.allocated = false; - ret = i915_vma_put_fence(vma); - if (ret) { - i915_vma_unpin(vma); - vma = ERR_PTR(ret); - } - } - if (IS_ERR(vma)) { + } else { ret = insert_mappable_node(ggtt, &node, PAGE_SIZE); if (ret) goto out_rpm; diff --git a/drivers/gpu/drm/i915/i915_gem_fence_reg.c b/drivers/gpu/drm/i915/i915_gem_fence_reg.c index 6a33a0bb97a9..615a9f4ef30c 100644 --- a/drivers/gpu/drm/i915/i915_gem_fence_reg.c +++ b/drivers/gpu/drm/i915/i915_gem_fence_reg.c @@ -287,7 +287,7 @@ static int fence_update(struct i915_fence_reg *fence, } /** - * i915_vma_put_fence - force-remove fence for a VMA + * i915_vma_revoke_fence - force-remove fence for a VMA * @vma: vma to map linearly (not through a fence reg) * * This function force-removes any fence from the given object, which is useful @@ -297,26 +297,18 @@ static int fence_update(struct i915_fence_reg *fence, * * 0 on success, negative error code on failure. */ -int i915_vma_put_fence(struct i915_vma *vma) +int i915_vma_revoke_fence(struct i915_vma *vma) { - struct i915_ggtt *ggtt = i915_vm_to_ggtt(vma->vm); struct i915_fence_reg *fence = vma->fence; - int err; + lockdep_assert_held(&vma->vm->mutex); if (!fence) return 0; if (atomic_read(&fence->pin_count)) return -EBUSY; - err = mutex_lock_interruptible(&ggtt->vm.mutex); - if (err) - return err; - - err = fence_update(fence, NULL); - mutex_unlock(&ggtt->vm.mutex); - - return err; + return fence_update(fence, NULL); } static struct i915_fence_reg *fence_find(struct drm_i915_private *i915) diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c index 9840cb2f70b9..e0e677b2a3a9 100644 --- a/drivers/gpu/drm/i915/i915_vma.c +++ b/drivers/gpu/drm/i915/i915_vma.c @@ -982,7 +982,9 @@ int i915_vma_unbind(struct i915_vma *vma) GEM_BUG_ON(i915_vma_has_ggtt_write(vma)); /* release the fence reg _after_ flushing */ - ret = i915_vma_put_fence(vma); + mutex_lock(&vma->vm->mutex); + ret = i915_vma_revoke_fence(vma); + mutex_unlock(&vma->vm->mutex); if (ret) return ret; diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h index cf6c0437091d..889fc7cb910a 100644 --- a/drivers/gpu/drm/i915/i915_vma.h +++ b/drivers/gpu/drm/i915/i915_vma.h @@ -421,8 +421,8 @@ static inline struct page *i915_vma_first_page(struct i915_vma *vma) * * True if the vma has a fence, false otherwise. */ -int i915_vma_pin_fence(struct i915_vma *vma); -int __must_check i915_vma_put_fence(struct i915_vma *vma); +int __must_check i915_vma_pin_fence(struct i915_vma *vma); +int __must_check i915_vma_revoke_fence(struct i915_vma *vma); static inline void __i915_vma_unpin_fence(struct i915_vma *vma) { -- 2.23.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [CI,1/3] drm/i915: Track ggtt fence reservations under its own mutex 2019-08-22 0:23 [CI 1/3] drm/i915: Track ggtt fence reservations under its own mutex Chris Wilson 2019-08-22 0:23 ` [CI 2/3] drm/i915: Pull obj->userfault tracking under the ggtt->mutex Chris Wilson 2019-08-22 0:23 ` [CI 3/3] drm/i915: Replace i915_vma_put_fence() Chris Wilson @ 2019-08-22 1:00 ` Patchwork 2019-08-22 17:45 ` ✗ Fi.CI.IGT: failure " Patchwork 3 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2019-08-22 1:00 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx == Series Details == Series: series starting with [CI,1/3] drm/i915: Track ggtt fence reservations under its own mutex URL : https://patchwork.freedesktop.org/series/65585/ State : success == Summary == CI Bug Log - changes from CI_DRM_6759 -> Patchwork_14134 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/ Known issues ------------ Here are the changes found in Patchwork_14134 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_basic@create-close: - fi-icl-u3: [PASS][1] -> [DMESG-WARN][2] ([fdo#107724]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-icl-u3/igt@gem_basic@create-close.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-icl-u3/igt@gem_basic@create-close.html * igt@i915_selftest@live_execlists: - fi-skl-gvtdvm: [PASS][3] -> [DMESG-FAIL][4] ([fdo#111108]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html * igt@i915_selftest@live_reset: - fi-icl-u2: [PASS][5] -> [INCOMPLETE][6] ([fdo#107713]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-icl-u2/igt@i915_selftest@live_reset.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-icl-u2/igt@i915_selftest@live_reset.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-kbl-7567u: [PASS][7] -> [DMESG-FAIL][8] ([fdo#102505] / [fdo#105079]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@kms_chamelium@common-hpd-after-suspend.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@kms_chamelium@common-hpd-after-suspend.html * igt@kms_pipe_crc_basic@read-crc-pipe-c: - fi-kbl-7567u: [PASS][9] -> [SKIP][10] ([fdo#109271]) +19 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@kms_pipe_crc_basic@read-crc-pipe-c.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@kms_pipe_crc_basic@read-crc-pipe-c.html #### Possible fixes #### * igt@debugfs_test@read_all_entries: - fi-kbl-7567u: [DMESG-WARN][11] ([fdo#103558] / [fdo#105602]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@debugfs_test@read_all_entries.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@debugfs_test@read_all_entries.html * igt@gem_exec_suspend@basic-s3: - fi-kbl-7567u: [DMESG-WARN][13] ([fdo#103558] / [fdo#105079] / [fdo#105602]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@gem_exec_suspend@basic-s3.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@gem_exec_suspend@basic-s3.html * igt@kms_busy@basic-flip-a: - fi-kbl-7567u: [SKIP][15] ([fdo#109271] / [fdo#109278]) -> [PASS][16] +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html * igt@kms_chamelium@hdmi-edid-read: - fi-kbl-7567u: [FAIL][17] ([fdo#109569]) -> [PASS][18] +1 similar issue [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@kms_chamelium@hdmi-edid-read.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@kms_chamelium@hdmi-edid-read.html #### Warnings #### * igt@kms_chamelium@hdmi-hpd-fast: - fi-icl-u2: [FAIL][19] ([fdo#109483]) -> [FAIL][20] ([fdo#111407]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html - fi-kbl-7567u: [FAIL][21] ([fdo#109800]) -> [FAIL][22] ([fdo#111407]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@kms_chamelium@hdmi-hpd-fast.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - fi-kbl-7567u: [DMESG-FAIL][23] ([fdo#105079]) -> [SKIP][24] ([fdo#109271]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/fi-kbl-7567u/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/fi-kbl-7567u/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102505]: https://bugs.freedesktop.org/show_bug.cgi?id=102505 [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558 [fdo#105079]: https://bugs.freedesktop.org/show_bug.cgi?id=105079 [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483 [fdo#109569]: https://bugs.freedesktop.org/show_bug.cgi?id=109569 [fdo#109800]: https://bugs.freedesktop.org/show_bug.cgi?id=109800 [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045 [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096 [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108 [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407 Participating hosts (56 -> 48) ------------------------------ Missing (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_6759 -> Patchwork_14134 CI-20190529: 20190529 CI_DRM_6759: ef8503f9bd35e778de52953fe627fd50f316d712 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5146: 357dbe1869d88a2f08bcee4eebceff4ee9014424 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_14134: 685b3c8a0cddb961903eb52c27e1169270175643 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 685b3c8a0cdd drm/i915: Replace i915_vma_put_fence() fd03dd5c60a4 drm/i915: Pull obj->userfault tracking under the ggtt->mutex fa3afb60ee01 drm/i915: Track ggtt fence reservations under its own mutex == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* ✗ Fi.CI.IGT: failure for series starting with [CI,1/3] drm/i915: Track ggtt fence reservations under its own mutex 2019-08-22 0:23 [CI 1/3] drm/i915: Track ggtt fence reservations under its own mutex Chris Wilson ` (2 preceding siblings ...) 2019-08-22 1:00 ` ✓ Fi.CI.BAT: success for series starting with [CI,1/3] drm/i915: Track ggtt fence reservations under its own mutex Patchwork @ 2019-08-22 17:45 ` Patchwork 3 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2019-08-22 17:45 UTC (permalink / raw) To: Chris Wilson; +Cc: intel-gfx == Series Details == Series: series starting with [CI,1/3] drm/i915: Track ggtt fence reservations under its own mutex URL : https://patchwork.freedesktop.org/series/65585/ State : failure == Summary == CI Bug Log - changes from CI_DRM_6759_full -> Patchwork_14134_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_14134_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_14134_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_14134_full: ### IGT changes ### #### Possible regressions #### * igt@gem_partial_pwrite_pread@reads-uncached: - shard-glk: [PASS][1] -> [DMESG-WARN][2] +6 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-glk2/igt@gem_partial_pwrite_pread@reads-uncached.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-glk7/igt@gem_partial_pwrite_pread@reads-uncached.html * igt@gem_partial_pwrite_pread@write-uncached: - shard-apl: [PASS][3] -> [DMESG-WARN][4] +6 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-apl1/igt@gem_partial_pwrite_pread@write-uncached.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-apl3/igt@gem_partial_pwrite_pread@write-uncached.html * igt@gem_set_tiling_vs_pwrite: - shard-glk: [PASS][5] -> [FAIL][6] +1 similar issue [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-glk8/igt@gem_set_tiling_vs_pwrite.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-glk4/igt@gem_set_tiling_vs_pwrite.html - shard-apl: [PASS][7] -> [FAIL][8] +1 similar issue [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-apl6/igt@gem_set_tiling_vs_pwrite.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-apl7/igt@gem_set_tiling_vs_pwrite.html Known issues ------------ Here are the changes found in Patchwork_14134_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_engines@independent: - shard-glk: [PASS][9] -> [INCOMPLETE][10] ([fdo#103359] / [k.org#198133]) +1 similar issue [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-glk5/igt@gem_ctx_engines@independent.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-glk3/igt@gem_ctx_engines@independent.html * igt@gem_eio@reset-stress: - shard-apl: [PASS][11] -> [FAIL][12] ([fdo#109661]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-apl3/igt@gem_eio@reset-stress.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-apl6/igt@gem_eio@reset-stress.html - shard-glk: [PASS][13] -> [FAIL][14] ([fdo#109661]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-glk6/igt@gem_eio@reset-stress.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-glk4/igt@gem_eio@reset-stress.html * igt@gem_exec_schedule@independent-bsd2: - shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#109276]) +14 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb2/igt@gem_exec_schedule@independent-bsd2.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb5/igt@gem_exec_schedule@independent-bsd2.html * igt@gem_exec_schedule@preempt-other-chain-bsd: - shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#111325]) +3 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb8/igt@gem_exec_schedule@preempt-other-chain-bsd.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb4/igt@gem_exec_schedule@preempt-other-chain-bsd.html * igt@gem_tiled_swapping@non-threaded: - shard-glk: [PASS][19] -> [DMESG-WARN][20] ([fdo#108686]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-glk1/igt@gem_tiled_swapping@non-threaded.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-glk6/igt@gem_tiled_swapping@non-threaded.html * igt@i915_pm_rps@min-max-config-loaded: - shard-iclb: [PASS][21] -> [FAIL][22] ([fdo#111409]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb5/igt@i915_pm_rps@min-max-config-loaded.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb2/igt@i915_pm_rps@min-max-config-loaded.html * igt@kms_atomic@test_only: - shard-snb: [PASS][23] -> [SKIP][24] ([fdo#109271]) +2 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-snb6/igt@kms_atomic@test_only.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-snb2/igt@kms_atomic@test_only.html * igt@kms_busy@extended-modeset-hang-oldfb-render-a: - shard-snb: [PASS][25] -> [SKIP][26] ([fdo#109271] / [fdo#109278]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-snb7/igt@kms_busy@extended-modeset-hang-oldfb-render-a.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-snb7/igt@kms_busy@extended-modeset-hang-oldfb-render-a.html * igt@kms_cursor_crc@pipe-c-cursor-suspend: - shard-skl: [PASS][27] -> [INCOMPLETE][28] ([fdo#110741]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl9/igt@kms_cursor_crc@pipe-c-cursor-suspend.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl10/igt@kms_cursor_crc@pipe-c-cursor-suspend.html * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic: - shard-glk: [PASS][29] -> [FAIL][30] ([fdo#104873]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-glk9/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-glk2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html * igt@kms_cursor_legacy@cursora-vs-flipa-varying-size: - shard-apl: [PASS][31] -> [INCOMPLETE][32] ([fdo#103927]) +1 similar issue [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-apl2/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-apl4/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-snb: [PASS][33] -> [DMESG-WARN][34] ([fdo#102365]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-snb2/igt@kms_flip@flip-vs-suspend-interruptible.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-snb1/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_frontbuffer_tracking@fbc-suspend: - shard-apl: [PASS][35] -> [DMESG-WARN][36] ([fdo#108566]) +6 similar issues [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-apl3/igt@kms_frontbuffer_tracking@fbc-suspend.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-apl1/igt@kms_frontbuffer_tracking@fbc-suspend.html - shard-skl: [PASS][37] -> [INCOMPLETE][38] ([fdo#104108]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl3/igt@kms_frontbuffer_tracking@fbc-suspend.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl6/igt@kms_frontbuffer_tracking@fbc-suspend.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render: - shard-iclb: [PASS][39] -> [FAIL][40] ([fdo#103167]) +3 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render.html * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt: - shard-skl: [PASS][41] -> [FAIL][42] ([fdo#103167]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl2/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl1/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min: - shard-skl: [PASS][43] -> [FAIL][44] ([fdo#108145]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl1/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: - shard-skl: [PASS][45] -> [FAIL][46] ([fdo#108145] / [fdo#110403]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl9/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html * igt@kms_psr@psr2_suspend: - shard-iclb: [PASS][47] -> [SKIP][48] ([fdo#109441]) +1 similar issue [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb2/igt@kms_psr@psr2_suspend.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb5/igt@kms_psr@psr2_suspend.html #### Possible fixes #### * igt@gem_ctx_shared@exec-single-timeline-bsd: - shard-iclb: [SKIP][49] ([fdo#110841]) -> [PASS][50] [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb1/igt@gem_ctx_shared@exec-single-timeline-bsd.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb8/igt@gem_ctx_shared@exec-single-timeline-bsd.html * igt@gem_eio@unwedge-stress: - shard-glk: [FAIL][51] ([fdo#109661]) -> [PASS][52] [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-glk7/igt@gem_eio@unwedge-stress.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-glk9/igt@gem_eio@unwedge-stress.html * igt@gem_exec_reloc@basic-cpu-active: - shard-skl: [DMESG-WARN][53] ([fdo#106107]) -> [PASS][54] [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl7/igt@gem_exec_reloc@basic-cpu-active.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl5/igt@gem_exec_reloc@basic-cpu-active.html * igt@gem_exec_schedule@out-order-bsd2: - shard-iclb: [SKIP][55] ([fdo#109276]) -> [PASS][56] +13 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb5/igt@gem_exec_schedule@out-order-bsd2.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb1/igt@gem_exec_schedule@out-order-bsd2.html * igt@gem_exec_schedule@reorder-wide-bsd: - shard-iclb: [SKIP][57] ([fdo#111325]) -> [PASS][58] +5 similar issues [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb2/igt@gem_exec_schedule@reorder-wide-bsd.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb5/igt@gem_exec_schedule@reorder-wide-bsd.html * igt@gem_workarounds@suspend-resume-context: - shard-apl: [DMESG-WARN][59] ([fdo#108566]) -> [PASS][60] +5 similar issues [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-apl1/igt@gem_workarounds@suspend-resume-context.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-apl7/igt@gem_workarounds@suspend-resume-context.html * igt@i915_selftest@live_execlists: - shard-skl: [DMESG-FAIL][61] ([fdo#111422]) -> [PASS][62] [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl8/igt@i915_selftest@live_execlists.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl2/igt@i915_selftest@live_execlists.html * igt@i915_suspend@forcewake: - shard-skl: [INCOMPLETE][63] ([fdo#104108]) -> [PASS][64] [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl3/igt@i915_suspend@forcewake.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl10/igt@i915_suspend@forcewake.html * igt@i915_suspend@sysfs-reader: - shard-apl: [INCOMPLETE][65] ([fdo#103927]) -> [PASS][66] [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-apl2/igt@i915_suspend@sysfs-reader.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-apl2/igt@i915_suspend@sysfs-reader.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-render: - shard-iclb: [FAIL][67] ([fdo#103167]) -> [PASS][68] +1 similar issue [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-render.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-render.html * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min: - shard-skl: [FAIL][69] ([fdo#108145]) -> [PASS][70] [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl1/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html * igt@kms_psr@psr2_sprite_render: - shard-iclb: [SKIP][71] ([fdo#109441]) -> [PASS][72] +1 similar issue [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb5/igt@kms_psr@psr2_sprite_render.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb2/igt@kms_psr@psr2_sprite_render.html * igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend: - shard-skl: [INCOMPLETE][73] ([fdo#104108] / [fdo#107773]) -> [PASS][74] [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl2/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl1/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html * igt@kms_vblank@pipe-c-ts-continuation-modeset-hang: - shard-hsw: [INCOMPLETE][75] ([fdo#103540]) -> [PASS][76] [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-hsw4/igt@kms_vblank@pipe-c-ts-continuation-modeset-hang.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-hsw7/igt@kms_vblank@pipe-c-ts-continuation-modeset-hang.html * igt@perf_pmu@rc6: - shard-kbl: [SKIP][77] ([fdo#109271]) -> [PASS][78] [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-kbl7/igt@perf_pmu@rc6.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-kbl6/igt@perf_pmu@rc6.html #### Warnings #### * igt@gem_ctx_isolation@vcs1-nonpriv: - shard-iclb: [FAIL][79] ([fdo#111329]) -> [SKIP][80] ([fdo#109276]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-iclb2/igt@gem_ctx_isolation@vcs1-nonpriv.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-iclb5/igt@gem_ctx_isolation@vcs1-nonpriv.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt: - shard-skl: [FAIL][81] ([fdo#108040]) -> [FAIL][82] ([fdo#103167]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6759/shard-skl9/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/shard-skl10/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html [fdo#102365]: https://bugs.freedesktop.org/show_bug.cgi?id=102365 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359 [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108 [fdo#104873]: https://bugs.freedesktop.org/show_bug.cgi?id=104873 [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107 [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773 [fdo#108040]: https://bugs.freedesktop.org/show_bug.cgi?id=108040 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566 [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109661]: https://bugs.freedesktop.org/show_bug.cgi?id=109661 [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403 [fdo#110741]: https://bugs.freedesktop.org/show_bug.cgi?id=110741 [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841 [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325 [fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329 [fdo#111409]: https://bugs.freedesktop.org/show_bug.cgi?id=111409 [fdo#111422]: https://bugs.freedesktop.org/show_bug.cgi?id=111422 [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133 Participating hosts (10 -> 9) ------------------------------ Missing (1): pig-glk-j5005 Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_6759 -> Patchwork_14134 CI-20190529: 20190529 CI_DRM_6759: ef8503f9bd35e778de52953fe627fd50f316d712 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5146: 357dbe1869d88a2f08bcee4eebceff4ee9014424 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_14134: 685b3c8a0cddb961903eb52c27e1169270175643 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14134/ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-08-22 17:45 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-08-22 0:23 [CI 1/3] drm/i915: Track ggtt fence reservations under its own mutex Chris Wilson 2019-08-22 0:23 ` [CI 2/3] drm/i915: Pull obj->userfault tracking under the ggtt->mutex Chris Wilson 2019-08-22 0:23 ` [CI 3/3] drm/i915: Replace i915_vma_put_fence() Chris Wilson 2019-08-22 1:00 ` ✓ Fi.CI.BAT: success for series starting with [CI,1/3] drm/i915: Track ggtt fence reservations under its own mutex Patchwork 2019-08-22 17:45 ` ✗ Fi.CI.IGT: failure " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox