All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy
@ 2021-06-18 13:31 ` Matthew Auld
  0 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:31 UTC (permalink / raw)
  To: intel-gfx; +Cc: Thomas Hellström, kernel test robot, dri-devel

When we resurrected the selftest we forgot to add back the selftest()
hook, meaning the test is not currently run.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/i915/selftests/i915_mock_selftests.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
index 34e5caf38093..6759b56086fb 100644
--- a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
+++ b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
@@ -34,3 +34,4 @@ selftest(gtt, i915_gem_gtt_mock_selftests)
 selftest(hugepages, i915_gem_huge_page_mock_selftests)
 selftest(contexts, i915_gem_context_mock_selftests)
 selftest(memory_region, intel_memory_region_mock_selftests)
+selftest(buddy, i915_buddy_mock_selftests)
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Intel-gfx] [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy
@ 2021-06-18 13:31 ` Matthew Auld
  0 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:31 UTC (permalink / raw)
  To: intel-gfx; +Cc: Thomas Hellström, dri-devel

When we resurrected the selftest we forgot to add back the selftest()
hook, meaning the test is not currently run.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/i915/selftests/i915_mock_selftests.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
index 34e5caf38093..6759b56086fb 100644
--- a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
+++ b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
@@ -34,3 +34,4 @@ selftest(gtt, i915_gem_gtt_mock_selftests)
 selftest(hugepages, i915_gem_huge_page_mock_selftests)
 selftest(contexts, i915_gem_context_mock_selftests)
 selftest(memory_region, intel_memory_region_mock_selftests)
+selftest(buddy, i915_buddy_mock_selftests)
-- 
2.26.3

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

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/2] drm/i915: add back the avail tracking
  2021-06-18 13:31 ` [Intel-gfx] " Matthew Auld
@ 2021-06-18 13:31   ` Matthew Auld
  -1 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:31 UTC (permalink / raw)
  To: intel-gfx; +Cc: Thomas Hellström, dri-devel

Looks like it got lost along the way, so add it back. This is needed for
the region query uAPI where we need to report an accurate available size
for lmem.

This time around let's push it directly into the allocator, which
simplifies things, like not having to care about internal fragmentation,
or having to remember to track things for all possible interfaces that
might want to allocate or reserve pages.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_buddy.c             |  6 ++++++
 drivers/gpu/drm/i915/i915_buddy.h             |  1 +
 drivers/gpu/drm/i915/i915_debugfs.c           |  5 +++--
 drivers/gpu/drm/i915/i915_query.c             |  2 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 13 +++++++++++++
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h |  2 ++
 drivers/gpu/drm/i915/intel_memory_region.c    |  8 ++++++++
 drivers/gpu/drm/i915/intel_memory_region.h    |  4 ++++
 8 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_buddy.c b/drivers/gpu/drm/i915/i915_buddy.c
index 29dd7d0310c1..27cd2487a18f 100644
--- a/drivers/gpu/drm/i915/i915_buddy.c
+++ b/drivers/gpu/drm/i915/i915_buddy.c
@@ -80,6 +80,7 @@ int i915_buddy_init(struct i915_buddy_mm *mm, u64 size, u64 chunk_size)
 	size = round_down(size, chunk_size);
 
 	mm->size = size;
+	mm->avail = size;
 	mm->chunk_size = chunk_size;
 	mm->max_order = ilog2(size) - ilog2(chunk_size);
 
@@ -159,6 +160,8 @@ void i915_buddy_fini(struct i915_buddy_mm *mm)
 		i915_block_free(mm, mm->roots[i]);
 	}
 
+	GEM_WARN_ON(mm->avail != mm->size);
+
 	kfree(mm->roots);
 	kfree(mm->free_list);
 	kmem_cache_destroy(mm->slab_blocks);
@@ -235,6 +238,7 @@ void i915_buddy_free(struct i915_buddy_mm *mm,
 		     struct i915_buddy_block *block)
 {
 	GEM_BUG_ON(!i915_buddy_block_is_allocated(block));
+	mm->avail += i915_buddy_block_size(mm, block);
 	__i915_buddy_free(mm, block);
 }
 
@@ -288,6 +292,7 @@ i915_buddy_alloc(struct i915_buddy_mm *mm, unsigned int order)
 	}
 
 	mark_allocated(block);
+	mm->avail -= i915_buddy_block_size(mm, block);
 	kmemleak_update_trace(block);
 	return block;
 
@@ -373,6 +378,7 @@ int i915_buddy_alloc_range(struct i915_buddy_mm *mm,
 			}
 
 			mark_allocated(block);
+			mm->avail -= i915_buddy_block_size(mm, block);
 			list_add_tail(&block->link, &allocated);
 			continue;
 		}
diff --git a/drivers/gpu/drm/i915/i915_buddy.h b/drivers/gpu/drm/i915/i915_buddy.h
index 37f8c42071d1..feb7c1bb6244 100644
--- a/drivers/gpu/drm/i915/i915_buddy.h
+++ b/drivers/gpu/drm/i915/i915_buddy.h
@@ -70,6 +70,7 @@ struct i915_buddy_mm {
 	/* Must be at least PAGE_SIZE */
 	u64 chunk_size;
 	u64 size;
+	u64 avail;
 };
 
 static inline u64
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index cc745751ac53..4765f220469e 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -246,8 +246,9 @@ static int i915_gem_object_info(struct seq_file *m, void *data)
 		   atomic_read(&i915->mm.free_count),
 		   i915->mm.shrink_memory);
 	for_each_memory_region(mr, i915, id)
-		seq_printf(m, "%s: total:%pa, available:%pa bytes\n",
-			   mr->name, &mr->total, &mr->avail);
+		seq_printf(m, "%s: total:%pa, available:%llu bytes\n",
+			   mr->name, &mr->total,
+			   intel_memory_region_get_avail(mr));
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/i915/i915_query.c b/drivers/gpu/drm/i915/i915_query.c
index e49da36c62fb..f10dcea94ac9 100644
--- a/drivers/gpu/drm/i915/i915_query.c
+++ b/drivers/gpu/drm/i915/i915_query.c
@@ -465,7 +465,7 @@ static int query_memregion_info(struct drm_i915_private *i915,
 		info.region.memory_class = mr->type;
 		info.region.memory_instance = mr->instance;
 		info.probed_size = mr->total;
-		info.unallocated_size = mr->avail;
+		info.unallocated_size = intel_memory_region_get_avail(mr);
 
 		if (__copy_to_user(info_ptr, &info, sizeof(info)))
 			return -EFAULT;
diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
index fc7ad5c035b8..562d11edc5e4 100644
--- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
+++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
@@ -246,3 +246,16 @@ int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
 	return ret;
 }
 
+/**
+ * i915_ttm_buddy_man_avail - Get the currently available size
+ * @man: The buddy allocator ttm manager
+ *
+ * Return: The available size in bytes
+ */
+u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man)
+{
+	struct i915_ttm_buddy_manager *bman = to_buddy_manager(man);
+	struct i915_buddy_mm *mm = &bman->mm;
+
+	return mm->avail;
+}
diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
index 26026213e20a..39f5b1a4c3e7 100644
--- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
+++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
@@ -53,4 +53,6 @@ int i915_ttm_buddy_man_fini(struct ttm_device *bdev,
 int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
 			       u64 start, u64 size);
 
+u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man);
+
 #endif
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
index df59f884d37c..269cbb60e233 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/intel_memory_region.c
@@ -132,6 +132,14 @@ void intel_memory_region_set_name(struct intel_memory_region *mem,
 	va_end(ap);
 }
 
