* [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list
@ 2020-01-17 22:00 Chris Wilson
2020-01-17 22:06 ` Chris Wilson
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Chris Wilson @ 2020-01-17 22:00 UTC (permalink / raw)
To: intel-gfx
Currently we create a new mmap_offset for every call to
mmap_offset_ioctl. This exposes ourselves to an abusive client that may
simply create new mmap_offsets ad infinitum, which will exhaust physical
memory and the virtual address space. In addition to the exhaustion, a
very long linear list of mmap_offsets causes other clients using the
object to incur long list walks -- these long lists can also be
generated by simply having many clients generate their own mmap_offset.
Switching to an rbtree store for obj->mmo.offsets allows us to use a
binary search for duplicated mmap_offsets (preventing the exhaustion
from a trivial malicious client), and also quickly search for matching
mmap_offsets on object close.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 93 +++++++++++++++++--
drivers/gpu/drm/i915/gem/i915_gem_object.c | 46 +++++++--
.../gpu/drm/i915/gem/i915_gem_object_types.h | 4 +-
3 files changed, 124 insertions(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index b9fdac2f9003..2908a205faa9 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -455,10 +455,11 @@ static void i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj)
void i915_gem_object_release_mmap_offset(struct drm_i915_gem_object *obj)
{
- struct i915_mmap_offset *mmo;
+ struct i915_mmap_offset *mmo, *mn;
spin_lock(&obj->mmo.lock);
- list_for_each_entry(mmo, &obj->mmo.offsets, offset) {
+ rbtree_postorder_for_each_entry_safe(mmo, mn,
+ &obj->mmo.offsets, offset) {
/*
* vma_node_unmap for GTT mmaps handled already in
* __i915_gem_object_release_mmap_gtt
@@ -487,6 +488,84 @@ void i915_gem_object_release_mmap(struct drm_i915_gem_object *obj)
i915_gem_object_release_mmap_offset(obj);
}
+static struct i915_mmap_offset *
+lookup_mmo(struct drm_i915_gem_object *obj,
+ enum i915_mmap_type mmap_type,
+ struct drm_file *file)
+{
+ struct i915_mmap_offset *match = NULL;
+ struct rb_node *rb;
+
+ spin_lock(&obj->mmo.lock);
+ rb = obj->mmo.offsets.rb_node;
+ while (rb) {
+ struct i915_mmap_offset *mmo =
+ rb_entry(rb, typeof(*mmo), offset);
+
+ if (mmo->file < file) {
+ rb = rb->rb_right;
+ continue;
+ }
+
+ if (mmo->file > file) {
+ rb = rb->rb_left;
+ continue;
+ }
+
+ if (mmo->mmap_type < mmap_type) {
+ rb = rb->rb_right;
+ continue;
+ }
+
+ if (mmo->mmap_type > mmap_type) {
+ rb = rb->rb_left;
+ continue;
+ }
+
+ match = mmo;
+ break;
+ }
+ spin_unlock(&obj->mmo.lock);
+
+ return match;
+}
+
+static struct i915_mmap_offset *
+insert_mmo(struct drm_i915_gem_object *obj, struct i915_mmap_offset *mmo)
+{
+ struct rb_node *rb, **p;
+
+ spin_lock(&obj->mmo.lock);
+ rb = NULL;
+ p = &obj->mmo.offsets.rb_node;
+ while (*p) {
+ struct i915_mmap_offset *pos;
+
+ rb = *p;
+ pos = rb_entry(rb, typeof(*pos), offset);
+
+ if (pos->file < mmo->file) {
+ p = &rb->rb_right;
+ continue;
+ }
+
+ if (pos->file > mmo->file) {
+ p = &rb->rb_left;
+ continue;
+ }
+
+ if (pos->mmap_type < mmo->mmap_type)
+ p = &rb->rb_right;
+ else
+ p = &rb->rb_left;
+ }
+ rb_link_node(&mmo->offset, rb, p);
+ rb_insert_color(&mmo->offset, &obj->mmo.offsets);
+ spin_unlock(&obj->mmo.lock);
+
+ return mmo;
+}
+
static struct i915_mmap_offset *
mmap_offset_attach(struct drm_i915_gem_object *obj,
enum i915_mmap_type mmap_type,
@@ -496,6 +575,10 @@ mmap_offset_attach(struct drm_i915_gem_object *obj,
struct i915_mmap_offset *mmo;
int err;
+ mmo = lookup_mmo(obj, mmap_type, file);
+ if (mmo)
+ return mmo;
+
mmo = kmalloc(sizeof(*mmo), GFP_KERNEL);
if (!mmo)
return ERR_PTR(-ENOMEM);
@@ -526,11 +609,7 @@ mmap_offset_attach(struct drm_i915_gem_object *obj,
if (file)
drm_vma_node_allow(&mmo->vma_node, file);
- spin_lock(&obj->mmo.lock);
- list_add(&mmo->offset, &obj->mmo.offsets);
- spin_unlock(&obj->mmo.lock);
-
- return mmo;
+ return insert_mmo(obj, mmo);
err:
kfree(mmo);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c
index 46bacc82ddc4..3cc9f83f0bae 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
@@ -63,7 +63,7 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj,
INIT_LIST_HEAD(&obj->lut_list);
spin_lock_init(&obj->mmo.lock);
- INIT_LIST_HEAD(&obj->mmo.offsets);
+ obj->mmo.offsets = RB_ROOT;
init_rcu_head(&obj->rcu);
@@ -96,6 +96,37 @@ void i915_gem_object_set_cache_coherency(struct drm_i915_gem_object *obj,
!(obj->cache_coherent & I915_BO_CACHE_COHERENT_FOR_WRITE);
}
+static struct i915_mmap_offset *
+first_mmo(struct drm_i915_gem_object *obj, struct drm_file *file)
+{
+ struct i915_mmap_offset *first = NULL;
+ struct rb_node *pos;
+
+ pos = obj->mmo.offsets.rb_node;
+ while (pos) {
+ struct i915_mmap_offset *mmo =
+ rb_entry(pos, typeof(*mmo), offset);
+
+ if (mmo->file < file) {
+ pos = pos->rb_right;
+ continue;
+ }
+
+ pos = pos->rb_left;
+ if (mmo->file == file)
+ first = mmo;
+ }
+
+ return first;
+}
+
+static struct i915_mmap_offset *
+next_mmo(struct i915_mmap_offset *pos, struct drm_file *file)
+{
+ pos = rb_entry_safe(rb_next(&pos->offset), typeof(*pos), offset);
+ return pos && pos->file == file ? pos : NULL;
+}
+
void i915_gem_close_object(struct drm_gem_object *gem, struct drm_file *file)
{
struct drm_i915_gem_object *obj = to_intel_bo(gem);
@@ -117,14 +148,8 @@ void i915_gem_close_object(struct drm_gem_object *gem, struct drm_file *file)
i915_gem_object_unlock(obj);
spin_lock(&obj->mmo.lock);
- list_for_each_entry(mmo, &obj->mmo.offsets, offset) {
- if (mmo->file != file)
- continue;
-
- spin_unlock(&obj->mmo.lock);
+ for (mmo = first_mmo(obj, file); mmo; mmo = next_mmo(mmo, file))
drm_vma_node_revoke(&mmo->vma_node, file);
- spin_lock(&obj->mmo.lock);
- }
spin_unlock(&obj->mmo.lock);
list_for_each_entry_safe(lut, ln, &close, obj_link) {
@@ -203,12 +228,13 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915,
i915_gem_object_release_mmap(obj);
- list_for_each_entry_safe(mmo, mn, &obj->mmo.offsets, offset) {
+ rbtree_postorder_for_each_entry_safe(mmo, mn,
+ &obj->mmo.offsets,
+ offset) {
drm_vma_offset_remove(obj->base.dev->vma_offset_manager,
&mmo->vma_node);
kfree(mmo);
}
- INIT_LIST_HEAD(&obj->mmo.offsets);
GEM_BUG_ON(atomic_read(&obj->bind_count));
GEM_BUG_ON(obj->userfault_count);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index 88e268633fdc..124fd2fb1bec 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -77,7 +77,7 @@ struct i915_mmap_offset {
struct drm_file *file;
enum i915_mmap_type mmap_type;
- struct list_head offset;
+ struct rb_node offset;
};
struct drm_i915_gem_object {
@@ -137,7 +137,7 @@ struct drm_i915_gem_object {
struct {
spinlock_t lock; /* Protects access to mmo offsets */
- struct list_head offsets;
+ struct rb_root offsets;
} mmo;
I915_SELFTEST_DECLARE(struct list_head st_link);
--
2.25.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list
2020-01-17 22:00 [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list Chris Wilson
@ 2020-01-17 22:06 ` Chris Wilson
2020-01-17 22:29 ` [Intel-gfx] [PATCH v2] " Chris Wilson
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2020-01-17 22:06 UTC (permalink / raw)
To: intel-gfx
Quoting Chris Wilson (2020-01-17 22:00:38)
> Currently we create a new mmap_offset for every call to
> mmap_offset_ioctl. This exposes ourselves to an abusive client that may
> simply create new mmap_offsets ad infinitum, which will exhaust physical
> memory and the virtual address space. In addition to the exhaustion, a
> very long linear list of mmap_offsets causes other clients using the
> object to incur long list walks -- these long lists can also be
> generated by simply having many clients generate their own mmap_offset.
>
> Switching to an rbtree store for obj->mmo.offsets allows us to use a
> binary search for duplicated mmap_offsets (preventing the exhaustion
> from a trivial malicious client), and also quickly search for matching
> mmap_offsets on object close.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Hmm, mmo->file only serves for revoking, duplicating drm_vma_node_revoke
itself. I think we can do better yet.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Intel-gfx] [PATCH v2] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list
2020-01-17 22:00 [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list Chris Wilson
2020-01-17 22:06 ` Chris Wilson
@ 2020-01-17 22:29 ` Chris Wilson
2020-01-18 2:38 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2) Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2020-01-17 22:29 UTC (permalink / raw)
To: intel-gfx
Currently we create a new mmap_offset for every call to
mmap_offset_ioctl. This exposes ourselves to an abusive client that may
simply create new mmap_offsets ad infinitum, which will exhaust physical
memory and the virtual address space. In addition to the exhaustion, a
very long linear list of mmap_offsets causes other clients using the
object to incur long list walks -- these long lists can also be
generated by simply having many clients generate their own mmap_offset.
However, we can simply use the drm_vma_node itself to manage the file
association (allow/revoke) dropping our need to keep an mmo per-file.
Then if we keep a small rbtree of per-type mmap_offsets, we can lookup
duplicate requests quickly.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 81 ++++++++++++++++---
drivers/gpu/drm/i915/gem/i915_gem_object.c | 17 ++--
.../gpu/drm/i915/gem/i915_gem_object_types.h | 6 +-
3 files changed, 76 insertions(+), 28 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index b9fdac2f9003..0e0f63bf6ca8 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -455,10 +455,11 @@ static void i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj)
void i915_gem_object_release_mmap_offset(struct drm_i915_gem_object *obj)
{
- struct i915_mmap_offset *mmo;
+ struct i915_mmap_offset *mmo, *mn;
spin_lock(&obj->mmo.lock);
- list_for_each_entry(mmo, &obj->mmo.offsets, offset) {
+ rbtree_postorder_for_each_entry_safe(mmo, mn,
+ &obj->mmo.offsets, offset) {
/*
* vma_node_unmap for GTT mmaps handled already in
* __i915_gem_object_release_mmap_gtt
@@ -487,6 +488,59 @@ void i915_gem_object_release_mmap(struct drm_i915_gem_object *obj)
i915_gem_object_release_mmap_offset(obj);
}
+static struct i915_mmap_offset *
+lookup_mmo(struct drm_i915_gem_object *obj,
+ enum i915_mmap_type mmap_type)
+{
+ struct rb_node *rb;
+
+ spin_lock(&obj->mmo.lock);
+ rb = obj->mmo.offsets.rb_node;
+ while (rb) {
+ struct i915_mmap_offset *mmo =
+ rb_entry(rb, typeof(*mmo), offset);
+
+ if (mmo->mmap_type == mmap_type) {
+ spin_unlock(&obj->mmo.lock);
+ return mmo;
+ } else if (mmo->mmap_type < mmap_type) {
+ rb = rb->rb_right;
+ } else {
+ rb = rb->rb_left;
+ }
+
+ }
+ spin_unlock(&obj->mmo.lock);
+
+ return NULL;
+}
+
+static struct i915_mmap_offset *
+insert_mmo(struct drm_i915_gem_object *obj, struct i915_mmap_offset *mmo)
+{
+ struct rb_node *rb, **p;
+
+ spin_lock(&obj->mmo.lock);
+ rb = NULL;
+ p = &obj->mmo.offsets.rb_node;
+ while (*p) {
+ struct i915_mmap_offset *pos;
+
+ rb = *p;
+ pos = rb_entry(rb, typeof(*pos), offset);
+
+ if (pos->mmap_type < mmo->mmap_type)
+ p = &rb->rb_right;
+ else
+ p = &rb->rb_left;
+ }
+ rb_link_node(&mmo->offset, rb, p);
+ rb_insert_color(&mmo->offset, &obj->mmo.offsets);
+ spin_unlock(&obj->mmo.lock);
+
+ return mmo;
+}
+
static struct i915_mmap_offset *
mmap_offset_attach(struct drm_i915_gem_object *obj,
enum i915_mmap_type mmap_type,
@@ -496,18 +550,23 @@ mmap_offset_attach(struct drm_i915_gem_object *obj,
struct i915_mmap_offset *mmo;
int err;
+ mmo = lookup_mmo(obj, mmap_type);
+ if (mmo) {
+ if (file)
+ drm_vma_node_allow(&mmo->vma_node, file);
+ return mmo;
+ }
+
mmo = kmalloc(sizeof(*mmo), GFP_KERNEL);
if (!mmo)
return ERR_PTR(-ENOMEM);
mmo->obj = obj;
- mmo->dev = obj->base.dev;
- mmo->file = file;
mmo->mmap_type = mmap_type;
drm_vma_node_reset(&mmo->vma_node);
- err = drm_vma_offset_add(mmo->dev->vma_offset_manager, &mmo->vma_node,
- obj->base.size / PAGE_SIZE);
+ err = drm_vma_offset_add(obj->base.dev->vma_offset_manager,
+ &mmo->vma_node, obj->base.size / PAGE_SIZE);
if (likely(!err))
goto out;
@@ -517,8 +576,8 @@ mmap_offset_attach(struct drm_i915_gem_object *obj,
goto err;
i915_gem_drain_freed_objects(i915);
- err = drm_vma_offset_add(mmo->dev->vma_offset_manager, &mmo->vma_node,
- obj->base.size / PAGE_SIZE);
+ err = drm_vma_offset_add(obj->base.dev->vma_offset_manager,
+ &mmo->vma_node, obj->base.size / PAGE_SIZE);
if (err)
goto err;
@@ -526,11 +585,7 @@ mmap_offset_attach(struct drm_i915_gem_object *obj,
if (file)
drm_vma_node_allow(&mmo->vma_node, file);
- spin_lock(&obj->mmo.lock);
- list_add(&mmo->offset, &obj->mmo.offsets);
- spin_unlock(&obj->mmo.lock);
-
- return mmo;
+ return insert_mmo(obj, mmo);
err:
kfree(mmo);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c
index 46bacc82ddc4..34e75a7fec81 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
@@ -63,7 +63,7 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj,
INIT_LIST_HEAD(&obj->lut_list);
spin_lock_init(&obj->mmo.lock);
- INIT_LIST_HEAD(&obj->mmo.offsets);
+ obj->mmo.offsets = RB_ROOT;
init_rcu_head(&obj->rcu);
@@ -100,8 +100,8 @@ void i915_gem_close_object(struct drm_gem_object *gem, struct drm_file *file)
{
struct drm_i915_gem_object *obj = to_intel_bo(gem);
struct drm_i915_file_private *fpriv = file->driver_priv;
+ struct i915_mmap_offset *mmo, *mn;
struct i915_lut_handle *lut, *ln;
- struct i915_mmap_offset *mmo;
LIST_HEAD(close);
i915_gem_object_lock(obj);
@@ -117,14 +117,8 @@ void i915_gem_close_object(struct drm_gem_object *gem, struct drm_file *file)
i915_gem_object_unlock(obj);
spin_lock(&obj->mmo.lock);
- list_for_each_entry(mmo, &obj->mmo.offsets, offset) {
- if (mmo->file != file)
- continue;
-
- spin_unlock(&obj->mmo.lock);
+ rbtree_postorder_for_each_entry_safe(mmo, mn, &obj->mmo.offsets, offset)
drm_vma_node_revoke(&mmo->vma_node, file);
- spin_lock(&obj->mmo.lock);
- }
spin_unlock(&obj->mmo.lock);
list_for_each_entry_safe(lut, ln, &close, obj_link) {
@@ -203,12 +197,13 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915,
i915_gem_object_release_mmap(obj);
- list_for_each_entry_safe(mmo, mn, &obj->mmo.offsets, offset) {
+ rbtree_postorder_for_each_entry_safe(mmo, mn,
+ &obj->mmo.offsets,
+ offset) {
drm_vma_offset_remove(obj->base.dev->vma_offset_manager,
&mmo->vma_node);
kfree(mmo);
}
- INIT_LIST_HEAD(&obj->mmo.offsets);
GEM_BUG_ON(atomic_read(&obj->bind_count));
GEM_BUG_ON(obj->userfault_count);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index 88e268633fdc..f64ad77e6b1e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -71,13 +71,11 @@ enum i915_mmap_type {
};
struct i915_mmap_offset {
- struct drm_device *dev;
struct drm_vma_offset_node vma_node;
struct drm_i915_gem_object *obj;
- struct drm_file *file;
enum i915_mmap_type mmap_type;
- struct list_head offset;
+ struct rb_node offset;
};
struct drm_i915_gem_object {
@@ -137,7 +135,7 @@ struct drm_i915_gem_object {
struct {
spinlock_t lock; /* Protects access to mmo offsets */
- struct list_head offsets;
+ struct rb_root offsets;
} mmo;
I915_SELFTEST_DECLARE(struct list_head st_link);
--
2.25.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2)
2020-01-17 22:00 [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list Chris Wilson
2020-01-17 22:06 ` Chris Wilson
2020-01-17 22:29 ` [Intel-gfx] [PATCH v2] " Chris Wilson
@ 2020-01-18 2:38 ` Patchwork
2020-01-18 3:20 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2020-01-18 3:20 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-01-18 2:38 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2)
URL : https://patchwork.freedesktop.org/series/72221/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
a9954bbab8d0 drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list
-:66: CHECK:BRACES: Blank lines aren't necessary before a close brace '}'
#66: FILE: drivers/gpu/drm/i915/gem/i915_gem_mman.c:512:
+
+ }
total: 0 errors, 0 warnings, 1 checks, 190 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2)
2020-01-17 22:00 [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list Chris Wilson
` (2 preceding siblings ...)
2020-01-18 2:38 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2) Patchwork
@ 2020-01-18 3:20 ` Patchwork
2020-01-18 3:20 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-01-18 3:20 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2)
URL : https://patchwork.freedesktop.org/series/72221/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_7769 -> Patchwork_16162
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_16162 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_16162, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_16162:
### IGT changes ###
#### Possible regressions ####
* igt@gem_busy@busy-all:
- fi-bsw-nick: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bsw-nick/igt@gem_busy@busy-all.html
- fi-bsw-kefka: NOTRUN -> [INCOMPLETE][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bsw-kefka/igt@gem_busy@busy-all.html
- fi-hsw-4770r: NOTRUN -> [DMESG-WARN][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-hsw-4770r/igt@gem_busy@busy-all.html
- fi-hsw-peppy: NOTRUN -> [DMESG-WARN][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-hsw-peppy/igt@gem_busy@busy-all.html
- fi-pnv-d510: [PASS][5] -> [DMESG-WARN][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-pnv-d510/igt@gem_busy@busy-all.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-pnv-d510/igt@gem_busy@busy-all.html
- fi-cfl-8700k: [PASS][7] -> [INCOMPLETE][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-cfl-8700k/igt@gem_busy@busy-all.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-cfl-8700k/igt@gem_busy@busy-all.html
- fi-snb-2520m: NOTRUN -> [DMESG-WARN][9]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-snb-2520m/igt@gem_busy@busy-all.html
- fi-blb-e6850: [PASS][10] -> [DMESG-WARN][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-blb-e6850/igt@gem_busy@busy-all.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-blb-e6850/igt@gem_busy@busy-all.html
- fi-elk-e7500: [PASS][12] -> [DMESG-WARN][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-elk-e7500/igt@gem_busy@busy-all.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-elk-e7500/igt@gem_busy@busy-all.html
- fi-cfl-guc: [PASS][14] -> [INCOMPLETE][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-cfl-guc/igt@gem_busy@busy-all.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-cfl-guc/igt@gem_busy@busy-all.html
- fi-hsw-4770: [PASS][16] -> [DMESG-WARN][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-hsw-4770/igt@gem_busy@busy-all.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-hsw-4770/igt@gem_busy@busy-all.html
- fi-bsw-n3050: NOTRUN -> [INCOMPLETE][18]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bsw-n3050/igt@gem_busy@busy-all.html
- fi-ilk-650: [PASS][19] -> [DMESG-WARN][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-ilk-650/igt@gem_busy@busy-all.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-ilk-650/igt@gem_busy@busy-all.html
- fi-whl-u: [PASS][21] -> [INCOMPLETE][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-whl-u/igt@gem_busy@busy-all.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-whl-u/igt@gem_busy@busy-all.html
- fi-byt-j1900: [PASS][23] -> [DMESG-WARN][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-byt-j1900/igt@gem_busy@busy-all.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-byt-j1900/igt@gem_busy@busy-all.html
- fi-snb-2600: NOTRUN -> [DMESG-WARN][25]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-snb-2600/igt@gem_busy@busy-all.html
* igt@gem_mmap_gtt@basic:
- fi-gdg-551: [PASS][26] -> [DMESG-WARN][27]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-gdg-551/igt@gem_mmap_gtt@basic.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-gdg-551/igt@gem_mmap_gtt@basic.html
* igt@runner@aborted:
- fi-kbl-x1275: NOTRUN -> [FAIL][28]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-x1275/igt@runner@aborted.html
- fi-bsw-kefka: NOTRUN -> [FAIL][29]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bsw-kefka/igt@runner@aborted.html
- fi-cfl-8700k: NOTRUN -> [FAIL][30]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-cfl-8700k/igt@runner@aborted.html
- fi-gdg-551: NOTRUN -> [FAIL][31]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-gdg-551/igt@runner@aborted.html
- fi-bsw-nick: NOTRUN -> [FAIL][32]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bsw-nick/igt@runner@aborted.html
- fi-apl-guc: NOTRUN -> [FAIL][33]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-apl-guc/igt@runner@aborted.html
- fi-kbl-r: NOTRUN -> [FAIL][34]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-r/igt@runner@aborted.html
- fi-kbl-soraka: NOTRUN -> [FAIL][35]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-soraka/igt@runner@aborted.html
- fi-kbl-7500u: NOTRUN -> [FAIL][36]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-7500u/igt@runner@aborted.html
- fi-kbl-guc: NOTRUN -> [FAIL][37]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-guc/igt@runner@aborted.html
- fi-whl-u: NOTRUN -> [FAIL][38]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-whl-u/igt@runner@aborted.html
- fi-bxt-dsi: NOTRUN -> [FAIL][39]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bxt-dsi/igt@runner@aborted.html
- fi-cfl-guc: NOTRUN -> [FAIL][40]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-cfl-guc/igt@runner@aborted.html
- fi-bsw-n3050: NOTRUN -> [FAIL][41]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bsw-n3050/igt@runner@aborted.html
#### Warnings ####
* igt@runner@aborted:
- fi-kbl-8809g: [FAIL][42] ([i915#858]) -> [FAIL][43]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-kbl-8809g/igt@runner@aborted.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-8809g/igt@runner@aborted.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@runner@aborted:
- {fi-kbl-7560u}: NOTRUN -> [FAIL][44]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-7560u/igt@runner@aborted.html
Known issues
------------
Here are the changes found in Patchwork_16162 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_busy@busy-all:
- fi-bdw-5557u: [PASS][45] -> [INCOMPLETE][46] ([i915#667])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-bdw-5557u/igt@gem_busy@busy-all.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bdw-5557u/igt@gem_busy@busy-all.html
- fi-kbl-8809g: [PASS][47] -> [INCOMPLETE][48] ([i915#667])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-kbl-8809g/igt@gem_busy@busy-all.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-8809g/igt@gem_busy@busy-all.html
- fi-icl-guc: [PASS][49] -> [INCOMPLETE][50] ([i915#140])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-icl-guc/igt@gem_busy@busy-all.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-icl-guc/igt@gem_busy@busy-all.html
- fi-skl-6770hq: [PASS][51] -> [INCOMPLETE][52] ([i915#667])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-skl-6770hq/igt@gem_busy@busy-all.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-skl-6770hq/igt@gem_busy@busy-all.html
- fi-icl-dsi: [PASS][53] -> [INCOMPLETE][54] ([i915#140])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-icl-dsi/igt@gem_busy@busy-all.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-icl-dsi/igt@gem_busy@busy-all.html
- fi-kbl-guc: [PASS][55] -> [INCOMPLETE][56] ([i915#667])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-kbl-guc/igt@gem_busy@busy-all.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-guc/igt@gem_busy@busy-all.html
- fi-kbl-7500u: [PASS][57] -> [INCOMPLETE][58] ([i915#667])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-kbl-7500u/igt@gem_busy@busy-all.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-7500u/igt@gem_busy@busy-all.html
- fi-kbl-x1275: [PASS][59] -> [INCOMPLETE][60] ([i915#667])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-kbl-x1275/igt@gem_busy@busy-all.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-x1275/igt@gem_busy@busy-all.html
- fi-icl-u2: [PASS][61] -> [INCOMPLETE][62] ([i915#140])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-icl-u2/igt@gem_busy@busy-all.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-icl-u2/igt@gem_busy@busy-all.html
- fi-icl-y: [PASS][63] -> [INCOMPLETE][64] ([i915#140])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-icl-y/igt@gem_busy@busy-all.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-icl-y/igt@gem_busy@busy-all.html
- fi-apl-guc: [PASS][65] -> [INCOMPLETE][66] ([fdo#103927])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-apl-guc/igt@gem_busy@busy-all.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-apl-guc/igt@gem_busy@busy-all.html
- fi-glk-dsi: [PASS][67] -> [INCOMPLETE][68] ([i915#58] / [k.org#198133])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-glk-dsi/igt@gem_busy@busy-all.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-glk-dsi/igt@gem_busy@busy-all.html
- fi-cml-s: [PASS][69] -> [INCOMPLETE][70] ([i915#283])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-cml-s/igt@gem_busy@busy-all.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-cml-s/igt@gem_busy@busy-all.html
- fi-skl-6700k2: [PASS][71] -> [INCOMPLETE][72] ([i915#667])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-skl-6700k2/igt@gem_busy@busy-all.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-skl-6700k2/igt@gem_busy@busy-all.html
- fi-skl-guc: [PASS][73] -> [INCOMPLETE][74] ([i915#667])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-skl-guc/igt@gem_busy@busy-all.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-skl-guc/igt@gem_busy@busy-all.html
- fi-icl-u3: [PASS][75] -> [INCOMPLETE][76] ([i915#140])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-icl-u3/igt@gem_busy@busy-all.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-icl-u3/igt@gem_busy@busy-all.html
- fi-cml-u2: [PASS][77] -> [INCOMPLETE][78] ([i915#283])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-cml-u2/igt@gem_busy@busy-all.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-cml-u2/igt@gem_busy@busy-all.html
- fi-bxt-dsi: [PASS][79] -> [INCOMPLETE][80] ([fdo#103927])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-bxt-dsi/igt@gem_busy@busy-all.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-bxt-dsi/igt@gem_busy@busy-all.html
- fi-kbl-soraka: [PASS][81] -> [INCOMPLETE][82] ([i915#667])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-kbl-soraka/igt@gem_busy@busy-all.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-kbl-soraka/igt@gem_busy@busy-all.html
#### Warnings ####
* igt@runner@aborted:
- fi-cml-s: [FAIL][83] ([fdo#111764] / [i915#577]) -> [FAIL][84] ([fdo#111893] / [i915#577])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7769/fi-cml-s/igt@runner@aborted.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/fi-cml-s/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#111764]: https://bugs.freedesktop.org/show_bug.cgi?id=111764
[fdo#111893]: https://bugs.freedesktop.org/show_bug.cgi?id=111893
[i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
[i915#283]: https://gitlab.freedesktop.org/drm/intel/issues/283
[i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472
[i915#577]: https://gitlab.freedesktop.org/drm/intel/issues/577
[i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58
[i915#667]: https://gitlab.freedesktop.org/drm/intel/issues/667
[i915#858]: https://gitlab.freedesktop.org/drm/intel/issues/858
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133
Participating hosts (42 -> 42)
------------------------------
Additional (9): fi-hsw-4770r fi-hsw-peppy fi-snb-2520m fi-kbl-r fi-bsw-kefka fi-kbl-7560u fi-bsw-nick fi-skl-6600u fi-snb-2600
Missing (9): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-bwr-2160 fi-ivb-3770 fi-skl-lmem fi-byt-n2820 fi-byt-clapper
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7769 -> Patchwork_16162
CI-20190529: 20190529
CI_DRM_7769: 15e78429922635916a012ba594255cf07a5b07ad @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5372: 0d00a27fbbd4d4a77d24499ea9811e07e65eb0ac @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_16162: a9954bbab8d032c65b2af034e91628ba7152dbcd @ git://anongit.freedesktop.org/gfx-ci/linux
== Kernel 32bit build ==
Warning: Kernel 32bit buildtest failed:
https://intel-gfx-ci.01.org/Patchwork_16162/build_32bit.log
CALL scripts/checksyscalls.sh
CALL scripts/atomic/check-atomics.sh
CHK include/generated/compile.h
Kernel: arch/x86/boot/bzImage is ready (#1)
Building modules, stage 2.
MODPOST 122 modules
ERROR: "__udivdi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
scripts/Makefile.modpost:93: recipe for target '__modpost' failed
make[1]: *** [__modpost] Error 1
Makefile:1282: recipe for target 'modules' failed
make: *** [modules] Error 2
== Linux commits ==
a9954bbab8d0 drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Intel-gfx] ✗ Fi.CI.BUILD: warning for drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2)
2020-01-17 22:00 [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list Chris Wilson
` (3 preceding siblings ...)
2020-01-18 3:20 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
@ 2020-01-18 3:20 ` Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-01-18 3:20 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2)
URL : https://patchwork.freedesktop.org/series/72221/
State : warning
== Summary ==
CALL scripts/checksyscalls.sh
CALL scripts/atomic/check-atomics.sh
CHK include/generated/compile.h
Kernel: arch/x86/boot/bzImage is ready (#1)
Building modules, stage 2.
MODPOST 122 modules
ERROR: "__udivdi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
scripts/Makefile.modpost:93: recipe for target '__modpost' failed
make[1]: *** [__modpost] Error 1
Makefile:1282: recipe for target 'modules' failed
make: *** [modules] Error 2
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16162/build_32bit.log
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-01-18 3:20 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-17 22:00 [Intel-gfx] [PATCH] drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list Chris Wilson
2020-01-17 22:06 ` Chris Wilson
2020-01-17 22:29 ` [Intel-gfx] [PATCH v2] " Chris Wilson
2020-01-18 2:38 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gem: Store mmap_offsets in an rbtree rather than a plain list (rev2) Patchwork
2020-01-18 3:20 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2020-01-18 3:20 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).