* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.