+u64 intel_memory_region_get_avail(struct intel_memory_region *mr)
+{
+	if (mr->type == INTEL_MEMORY_LOCAL)
+		return i915_ttm_buddy_man_get_avail(mr->region_private);
+
+	return mr->avail;
+}
+
 static void __intel_memory_region_destroy(struct kref *kref)
 {
 	struct intel_memory_region *mem =
diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
index 2be8433d373a..6f7a073d5a70 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.h
+++ b/drivers/gpu/drm/i915/intel_memory_region.h
@@ -74,6 +74,7 @@ struct intel_memory_region {
 	resource_size_t io_start;
 	resource_size_t min_page_size;
 	resource_size_t total;
+	/* Do not access directly. Use the accessor instead. */
 	resource_size_t avail;
 
 	u16 type;
@@ -125,4 +126,7 @@ intel_memory_region_set_name(struct intel_memory_region *mem,
 int intel_memory_region_reserve(struct intel_memory_region *mem,
 				resource_size_t offset,
 				resource_size_t size);
+
+u64 intel_memory_region_get_avail(struct intel_memory_region *mem);
+
 #endif
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Intel-gfx] [PATCH 2/2] drm/i915: add back the avail tracking
@ 2021-06-18 13:31   ` Matthew Auld
  0 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:31 UTC (permalink / raw)
  To: intel-gfx; +Cc: Thomas Hellström, dri-devel

Looks like it got lost along the way, so add it back. This is needed for
the region query uAPI where we need to report an accurate available size
for lmem.

This time around let's push it directly into the allocator, which
simplifies things, like not having to care about internal fragmentation,
or having to remember to track things for all possible interfaces that
might want to allocate or reserve pages.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_buddy.c             |  6 ++++++
 drivers/gpu/drm/i915/i915_buddy.h             |  1 +
 drivers/gpu/drm/i915/i915_debugfs.c           |  5 +++--
 drivers/gpu/drm/i915/i915_query.c             |  2 +-
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 13 +++++++++++++
 drivers/gpu/drm/i915/i915_ttm_buddy_manager.h |  2 ++
 drivers/gpu/drm/i915/intel_memory_region.c    |  8 ++++++++
 drivers/gpu/drm/i915/intel_memory_region.h    |  4 ++++
 8 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_buddy.c b/drivers/gpu/drm/i915/i915_buddy.c
index 29dd7d0310c1..27cd2487a18f 100644
--- a/drivers/gpu/drm/i915/i915_buddy.c
+++ b/drivers/gpu/drm/i915/i915_buddy.c
@@ -80,6 +80,7 @@ int i915_buddy_init(struct i915_buddy_mm *mm, u64 size, u64 chunk_size)
 	size = round_down(size, chunk_size);
 
 	mm->size = size;
+	mm->avail = size;
 	mm->chunk_size = chunk_size;
 	mm->max_order = ilog2(size) - ilog2(chunk_size);
 
@@ -159,6 +160,8 @@ void i915_buddy_fini(struct i915_buddy_mm *mm)
 		i915_block_free(mm, mm->roots[i]);
 	}
 
+	GEM_WARN_ON(mm->avail != mm->size);
+
 	kfree(mm->roots);
 	kfree(mm->free_list);
 	kmem_cache_destroy(mm->slab_blocks);
@@ -235,6 +238,7 @@ void i915_buddy_free(struct i915_buddy_mm *mm,
 		     struct i915_buddy_block *block)
 {
 	GEM_BUG_ON(!i915_buddy_block_is_allocated(block));
+	mm->avail += i915_buddy_block_size(mm, block);
 	__i915_buddy_free(mm, block);
 }
 
@@ -288,6 +292,7 @@ i915_buddy_alloc(struct i915_buddy_mm *mm, unsigned int order)
 	}
 
 	mark_allocated(block);
+	mm->avail -= i915_buddy_block_size(mm, block);
 	kmemleak_update_trace(block);
 	return block;
 
@@ -373,6 +378,7 @@ int i915_buddy_alloc_range(struct i915_buddy_mm *mm,
 			}
 
 			mark_allocated(block);
+			mm->avail -= i915_buddy_block_size(mm, block);
 			list_add_tail(&block->link, &allocated);
 			continue;
 		}
diff --git a/drivers/gpu/drm/i915/i915_buddy.h b/drivers/gpu/drm/i915/i915_buddy.h
index 37f8c42071d1..feb7c1bb6244 100644
--- a/drivers/gpu/drm/i915/i915_buddy.h
+++ b/drivers/gpu/drm/i915/i915_buddy.h
@@ -70,6 +70,7 @@ struct i915_buddy_mm {
 	/* Must be at least PAGE_SIZE */
 	u64 chunk_size;
 	u64 size;
+	u64 avail;
 };
 
 static inline u64
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index cc745751ac53..4765f220469e 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -246,8 +246,9 @@ static int i915_gem_object_info(struct seq_file *m, void *data)
 		   atomic_read(&i915->mm.free_count),
 		   i915->mm.shrink_memory);
 	for_each_memory_region(mr, i915, id)
-		seq_printf(m, "%s: total:%pa, available:%pa bytes\n",
-			   mr->name, &mr->total, &mr->avail);
+		seq_printf(m, "%s: total:%pa, available:%llu bytes\n",
+			   mr->name, &mr->total,
+			   intel_memory_region_get_avail(mr));
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/i915/i915_query.c b/drivers/gpu/drm/i915/i915_query.c
index e49da36c62fb..f10dcea94ac9 100644
--- a/drivers/gpu/drm/i915/i915_query.c
+++ b/drivers/gpu/drm/i915/i915_query.c
@@ -465,7 +465,7 @@ static int query_memregion_info(struct drm_i915_private *i915,
 		info.region.memory_class = mr->type;
 		info.region.memory_instance = mr->instance;
 		info.probed_size = mr->total;
-		info.unallocated_size = mr->avail;
+		info.unallocated_size = intel_memory_region_get_avail(mr);
 
 		if (__copy_to_user(info_ptr, &info, sizeof(info)))
 			return -EFAULT;
diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
index fc7ad5c035b8..562d11edc5e4 100644
--- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
+++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
@@ -246,3 +246,16 @@ int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
 	return ret;
 }
 
+/**
+ * i915_ttm_buddy_man_avail - Get the currently available size
+ * @man: The buddy allocator ttm manager
+ *
+ * Return: The available size in bytes
+ */
+u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man)
+{
+	struct i915_ttm_buddy_manager *bman = to_buddy_manager(man);
+	struct i915_buddy_mm *mm = &bman->mm;
+
+	return mm->avail;
+}
diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
index 26026213e20a..39f5b1a4c3e7 100644
--- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
+++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
@@ -53,4 +53,6 @@ int i915_ttm_buddy_man_fini(struct ttm_device *bdev,
 int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
 			       u64 start, u64 size);
 
+u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man);
+
 #endif
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
index df59f884d37c..269cbb60e233 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/intel_memory_region.c
@@ -132,6 +132,14 @@ void intel_memory_region_set_name(struct intel_memory_region *mem,
 	va_end(ap);
 }
 
+u64 intel_memory_region_get_avail(struct intel_memory_region *mr)
+{
+	if (mr->type == INTEL_MEMORY_LOCAL)
+		return i915_ttm_buddy_man_get_avail(mr->region_private);
+
+	return mr->avail;
+}
+
 static void __intel_memory_region_destroy(struct kref *kref)
 {
 	struct intel_memory_region *mem =
diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
index 2be8433d373a..6f7a073d5a70 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.h
+++ b/drivers/gpu/drm/i915/intel_memory_region.h
@@ -74,6 +74,7 @@ struct intel_memory_region {
 	resource_size_t io_start;
 	resource_size_t min_page_size;
 	resource_size_t total;
+	/* Do not access directly. Use the accessor instead. */
 	resource_size_t avail;
 
 	u16 type;
@@ -125,4 +126,7 @@ intel_memory_region_set_name(struct intel_memory_region *mem,
 int intel_memory_region_reserve(struct intel_memory_region *mem,
 				resource_size_t offset,
 				resource_size_t size);
+
+u64 intel_memory_region_get_avail(struct intel_memory_region *mem);
+
 #endif
-- 
2.26.3

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

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy
  2021-06-18 13:31 ` [Intel-gfx] " Matthew Auld
@ 2021-06-18 13:36   ` Thomas Hellström
  -1 siblings, 0 replies; 15+ messages in thread
From: Thomas Hellström @ 2021-06-18 13:36 UTC (permalink / raw)
  To: Matthew Auld, intel-gfx; +Cc: kernel test robot, dri-devel

Hi.

On 6/18/21 3:31 PM, Matthew Auld wrote:
> When we resurrected the selftest we forgot to add back the selftest()
> hook, meaning the test is not currently run.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>

Do we need a Fixes: tag?

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>


> ---
>   drivers/gpu/drm/i915/selftests/i915_mock_selftests.h | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
> index 34e5caf38093..6759b56086fb 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
> +++ b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
> @@ -34,3 +34,4 @@ selftest(gtt, i915_gem_gtt_mock_selftests)
>   selftest(hugepages, i915_gem_huge_page_mock_selftests)
>   selftest(contexts, i915_gem_context_mock_selftests)
>   selftest(memory_region, intel_memory_region_mock_selftests)
> +selftest(buddy, i915_buddy_mock_selftests)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Intel-gfx] [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy
@ 2021-06-18 13:36   ` Thomas Hellström
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Hellström @ 2021-06-18 13:36 UTC (permalink / raw)
  To: Matthew Auld, intel-gfx; +Cc: dri-devel

Hi.

On 6/18/21 3:31 PM, Matthew Auld wrote:
> When we resurrected the selftest we forgot to add back the selftest()
> hook, meaning the test is not currently run.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>

Do we need a Fixes: tag?

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>


> ---
>   drivers/gpu/drm/i915/selftests/i915_mock_selftests.h | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
> index 34e5caf38093..6759b56086fb 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
> +++ b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
> @@ -34,3 +34,4 @@ selftest(gtt, i915_gem_gtt_mock_selftests)
>   selftest(hugepages, i915_gem_huge_page_mock_selftests)
>   selftest(contexts, i915_gem_context_mock_selftests)
>   selftest(memory_region, intel_memory_region_mock_selftests)
> +selftest(buddy, i915_buddy_mock_selftests)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy
  2021-06-18 13:36   ` [Intel-gfx] " Thomas Hellström
@ 2021-06-18 13:43     ` Matthew Auld
  -1 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:43 UTC (permalink / raw)
  To: Thomas Hellström, intel-gfx; +Cc: kernel test robot, dri-devel

On 18/06/2021 14:36, Thomas Hellström wrote:
> Hi.
> 
> On 6/18/21 3:31 PM, Matthew Auld wrote:
>> When we resurrected the selftest we forgot to add back the selftest()
>> hook, meaning the test is not currently run.
>>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> 
> Do we need a Fixes: tag?

Not completely sure since this is just for the selftests, so should have 
zero impact for "normal" users, and so also no need to backport or queue 
for fixes I think. I'll add a References: link.

> 
> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> 
> 
>> ---
>>   drivers/gpu/drm/i915/selftests/i915_mock_selftests.h | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h 
>> b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
>> index 34e5caf38093..6759b56086fb 100644
>> --- a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
>> +++ b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
>> @@ -34,3 +34,4 @@ selftest(gtt, i915_gem_gtt_mock_selftests)
>>   selftest(hugepages, i915_gem_huge_page_mock_selftests)
>>   selftest(contexts, i915_gem_context_mock_selftests)
>>   selftest(memory_region, intel_memory_region_mock_selftests)
>> +selftest(buddy, i915_buddy_mock_selftests)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Intel-gfx] [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy
@ 2021-06-18 13:43     ` Matthew Auld
  0 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:43 UTC (permalink / raw)
  To: Thomas Hellström, intel-gfx; +Cc: dri-devel

On 18/06/2021 14:36, Thomas Hellström wrote:
> Hi.
> 
> On 6/18/21 3:31 PM, Matthew Auld wrote:
>> When we resurrected the selftest we forgot to add back the selftest()
>> hook, meaning the test is not currently run.
>>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> 
> Do we need a Fixes: tag?

Not completely sure since this is just for the selftests, so should have 
zero impact for "normal" users, and so also no need to backport or queue 
for fixes I think. I'll add a References: link.

> 
> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> 
> 
>> ---
>>   drivers/gpu/drm/i915/selftests/i915_mock_selftests.h | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h 
>> b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
>> index 34e5caf38093..6759b56086fb 100644
>> --- a/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
>> +++ b/drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
>> @@ -34,3 +34,4 @@ selftest(gtt, i915_gem_gtt_mock_selftests)
>>   selftest(hugepages, i915_gem_huge_page_mock_selftests)
>>   selftest(contexts, i915_gem_context_mock_selftests)
>>   selftest(memory_region, intel_memory_region_mock_selftests)
>> +selftest(buddy, i915_buddy_mock_selftests)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915: add back the avail tracking
  2021-06-18 13:31   ` [Intel-gfx] " Matthew Auld
@ 2021-06-18 13:44     ` Thomas Hellström
  -1 siblings, 0 replies; 15+ messages in thread
From: Thomas Hellström @ 2021-06-18 13:44 UTC (permalink / raw)
  To: Matthew Auld, intel-gfx; +Cc: dri-devel


On 6/18/21 3:31 PM, Matthew Auld wrote:
> Looks like it got lost along the way, so add it back. This is needed for
> the region query uAPI where we need to report an accurate available size
> for lmem.

Hmm. How is this uAPI intended to work in a multi-client environment 
where the returned value can be nothing but a snapshot of the current 
state, that can't be relied upon?

> This time around let's push it directly into the allocator, which
> simplifies things, like not having to care about internal fragmentation,
> or having to remember to track things for all possible interfaces that
> might want to allocate or reserve pages.
>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/i915_buddy.c             |  6 ++++++
>   drivers/gpu/drm/i915/i915_buddy.h             |  1 +
>   drivers/gpu/drm/i915/i915_debugfs.c           |  5 +++--
>   drivers/gpu/drm/i915/i915_query.c             |  2 +-
>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 13 +++++++++++++
>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.h |  2 ++
>   drivers/gpu/drm/i915/intel_memory_region.c    |  8 ++++++++
>   drivers/gpu/drm/i915/intel_memory_region.h    |  4 ++++
>   8 files changed, 38 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_buddy.c b/drivers/gpu/drm/i915/i915_buddy.c
> index 29dd7d0310c1..27cd2487a18f 100644
> --- a/drivers/gpu/drm/i915/i915_buddy.c
> +++ b/drivers/gpu/drm/i915/i915_buddy.c
> @@ -80,6 +80,7 @@ int i915_buddy_init(struct i915_buddy_mm *mm, u64 size, u64 chunk_size)
>   	size = round_down(size, chunk_size);
>   
>   	mm->size = size;
> +	mm->avail = size;
>   	mm->chunk_size = chunk_size;
>   	mm->max_order = ilog2(size) - ilog2(chunk_size);
>   
> @@ -159,6 +160,8 @@ void i915_buddy_fini(struct i915_buddy_mm *mm)
>   		i915_block_free(mm, mm->roots[i]);
>   	}
>   
> +	GEM_WARN_ON(mm->avail != mm->size);
> +
>   	kfree(mm->roots);
>   	kfree(mm->free_list);
>   	kmem_cache_destroy(mm->slab_blocks);
> @@ -235,6 +238,7 @@ void i915_buddy_free(struct i915_buddy_mm *mm,
>   		     struct i915_buddy_block *block)
>   {
>   	GEM_BUG_ON(!i915_buddy_block_is_allocated(block));
> +	mm->avail += i915_buddy_block_size(mm, block);
>   	__i915_buddy_free(mm, block);
>   }
>   
> @@ -288,6 +292,7 @@ i915_buddy_alloc(struct i915_buddy_mm *mm, unsigned int order)
>   	}
>   
>   	mark_allocated(block);
> +	mm->avail -= i915_buddy_block_size(mm, block);
>   	kmemleak_update_trace(block);
>   	return block;
>   
> @@ -373,6 +378,7 @@ int i915_buddy_alloc_range(struct i915_buddy_mm *mm,
>   			}
>   
>   			mark_allocated(block);
> +			mm->avail -= i915_buddy_block_size(mm, block);
>   			list_add_tail(&block->link, &allocated);
>   			continue;
>   		}
> diff --git a/drivers/gpu/drm/i915/i915_buddy.h b/drivers/gpu/drm/i915/i915_buddy.h
> index 37f8c42071d1..feb7c1bb6244 100644
> --- a/drivers/gpu/drm/i915/i915_buddy.h
> +++ b/drivers/gpu/drm/i915/i915_buddy.h
> @@ -70,6 +70,7 @@ struct i915_buddy_mm {
>   	/* Must be at least PAGE_SIZE */
>   	u64 chunk_size;
>   	u64 size;
> +	u64 avail;
>   };
>   
>   static inline u64
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index cc745751ac53..4765f220469e 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -246,8 +246,9 @@ static int i915_gem_object_info(struct seq_file *m, void *data)
>   		   atomic_read(&i915->mm.free_count),
>   		   i915->mm.shrink_memory);
>   	for_each_memory_region(mr, i915, id)
> -		seq_printf(m, "%s: total:%pa, available:%pa bytes\n",
> -			   mr->name, &mr->total, &mr->avail);
> +		seq_printf(m, "%s: total:%pa, available:%llu bytes\n",
> +			   mr->name, &mr->total,
> +			   intel_memory_region_get_avail(mr));
>   
>   	return 0;
>   }
> diff --git a/drivers/gpu/drm/i915/i915_query.c b/drivers/gpu/drm/i915/i915_query.c
> index e49da36c62fb..f10dcea94ac9 100644
> --- a/drivers/gpu/drm/i915/i915_query.c
> +++ b/drivers/gpu/drm/i915/i915_query.c
> @@ -465,7 +465,7 @@ static int query_memregion_info(struct drm_i915_private *i915,
>   		info.region.memory_class = mr->type;
>   		info.region.memory_instance = mr->instance;
>   		info.probed_size = mr->total;
> -		info.unallocated_size = mr->avail;
> +		info.unallocated_size = intel_memory_region_get_avail(mr);
>   
>   		if (__copy_to_user(info_ptr, &info, sizeof(info)))
>   			return -EFAULT;
> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
> index fc7ad5c035b8..562d11edc5e4 100644
> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
> @@ -246,3 +246,16 @@ int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
>   	return ret;
>   }
>   
> +/**
> + * i915_ttm_buddy_man_avail - Get the currently available size
> + * @man: The buddy allocator ttm manager
> + *
> + * Return: The available size in bytes
> + */
> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man)
> +{
> +	struct i915_ttm_buddy_manager *bman = to_buddy_manager(man);
> +	struct i915_buddy_mm *mm = &bman->mm;
> +
> +	return mm->avail;
> +}
> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
> index 26026213e20a..39f5b1a4c3e7 100644
> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
> @@ -53,4 +53,6 @@ int i915_ttm_buddy_man_fini(struct ttm_device *bdev,
>   int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
>   			       u64 start, u64 size);
>   
> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man);
> +
>   #endif
> diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
> index df59f884d37c..269cbb60e233 100644
> --- a/drivers/gpu/drm/i915/intel_memory_region.c
> +++ b/drivers/gpu/drm/i915/intel_memory_region.c
> @@ -132,6 +132,14 @@ void intel_memory_region_set_name(struct intel_memory_region *mem,
>   	va_end(ap);
>   }
>   
> +u64 intel_memory_region_get_avail(struct intel_memory_region *mr)
> +{
> +	if (mr->type == INTEL_MEMORY_LOCAL)
> +		return i915_ttm_buddy_man_get_avail(mr->region_private);
> +
> +	return mr->avail;
> +}

Perhaps a kerneldoc comment here as well?


> +
>   static void __intel_memory_region_destroy(struct kref *kref)
>   {
>   	struct intel_memory_region *mem =
> diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
> index 2be8433d373a..6f7a073d5a70 100644
> --- a/drivers/gpu/drm/i915/intel_memory_region.h
> +++ b/drivers/gpu/drm/i915/intel_memory_region.h
> @@ -74,6 +74,7 @@ struct intel_memory_region {
>   	resource_size_t io_start;
>   	resource_size_t min_page_size;
>   	resource_size_t total;
> +	/* Do not access directly. Use the accessor instead. */
>   	resource_size_t avail;
>   
>   	u16 type;
> @@ -125,4 +126,7 @@ intel_memory_region_set_name(struct intel_memory_region *mem,
>   int intel_memory_region_reserve(struct intel_memory_region *mem,
>   				resource_size_t offset,
>   				resource_size_t size);
> +
> +u64 intel_memory_region_get_avail(struct intel_memory_region *mem);
> +
>   #endif

Otherwise code itself looks good to me.

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Intel-gfx] [PATCH 2/2] drm/i915: add back the avail tracking
@ 2021-06-18 13:44     ` Thomas Hellström
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Hellström @ 2021-06-18 13:44 UTC (permalink / raw)
  To: Matthew Auld, intel-gfx; +Cc: dri-devel


On 6/18/21 3:31 PM, Matthew Auld wrote:
> Looks like it got lost along the way, so add it back. This is needed for
> the region query uAPI where we need to report an accurate available size
> for lmem.

Hmm. How is this uAPI intended to work in a multi-client environment 
where the returned value can be nothing but a snapshot of the current 
state, that can't be relied upon?

> This time around let's push it directly into the allocator, which
> simplifies things, like not having to care about internal fragmentation,
> or having to remember to track things for all possible interfaces that
> might want to allocate or reserve pages.
>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/i915_buddy.c             |  6 ++++++
>   drivers/gpu/drm/i915/i915_buddy.h             |  1 +
>   drivers/gpu/drm/i915/i915_debugfs.c           |  5 +++--
>   drivers/gpu/drm/i915/i915_query.c             |  2 +-
>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 13 +++++++++++++
>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.h |  2 ++
>   drivers/gpu/drm/i915/intel_memory_region.c    |  8 ++++++++
>   drivers/gpu/drm/i915/intel_memory_region.h    |  4 ++++
>   8 files changed, 38 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_buddy.c b/drivers/gpu/drm/i915/i915_buddy.c
> index 29dd7d0310c1..27cd2487a18f 100644
> --- a/drivers/gpu/drm/i915/i915_buddy.c
> +++ b/drivers/gpu/drm/i915/i915_buddy.c
> @@ -80,6 +80,7 @@ int i915_buddy_init(struct i915_buddy_mm *mm, u64 size, u64 chunk_size)
>   	size = round_down(size, chunk_size);
>   
>   	mm->size = size;
> +	mm->avail = size;
>   	mm->chunk_size = chunk_size;
>   	mm->max_order = ilog2(size) - ilog2(chunk_size);
>   
> @@ -159,6 +160,8 @@ void i915_buddy_fini(struct i915_buddy_mm *mm)
>   		i915_block_free(mm, mm->roots[i]);
>   	}
>   
> +	GEM_WARN_ON(mm->avail != mm->size);
> +
>   	kfree(mm->roots);
>   	kfree(mm->free_list);
>   	kmem_cache_destroy(mm->slab_blocks);
> @@ -235,6 +238,7 @@ void i915_buddy_free(struct i915_buddy_mm *mm,
>   		     struct i915_buddy_block *block)
>   {
>   	GEM_BUG_ON(!i915_buddy_block_is_allocated(block));
> +	mm->avail += i915_buddy_block_size(mm, block);
>   	__i915_buddy_free(mm, block);
>   }
>   
> @@ -288,6 +292,7 @@ i915_buddy_alloc(struct i915_buddy_mm *mm, unsigned int order)
>   	}
>   
>   	mark_allocated(block);
> +	mm->avail -= i915_buddy_block_size(mm, block);
>   	kmemleak_update_trace(block);
>   	return block;
>   
> @@ -373,6 +378,7 @@ int i915_buddy_alloc_range(struct i915_buddy_mm *mm,
>   			}
>   
>   			mark_allocated(block);
> +			mm->avail -= i915_buddy_block_size(mm, block);
>   			list_add_tail(&block->link, &allocated);
>   			continue;
>   		}
> diff --git a/drivers/gpu/drm/i915/i915_buddy.h b/drivers/gpu/drm/i915/i915_buddy.h
> index 37f8c42071d1..feb7c1bb6244 100644
> --- a/drivers/gpu/drm/i915/i915_buddy.h
> +++ b/drivers/gpu/drm/i915/i915_buddy.h
> @@ -70,6 +70,7 @@ struct i915_buddy_mm {
>   	/* Must be at least PAGE_SIZE */
>   	u64 chunk_size;
>   	u64 size;
> +	u64 avail;
>   };
>   
>   static inline u64
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index cc745751ac53..4765f220469e 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -246,8 +246,9 @@ static int i915_gem_object_info(struct seq_file *m, void *data)
>   		   atomic_read(&i915->mm.free_count),
>   		   i915->mm.shrink_memory);
>   	for_each_memory_region(mr, i915, id)
> -		seq_printf(m, "%s: total:%pa, available:%pa bytes\n",
> -			   mr->name, &mr->total, &mr->avail);
> +		seq_printf(m, "%s: total:%pa, available:%llu bytes\n",
> +			   mr->name, &mr->total,
> +			   intel_memory_region_get_avail(mr));
>   
>   	return 0;
>   }
> diff --git a/drivers/gpu/drm/i915/i915_query.c b/drivers/gpu/drm/i915/i915_query.c
> index e49da36c62fb..f10dcea94ac9 100644
> --- a/drivers/gpu/drm/i915/i915_query.c
> +++ b/drivers/gpu/drm/i915/i915_query.c
> @@ -465,7 +465,7 @@ static int query_memregion_info(struct drm_i915_private *i915,
>   		info.region.memory_class = mr->type;
>   		info.region.memory_instance = mr->instance;
>   		info.probed_size = mr->total;
> -		info.unallocated_size = mr->avail;
> +		info.unallocated_size = intel_memory_region_get_avail(mr);
>   
>   		if (__copy_to_user(info_ptr, &info, sizeof(info)))
>   			return -EFAULT;
> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
> index fc7ad5c035b8..562d11edc5e4 100644
> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
> @@ -246,3 +246,16 @@ int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
>   	return ret;
>   }
>   
> +/**
> + * i915_ttm_buddy_man_avail - Get the currently available size
> + * @man: The buddy allocator ttm manager
> + *
> + * Return: The available size in bytes
> + */
> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man)
> +{
> +	struct i915_ttm_buddy_manager *bman = to_buddy_manager(man);
> +	struct i915_buddy_mm *mm = &bman->mm;
> +
> +	return mm->avail;
> +}
> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
> index 26026213e20a..39f5b1a4c3e7 100644
> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
> @@ -53,4 +53,6 @@ int i915_ttm_buddy_man_fini(struct ttm_device *bdev,
>   int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
>   			       u64 start, u64 size);
>   
> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man);
> +
>   #endif
> diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
> index df59f884d37c..269cbb60e233 100644
> --- a/drivers/gpu/drm/i915/intel_memory_region.c
> +++ b/drivers/gpu/drm/i915/intel_memory_region.c
> @@ -132,6 +132,14 @@ void intel_memory_region_set_name(struct intel_memory_region *mem,
>   	va_end(ap);
>   }
>   
> +u64 intel_memory_region_get_avail(struct intel_memory_region *mr)
> +{
> +	if (mr->type == INTEL_MEMORY_LOCAL)
> +		return i915_ttm_buddy_man_get_avail(mr->region_private);
> +
> +	return mr->avail;
> +}

Perhaps a kerneldoc comment here as well?


> +
>   static void __intel_memory_region_destroy(struct kref *kref)
>   {
>   	struct intel_memory_region *mem =
> diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
> index 2be8433d373a..6f7a073d5a70 100644
> --- a/drivers/gpu/drm/i915/intel_memory_region.h
> +++ b/drivers/gpu/drm/i915/intel_memory_region.h
> @@ -74,6 +74,7 @@ struct intel_memory_region {
>   	resource_size_t io_start;
>   	resource_size_t min_page_size;
>   	resource_size_t total;
> +	/* Do not access directly. Use the accessor instead. */
>   	resource_size_t avail;
>   
>   	u16 type;
> @@ -125,4 +126,7 @@ intel_memory_region_set_name(struct intel_memory_region *mem,
>   int intel_memory_region_reserve(struct intel_memory_region *mem,
>   				resource_size_t offset,
>   				resource_size_t size);
> +
> +u64 intel_memory_region_get_avail(struct intel_memory_region *mem);
> +
>   #endif

Otherwise code itself looks good to me.

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>



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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915: add back the avail tracking
  2021-06-18 13:44     ` [Intel-gfx] " Thomas Hellström
@ 2021-06-18 13:57       ` Matthew Auld
  -1 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:57 UTC (permalink / raw)
  To: Thomas Hellström, intel-gfx
  Cc: Vetter, Daniel, Jason Ekstrand, dri-devel

On 18/06/2021 14:44, Thomas Hellström wrote:
> 
> On 6/18/21 3:31 PM, Matthew Auld wrote:
>> Looks like it got lost along the way, so add it back. This is needed for
>> the region query uAPI where we need to report an accurate available size
>> for lmem.
> 
> Hmm. How is this uAPI intended to work in a multi-client environment 
> where the returned value can be nothing but a snapshot of the current 
> state, that can't be relied upon?

Ok, maybe I'm overselling it. s/accurate/current snapshot/. It does feel 
more useful than just returning -1 or so?

Daniel, Jason, any thoughts? Or maybe mr->total is all that real 
userspace really cares about?

> 
>> This time around let's push it directly into the allocator, which
>> simplifies things, like not having to care about internal fragmentation,
>> or having to remember to track things for all possible interfaces that
>> might want to allocate or reserve pages.
>>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_buddy.c             |  6 ++++++
>>   drivers/gpu/drm/i915/i915_buddy.h             |  1 +
>>   drivers/gpu/drm/i915/i915_debugfs.c           |  5 +++--
>>   drivers/gpu/drm/i915/i915_query.c             |  2 +-
>>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 13 +++++++++++++
>>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.h |  2 ++
>>   drivers/gpu/drm/i915/intel_memory_region.c    |  8 ++++++++
>>   drivers/gpu/drm/i915/intel_memory_region.h    |  4 ++++
>>   8 files changed, 38 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_buddy.c 
>> b/drivers/gpu/drm/i915/i915_buddy.c
>> index 29dd7d0310c1..27cd2487a18f 100644
>> --- a/drivers/gpu/drm/i915/i915_buddy.c
>> +++ b/drivers/gpu/drm/i915/i915_buddy.c
>> @@ -80,6 +80,7 @@ int i915_buddy_init(struct i915_buddy_mm *mm, u64 
>> size, u64 chunk_size)
>>       size = round_down(size, chunk_size);
>>       mm->size = size;
>> +    mm->avail = size;
>>       mm->chunk_size = chunk_size;
>>       mm->max_order = ilog2(size) - ilog2(chunk_size);
>> @@ -159,6 +160,8 @@ void i915_buddy_fini(struct i915_buddy_mm *mm)
>>           i915_block_free(mm, mm->roots[i]);
>>       }
>> +    GEM_WARN_ON(mm->avail != mm->size);
>> +
>>       kfree(mm->roots);
>>       kfree(mm->free_list);
>>       kmem_cache_destroy(mm->slab_blocks);
>> @@ -235,6 +238,7 @@ void i915_buddy_free(struct i915_buddy_mm *mm,
>>                struct i915_buddy_block *block)
>>   {
>>       GEM_BUG_ON(!i915_buddy_block_is_allocated(block));
>> +    mm->avail += i915_buddy_block_size(mm, block);
>>       __i915_buddy_free(mm, block);
>>   }
>> @@ -288,6 +292,7 @@ i915_buddy_alloc(struct i915_buddy_mm *mm, 
>> unsigned int order)
>>       }
>>       mark_allocated(block);
>> +    mm->avail -= i915_buddy_block_size(mm, block);
>>       kmemleak_update_trace(block);
>>       return block;
>> @@ -373,6 +378,7 @@ int i915_buddy_alloc_range(struct i915_buddy_mm *mm,
>>               }
>>               mark_allocated(block);
>> +            mm->avail -= i915_buddy_block_size(mm, block);
>>               list_add_tail(&block->link, &allocated);
>>               continue;
>>           }
>> diff --git a/drivers/gpu/drm/i915/i915_buddy.h 
>> b/drivers/gpu/drm/i915/i915_buddy.h
>> index 37f8c42071d1..feb7c1bb6244 100644
>> --- a/drivers/gpu/drm/i915/i915_buddy.h
>> +++ b/drivers/gpu/drm/i915/i915_buddy.h
>> @@ -70,6 +70,7 @@ struct i915_buddy_mm {
>>       /* Must be at least PAGE_SIZE */
>>       u64 chunk_size;
>>       u64 size;
>> +    u64 avail;
>>   };
>>   static inline u64
>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
>> b/drivers/gpu/drm/i915/i915_debugfs.c
>> index cc745751ac53..4765f220469e 100644
>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>> @@ -246,8 +246,9 @@ static int i915_gem_object_info(struct seq_file 
>> *m, void *data)
>>              atomic_read(&i915->mm.free_count),
>>              i915->mm.shrink_memory);
>>       for_each_memory_region(mr, i915, id)
>> -        seq_printf(m, "%s: total:%pa, available:%pa bytes\n",
>> -               mr->name, &mr->total, &mr->avail);
>> +        seq_printf(m, "%s: total:%pa, available:%llu bytes\n",
>> +               mr->name, &mr->total,
>> +               intel_memory_region_get_avail(mr));
>>       return 0;
>>   }
>> diff --git a/drivers/gpu/drm/i915/i915_query.c 
>> b/drivers/gpu/drm/i915/i915_query.c
>> index e49da36c62fb..f10dcea94ac9 100644
>> --- a/drivers/gpu/drm/i915/i915_query.c
>> +++ b/drivers/gpu/drm/i915/i915_query.c
>> @@ -465,7 +465,7 @@ static int query_memregion_info(struct 
>> drm_i915_private *i915,
>>           info.region.memory_class = mr->type;
>>           info.region.memory_instance = mr->instance;
>>           info.probed_size = mr->total;
>> -        info.unallocated_size = mr->avail;
>> +        info.unallocated_size = intel_memory_region_get_avail(mr);
>>           if (__copy_to_user(info_ptr, &info, sizeof(info)))
>>               return -EFAULT;
>> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c 
>> b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
>> index fc7ad5c035b8..562d11edc5e4 100644
>> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
>> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
>> @@ -246,3 +246,16 @@ int i915_ttm_buddy_man_reserve(struct 
>> ttm_resource_manager *man,
>>       return ret;
>>   }
>> +/**
>> + * i915_ttm_buddy_man_avail - Get the currently available size
>> + * @man: The buddy allocator ttm manager
>> + *
>> + * Return: The available size in bytes
>> + */
>> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man)
>> +{
>> +    struct i915_ttm_buddy_manager *bman = to_buddy_manager(man);
>> +    struct i915_buddy_mm *mm = &bman->mm;
>> +
>> +    return mm->avail;
>> +}
>> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h 
>> b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
>> index 26026213e20a..39f5b1a4c3e7 100644
>> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
>> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
>> @@ -53,4 +53,6 @@ int i915_ttm_buddy_man_fini(struct ttm_device *bdev,
>>   int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
>>                      u64 start, u64 size);
>> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man);
>> +
>>   #endif
>> diff --git a/drivers/gpu/drm/i915/intel_memory_region.c 
>> b/drivers/gpu/drm/i915/intel_memory_region.c
>> index df59f884d37c..269cbb60e233 100644
>> --- a/drivers/gpu/drm/i915/intel_memory_region.c
>> +++ b/drivers/gpu/drm/i915/intel_memory_region.c
>> @@ -132,6 +132,14 @@ void intel_memory_region_set_name(struct 
>> intel_memory_region *mem,
>>       va_end(ap);
>>   }
>> +u64 intel_memory_region_get_avail(struct intel_memory_region *mr)
>> +{
>> +    if (mr->type == INTEL_MEMORY_LOCAL)
>> +        return i915_ttm_buddy_man_get_avail(mr->region_private);
>> +
>> +    return mr->avail;
>> +}
> 
> Perhaps a kerneldoc comment here as well?
> 
> 
>> +
>>   static void __intel_memory_region_destroy(struct kref *kref)
>>   {
>>       struct intel_memory_region *mem =
>> diff --git a/drivers/gpu/drm/i915/intel_memory_region.h 
>> b/drivers/gpu/drm/i915/intel_memory_region.h
>> index 2be8433d373a..6f7a073d5a70 100644
>> --- a/drivers/gpu/drm/i915/intel_memory_region.h
>> +++ b/drivers/gpu/drm/i915/intel_memory_region.h
>> @@ -74,6 +74,7 @@ struct intel_memory_region {
>>       resource_size_t io_start;
>>       resource_size_t min_page_size;
>>       resource_size_t total;
>> +    /* Do not access directly. Use the accessor instead. */
>>       resource_size_t avail;
>>       u16 type;
>> @@ -125,4 +126,7 @@ intel_memory_region_set_name(struct 
>> intel_memory_region *mem,
>>   int intel_memory_region_reserve(struct intel_memory_region *mem,
>>                   resource_size_t offset,
>>                   resource_size_t size);
>> +
>> +u64 intel_memory_region_get_avail(struct intel_memory_region *mem);
>> +
>>   #endif
> 
> Otherwise code itself looks good to me.
> 
> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> 
> 
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Intel-gfx] [PATCH 2/2] drm/i915: add back the avail tracking
@ 2021-06-18 13:57       ` Matthew Auld
  0 siblings, 0 replies; 15+ messages in thread
From: Matthew Auld @ 2021-06-18 13:57 UTC (permalink / raw)
  To: Thomas Hellström, intel-gfx; +Cc: Vetter, Daniel, dri-devel

On 18/06/2021 14:44, Thomas Hellström wrote:
> 
> On 6/18/21 3:31 PM, Matthew Auld wrote:
>> Looks like it got lost along the way, so add it back. This is needed for
>> the region query uAPI where we need to report an accurate available size
>> for lmem.
> 
> Hmm. How is this uAPI intended to work in a multi-client environment 
> where the returned value can be nothing but a snapshot of the current 
> state, that can't be relied upon?

Ok, maybe I'm overselling it. s/accurate/current snapshot/. It does feel 
more useful than just returning -1 or so?

Daniel, Jason, any thoughts? Or maybe mr->total is all that real 
userspace really cares about?

> 
>> This time around let's push it directly into the allocator, which
>> simplifies things, like not having to care about internal fragmentation,
>> or having to remember to track things for all possible interfaces that
>> might want to allocate or reserve pages.
>>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_buddy.c             |  6 ++++++
>>   drivers/gpu/drm/i915/i915_buddy.h             |  1 +
>>   drivers/gpu/drm/i915/i915_debugfs.c           |  5 +++--
>>   drivers/gpu/drm/i915/i915_query.c             |  2 +-
>>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 13 +++++++++++++
>>   drivers/gpu/drm/i915/i915_ttm_buddy_manager.h |  2 ++
>>   drivers/gpu/drm/i915/intel_memory_region.c    |  8 ++++++++
>>   drivers/gpu/drm/i915/intel_memory_region.h    |  4 ++++
>>   8 files changed, 38 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_buddy.c 
>> b/drivers/gpu/drm/i915/i915_buddy.c
>> index 29dd7d0310c1..27cd2487a18f 100644
>> --- a/drivers/gpu/drm/i915/i915_buddy.c
>> +++ b/drivers/gpu/drm/i915/i915_buddy.c
>> @@ -80,6 +80,7 @@ int i915_buddy_init(struct i915_buddy_mm *mm, u64 
>> size, u64 chunk_size)
>>       size = round_down(size, chunk_size);
>>       mm->size = size;
>> +    mm->avail = size;
>>       mm->chunk_size = chunk_size;
>>       mm->max_order = ilog2(size) - ilog2(chunk_size);
>> @@ -159,6 +160,8 @@ void i915_buddy_fini(struct i915_buddy_mm *mm)
>>           i915_block_free(mm, mm->roots[i]);
>>       }
>> +    GEM_WARN_ON(mm->avail != mm->size);
>> +
>>       kfree(mm->roots);
>>       kfree(mm->free_list);
>>       kmem_cache_destroy(mm->slab_blocks);
>> @@ -235,6 +238,7 @@ void i915_buddy_free(struct i915_buddy_mm *mm,
>>                struct i915_buddy_block *block)
>>   {
>>       GEM_BUG_ON(!i915_buddy_block_is_allocated(block));
>> +    mm->avail += i915_buddy_block_size(mm, block);
>>       __i915_buddy_free(mm, block);
>>   }
>> @@ -288,6 +292,7 @@ i915_buddy_alloc(struct i915_buddy_mm *mm, 
>> unsigned int order)
>>       }
>>       mark_allocated(block);
>> +    mm->avail -= i915_buddy_block_size(mm, block);
>>       kmemleak_update_trace(block);
>>       return block;
>> @@ -373,6 +378,7 @@ int i915_buddy_alloc_range(struct i915_buddy_mm *mm,
>>               }
>>               mark_allocated(block);
>> +            mm->avail -= i915_buddy_block_size(mm, block);
>>               list_add_tail(&block->link, &allocated);
>>               continue;
>>           }
>> diff --git a/drivers/gpu/drm/i915/i915_buddy.h 
>> b/drivers/gpu/drm/i915/i915_buddy.h
>> index 37f8c42071d1..feb7c1bb6244 100644
>> --- a/drivers/gpu/drm/i915/i915_buddy.h
>> +++ b/drivers/gpu/drm/i915/i915_buddy.h
>> @@ -70,6 +70,7 @@ struct i915_buddy_mm {
>>       /* Must be at least PAGE_SIZE */
>>       u64 chunk_size;
>>       u64 size;
>> +    u64 avail;
>>   };
>>   static inline u64
>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
>> b/drivers/gpu/drm/i915/i915_debugfs.c
>> index cc745751ac53..4765f220469e 100644
>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>> @@ -246,8 +246,9 @@ static int i915_gem_object_info(struct seq_file 
>> *m, void *data)
>>              atomic_read(&i915->mm.free_count),
>>              i915->mm.shrink_memory);
>>       for_each_memory_region(mr, i915, id)
>> -        seq_printf(m, "%s: total:%pa, available:%pa bytes\n",
>> -               mr->name, &mr->total, &mr->avail);
>> +        seq_printf(m, "%s: total:%pa, available:%llu bytes\n",
>> +               mr->name, &mr->total,
>> +               intel_memory_region_get_avail(mr));
>>       return 0;
>>   }
>> diff --git a/drivers/gpu/drm/i915/i915_query.c 
>> b/drivers/gpu/drm/i915/i915_query.c
>> index e49da36c62fb..f10dcea94ac9 100644
>> --- a/drivers/gpu/drm/i915/i915_query.c
>> +++ b/drivers/gpu/drm/i915/i915_query.c
>> @@ -465,7 +465,7 @@ static int query_memregion_info(struct 
>> drm_i915_private *i915,
>>           info.region.memory_class = mr->type;
>>           info.region.memory_instance = mr->instance;
>>           info.probed_size = mr->total;
>> -        info.unallocated_size = mr->avail;
>> +        info.unallocated_size = intel_memory_region_get_avail(mr);
>>           if (__copy_to_user(info_ptr, &info, sizeof(info)))
>>               return -EFAULT;
>> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c 
>> b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
>> index fc7ad5c035b8..562d11edc5e4 100644
>> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
>> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
>> @@ -246,3 +246,16 @@ int i915_ttm_buddy_man_reserve(struct 
>> ttm_resource_manager *man,
>>       return ret;
>>   }
>> +/**
>> + * i915_ttm_buddy_man_avail - Get the currently available size
>> + * @man: The buddy allocator ttm manager
>> + *
>> + * Return: The available size in bytes
>> + */
>> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man)
>> +{
>> +    struct i915_ttm_buddy_manager *bman = to_buddy_manager(man);
>> +    struct i915_buddy_mm *mm = &bman->mm;
>> +
>> +    return mm->avail;
>> +}
>> diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h 
>> b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
>> index 26026213e20a..39f5b1a4c3e7 100644
>> --- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
>> +++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
>> @@ -53,4 +53,6 @@ int i915_ttm_buddy_man_fini(struct ttm_device *bdev,
>>   int i915_ttm_buddy_man_reserve(struct ttm_resource_manager *man,
>>                      u64 start, u64 size);
>> +u64 i915_ttm_buddy_man_get_avail(struct ttm_resource_manager *man);
>> +
>>   #endif
>> diff --git a/drivers/gpu/drm/i915/intel_memory_region.c 
>> b/drivers/gpu/drm/i915/intel_memory_region.c
>> index df59f884d37c..269cbb60e233 100644
>> --- a/drivers/gpu/drm/i915/intel_memory_region.c
>> +++ b/drivers/gpu/drm/i915/intel_memory_region.c
>> @@ -132,6 +132,14 @@ void intel_memory_region_set_name(struct 
>> intel_memory_region *mem,
>>       va_end(ap);
>>   }
>> +u64 intel_memory_region_get_avail(struct intel_memory_region *mr)
>> +{
>> +    if (mr->type == INTEL_MEMORY_LOCAL)
>> +        return i915_ttm_buddy_man_get_avail(mr->region_private);
>> +
>> +    return mr->avail;
>> +}
> 
> Perhaps a kerneldoc comment here as well?
> 
> 
>> +
>>   static void __intel_memory_region_destroy(struct kref *kref)
>>   {
>>       struct intel_memory_region *mem =
>> diff --git a/drivers/gpu/drm/i915/intel_memory_region.h 
>> b/drivers/gpu/drm/i915/intel_memory_region.h
>> index 2be8433d373a..6f7a073d5a70 100644
>> --- a/drivers/gpu/drm/i915/intel_memory_region.h
>> +++ b/drivers/gpu/drm/i915/intel_memory_region.h
>> @@ -74,6 +74,7 @@ struct intel_memory_region {
>>       resource_size_t io_start;
>>       resource_size_t min_page_size;
>>       resource_size_t total;
>> +    /* Do not access directly. Use the accessor instead. */
>>       resource_size_t avail;
>>       u16 type;
>> @@ -125,4 +126,7 @@ intel_memory_region_set_name(struct 
>> intel_memory_region *mem,
>>   int intel_memory_region_reserve(struct intel_memory_region *mem,
>>                   resource_size_t offset,
>>                   resource_size_t size);
>> +
>> +u64 intel_memory_region_get_avail(struct intel_memory_region *mem);
>> +
>>   #endif
> 
> Otherwise code itself looks good to me.
> 
> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> 
> 
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/2] drm/i915/selftests: add back the selftest() hook for the buddy
  2021-06-18 13:31 ` [Intel-gfx] " Matthew Auld
                   ` (2 preceding siblings ...)
  (?)
@ 2021-06-18 16:06 ` Patchwork
  -1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2021-06-18 16:06 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915/selftests: add back the selftest() hook for the buddy
URL   : https://patchwork.freedesktop.org/series/91679/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-drivers/gpu/drm/i915/selftests/i915_buddy.c:777:5: warning: symbol 'i915_buddy_mock_selftests' was not declared. Should it be static?
+drivers/gpu/drm/i915/selftests/i915_syncmap.c:80:54: warning: dubious: x | !y


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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/selftests: add back the selftest() hook for the buddy
  2021-06-18 13:31 ` [Intel-gfx] " Matthew Auld
                   ` (3 preceding siblings ...)
  (?)
@ 2021-06-18 16:34 ` Patchwork
  -1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2021-06-18 16:34 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-gfx


[-- Attachment #1.1: Type: text/plain, Size: 1967 bytes --]

== Series Details ==

Series: series starting with [1/2] drm/i915/selftests: add back the selftest() hook for the buddy
URL   : https://patchwork.freedesktop.org/series/91679/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10242 -> Patchwork_20412
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/index.html

Known issues
------------

  Here are the changes found in Patchwork_20412 that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@i915_selftest@live@perf:
    - {fi-tgl-dsi}:       [DMESG-WARN][1] ([i915#2867]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/fi-tgl-dsi/igt@i915_selftest@live@perf.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/fi-tgl-dsi/igt@i915_selftest@live@perf.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867


Participating hosts (42 -> 37)
------------------------------

  Missing    (5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-bdw-samus 


Build changes
-------------

  * Linux: CI_DRM_10242 -> Patchwork_20412

  CI-20190529: 20190529
  CI_DRM_10242: a31069c62e8586aa92907539ab948412c1d5f5a0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6112: a17cc0c5d096fabfd516848c114bc411e11130f4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_20412: dada076a22e3b2bb56c9c6e18d975f0a2113cc98 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

dada076a22e3 drm/i915: add back the avail tracking
3890a0c9f96f drm/i915/selftests: add back the selftest() hook for the buddy

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/index.html

[-- Attachment #1.2: Type: text/html, Size: 2575 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/2] drm/i915/selftests: add back the selftest() hook for the buddy
  2021-06-18 13:31 ` [Intel-gfx] " Matthew Auld
                   ` (4 preceding siblings ...)
  (?)
@ 2021-06-18 18:35 ` Patchwork
  -1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2021-06-18 18:35 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-gfx


[-- Attachment #1.1: Type: text/plain, Size: 24397 bytes --]

== Series Details ==

Series: series starting with [1/2] drm/i915/selftests: add back the selftest() hook for the buddy
URL   : https://patchwork.freedesktop.org/series/91679/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10242_full -> Patchwork_20412_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_20412_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_20412_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_20412_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_big_fb@x-tiled-8bpp-rotate-0:
    - shard-glk:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk3/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk3/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html

  
#### Warnings ####

  * igt@gem_exec_reloc@basic-wide-active@bcs0:
    - shard-apl:          [FAIL][3] ([i915#3633]) -> [FAIL][4] +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl8/igt@gem_exec_reloc@basic-wide-active@bcs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl2/igt@gem_exec_reloc@basic-wide-active@bcs0.html
    - shard-glk:          [FAIL][5] ([i915#3633]) -> [FAIL][6] +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk4/igt@gem_exec_reloc@basic-wide-active@bcs0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk3/igt@gem_exec_reloc@basic-wide-active@bcs0.html
    - shard-skl:          [FAIL][7] ([i915#3633]) -> [FAIL][8] +3 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl2/igt@gem_exec_reloc@basic-wide-active@bcs0.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl2/igt@gem_exec_reloc@basic-wide-active@bcs0.html
    - shard-tglb:         [FAIL][9] ([i915#3633]) -> [FAIL][10] +4 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-tglb2/igt@gem_exec_reloc@basic-wide-active@bcs0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-tglb8/igt@gem_exec_reloc@basic-wide-active@bcs0.html

  * igt@gem_exec_reloc@basic-wide-active@rcs0:
    - shard-snb:          [FAIL][11] ([i915#3633]) -> [FAIL][12] +2 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-snb7/igt@gem_exec_reloc@basic-wide-active@rcs0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-snb7/igt@gem_exec_reloc@basic-wide-active@rcs0.html
    - shard-iclb:         [FAIL][13] ([i915#3633]) -> [FAIL][14] +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb6/igt@gem_exec_reloc@basic-wide-active@rcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb5/igt@gem_exec_reloc@basic-wide-active@rcs0.html
    - shard-kbl:          [FAIL][15] ([i915#3633]) -> [FAIL][16] +4 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-kbl3/igt@gem_exec_reloc@basic-wide-active@rcs0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-kbl1/igt@gem_exec_reloc@basic-wide-active@rcs0.html

  
New tests
---------

  New tests have been introduced between CI_DRM_10242_full and Patchwork_20412_full:

### New IGT tests (2) ###

  * igt@kms_atomic_transition@plane-all-transition@vga-1-pipe-a:
    - Statuses : 1 pass(s)
    - Exec time: [1.30] s

  * igt@kms_atomic_transition@plane-all-transition@vga-1-pipe-b:
    - Statuses : 1 pass(s)
    - Exec time: [1.35] s

  

Known issues
------------

  Here are the changes found in Patchwork_20412_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@reset-stress:
    - shard-snb:          [PASS][17] -> [TIMEOUT][18] ([i915#3427])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-snb5/igt@gem_eio@reset-stress.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-snb2/igt@gem_eio@reset-stress.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([i915#2842])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb3/igt@gem_exec_fair@basic-none-share@rcs0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb8/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - shard-kbl:          [PASS][21] -> [SKIP][22] ([fdo#109271])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-kbl3/igt@gem_exec_fair@basic-pace@rcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-kbl1/igt@gem_exec_fair@basic-pace@rcs0.html
    - shard-glk:          [PASS][23] -> [FAIL][24] ([i915#2842])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk3/igt@gem_exec_fair@basic-pace@rcs0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk5/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_fair@basic-sync@rcs0:
    - shard-skl:          NOTRUN -> [SKIP][25] ([fdo#109271]) +2 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl4/igt@gem_exec_fair@basic-sync@rcs0.html

  * igt@gem_exec_schedule@deep@vecs0:
    - shard-tglb:         [PASS][26] -> [INCOMPLETE][27] ([i915#2624])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-tglb2/igt@gem_exec_schedule@deep@vecs0.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-tglb6/igt@gem_exec_schedule@deep@vecs0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-apl:          NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#2190])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl7/igt@gem_huc_copy@huc-copy.html

  * igt@gem_mmap_gtt@big-copy-xy:
    - shard-glk:          [PASS][29] -> [FAIL][30] ([i915#307])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk6/igt@gem_mmap_gtt@big-copy-xy.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk4/igt@gem_mmap_gtt@big-copy-xy.html

  * igt@gem_mmap_gtt@cpuset-big-copy-odd:
    - shard-iclb:         [PASS][31] -> [FAIL][32] ([i915#307])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb4/igt@gem_mmap_gtt@cpuset-big-copy-odd.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb6/igt@gem_mmap_gtt@cpuset-big-copy-odd.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-skl:          [PASS][33] -> [FAIL][34] ([i915#644])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl3/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl1/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_pread@exhaustion:
    - shard-apl:          NOTRUN -> [WARN][35] ([i915#2658])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl2/igt@gem_pread@exhaustion.html

  * igt@gem_userptr_blits@input-checking:
    - shard-snb:          NOTRUN -> [DMESG-WARN][36] ([i915#3002])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-snb2/igt@gem_userptr_blits@input-checking.html

  * igt@i915_query@query-topology-known-pci-ids:
    - shard-snb:          NOTRUN -> [SKIP][37] ([fdo#109271]) +41 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-snb6/igt@i915_query@query-topology-known-pci-ids.html

  * igt@i915_selftest@live@hangcheck:
    - shard-snb:          NOTRUN -> [INCOMPLETE][38] ([i915#2782])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-snb6/igt@i915_selftest@live@hangcheck.html

  * igt@kms_chamelium@hdmi-edid-change-during-suspend:
    - shard-apl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [fdo#111827]) +25 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl7/igt@kms_chamelium@hdmi-edid-change-during-suspend.html

  * igt@kms_color_chamelium@pipe-d-ctm-0-75:
    - shard-snb:          NOTRUN -> [SKIP][40] ([fdo#109271] / [fdo#111827])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-snb6/igt@kms_color_chamelium@pipe-d-ctm-0-75.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-apl:          NOTRUN -> [TIMEOUT][41] ([i915#1319]) +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl2/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_cursor_legacy@pipe-d-torture-bo:
    - shard-apl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#533]) +2 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl3/igt@kms_cursor_legacy@pipe-d-torture-bo.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
    - shard-apl:          [PASS][43] -> [DMESG-WARN][44] ([i915#180]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl2/igt@kms_flip@flip-vs-suspend@a-dp1.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl1/igt@kms_flip@flip-vs-suspend@a-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile:
    - shard-apl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#2642])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render:
    - shard-glk:          NOTRUN -> [SKIP][46] ([fdo#109271]) +18 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-skl:          [PASS][47] -> [FAIL][48] ([i915#1188])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl7/igt@kms_hdr@bpc-switch-suspend.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl10/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
    - shard-apl:          NOTRUN -> [FAIL][49] ([fdo#108145] / [i915#265])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl7/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb:
    - shard-apl:          NOTRUN -> [FAIL][50] ([i915#265])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl6/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-5:
    - shard-glk:          NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#658])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk4/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-5.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-2:
    - shard-apl:          NOTRUN -> [SKIP][52] ([fdo#109271] / [i915#658]) +5 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl6/igt@kms_psr2_sf@plane-move-sf-dmg-area-2.html

  * igt@kms_psr@psr2_basic:
    - shard-iclb:         [PASS][53] -> [SKIP][54] ([fdo#109441]) +2 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb2/igt@kms_psr@psr2_basic.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb7/igt@kms_psr@psr2_basic.html

  * igt@kms_writeback@writeback-check-output:
    - shard-apl:          NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#2437])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl6/igt@kms_writeback@writeback-check-output.html

  * igt@perf@polling-parameterized:
    - shard-skl:          [PASS][56] -> [FAIL][57] ([i915#1542])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl4/igt@perf@polling-parameterized.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl4/igt@perf@polling-parameterized.html

  * igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name:
    - shard-apl:          NOTRUN -> [SKIP][58] ([fdo#109271]) +236 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl6/igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name.html

  * igt@sysfs_clients@fair-3:
    - shard-apl:          NOTRUN -> [SKIP][59] ([fdo#109271] / [i915#2994])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl2/igt@sysfs_clients@fair-3.html

  * igt@sysfs_heartbeat_interval@mixed@rcs0:
    - shard-skl:          [PASS][60] -> [FAIL][61] ([i915#1731])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl6/igt@sysfs_heartbeat_interval@mixed@rcs0.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html

  
#### Possible fixes ####

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-kbl:          [FAIL][62] ([i915#2842]) -> [PASS][63] +1 similar issue
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-kbl4/igt@gem_exec_fair@basic-none@vcs0.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-kbl4/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [FAIL][64] ([i915#2842]) -> [PASS][65]
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-tglb5/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-tglb1/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_mmap_gtt@big-copy-odd:
    - shard-skl:          [FAIL][66] ([i915#307]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl7/igt@gem_mmap_gtt@big-copy-odd.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl10/igt@gem_mmap_gtt@big-copy-odd.html

  * igt@gem_mmap_offset@clear:
    - shard-iclb:         [FAIL][68] ([i915#3160]) -> [PASS][69]
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb6/igt@gem_mmap_offset@clear.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb5/igt@gem_mmap_offset@clear.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [FAIL][70] ([i915#454]) -> [PASS][71]
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb4/igt@i915_pm_dc@dc6-psr.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb1/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-skl:          [FAIL][72] ([i915#2521]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl6/igt@kms_async_flips@alternate-sync-async-flip.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl3/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-180:
    - shard-glk:          [DMESG-WARN][74] ([i915#118] / [i915#95]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk3/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk8/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-apl:          [DMESG-WARN][76] ([i915#180]) -> [PASS][77]
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl7/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_hdr@bpc-switch-dpms:
    - shard-skl:          [FAIL][78] ([i915#1188]) -> [PASS][79]
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl5/igt@kms_hdr@bpc-switch-dpms.html

  * igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
    - shard-skl:          [FAIL][80] ([fdo#108145] / [i915#265]) -> [PASS][81] +1 similar issue
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-glk:          [INCOMPLETE][82] -> [PASS][83]
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk2/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@kms_vblank@pipe-b-accuracy-idle:
    - shard-glk:          [FAIL][84] ([i915#43]) -> [PASS][85]
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk7/igt@kms_vblank@pipe-b-accuracy-idle.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk6/igt@kms_vblank@pipe-b-accuracy-idle.html

  * igt@sysfs_heartbeat_interval@mixed@vcs0:
    - shard-skl:          [FAIL][86] ([i915#1731]) -> [PASS][87] +1 similar issue
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-skl6/igt@sysfs_heartbeat_interval@mixed@vcs0.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-skl3/igt@sysfs_heartbeat_interval@mixed@vcs0.html

  * igt@sysfs_heartbeat_interval@mixed@vecs0:
    - shard-glk:          [FAIL][88] ([i915#1731]) -> [PASS][89]
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk2/igt@sysfs_heartbeat_interval@mixed@vecs0.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk7/igt@sysfs_heartbeat_interval@mixed@vecs0.html

  
#### Warnings ####

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-iclb:         [WARN][90] ([i915#2684]) -> [WARN][91] ([i915#1804] / [i915#2684])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb2/igt@i915_pm_rc6_residency@rc6-fence.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb6/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
    - shard-glk:          [FAIL][92] ([i915#49]) -> [FAIL][93] ([i915#2546] / [i915#49])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-glk6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-glk4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1:
    - shard-iclb:         [SKIP][94] ([i915#2920]) -> [SKIP][95] ([i915#658]) +1 similar issue
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2:
    - shard-iclb:         [SKIP][96] ([i915#658]) -> [SKIP][97] ([i915#2920]) +1 similar issue
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-iclb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html

  * igt@runner@aborted:
    - shard-apl:          ([FAIL][98], [FAIL][99], [FAIL][100], [FAIL][101], [FAIL][102], [FAIL][103]) ([fdo#109271] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363]) -> ([FAIL][104], [FAIL][105], [FAIL][106], [FAIL][107]) ([i915#180] / [i915#1814] / [i915#3002] / [i915#3363])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl7/igt@runner@aborted.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl1/igt@runner@aborted.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl3/igt@runner@aborted.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl1/igt@runner@aborted.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl3/igt@runner@aborted.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10242/shard-apl1/igt@runner@aborted.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl1/igt@runner@aborted.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl1/igt@runner@aborted.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl8/igt@runner@aborted.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20412/shard-apl3/igt@runner@aborted.html

  
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#1731]: https://gitlab.freedesktop.org/drm/intel/issues/1731
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
  [i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
  [i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
  [i915#2624]: https://gitlab.freedesktop.org/drm/intel/issues/2624
  [i915#2642]: https://gitlab.freedesktop.org/drm/intel/issues/2642
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
  [i915#2782]: https://gitlab.freedesktop.org/drm/intel/issues/2782
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#307]: https://gitlab.freedesktop.org/drm/intel/issues/307
  [i915#3160]: https://gitlab.freedesktop.org/drm/intel/issues/3160
  [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
  [i915#3427]: https://gitlab.freedesktop.org/drm/intel/issues/3427
  [i915#3633]: https://gitlab.freedesktop.org/drm/intel/issues/3633
  [i915#43]: https://gitlab.freedesktop.org/drm/intel/issues/43
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (11 -> 10)
------------------------------

  Missing    (1): pig-snb-2600 


Build changes
-------------

  * Linux: CI_DRM_10242 -> Patchwork_20412

  CI-20190529: 20190529
  CI_DRM_10242: a31069c62e8586aa92907539ab948412c1d5f5a0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6112: a17cc0c5d096fabfd516848c114bc411e11130f4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_20412: dada076a22e3b2bb56c9c6e18d975f0a2113cc98 @ 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_20412/index.html

[-- Attachment #1.2: Type: text/html, Size: 29873 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-06-18 18:35 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-18 13:31 [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy Matthew Auld
2021-06-18 13:31 ` [Intel-gfx] " Matthew Auld
2021-06-18 13:31 ` [PATCH 2/2] drm/i915: add back the avail tracking Matthew Auld
2021-06-18 13:31   ` [Intel-gfx] " Matthew Auld
2021-06-18 13:44   ` Thomas Hellström
2021-06-18 13:44     ` [Intel-gfx] " Thomas Hellström
2021-06-18 13:57     ` Matthew Auld
2021-06-18 13:57       ` [Intel-gfx] " Matthew Auld
2021-06-18 13:36 ` [PATCH 1/2] drm/i915/selftests: add back the selftest() hook for the buddy Thomas Hellström
2021-06-18 13:36   ` [Intel-gfx] " Thomas Hellström
2021-06-18 13:43   ` Matthew Auld
2021-06-18 13:43     ` [Intel-gfx] " Matthew Auld
2021-06-18 16:06 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/2] " Patchwork
2021-06-18 16:34 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-06-18 18:35 ` [Intel-gfx] ✗ 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.