[PATCH 2/2] hmmmm

Matthew Auld matthew.auld at intel.com
Mon Nov 9 21:18:00 UTC 2020


---
 drivers/gpu/drm/i915/gem/i915_gem_region.c |  6 ++---
 drivers/gpu/drm/i915/intel_memory_region.c | 30 ++++++++--------------
 drivers/gpu/drm/i915/intel_memory_region.h |  9 +++----
 3 files changed, 18 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_region.c b/drivers/gpu/drm/i915/gem/i915_gem_region.c
index 1515384d7e0e..48d4a710fa3e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_region.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_region.c
@@ -26,7 +26,7 @@ i915_gem_object_get_pages_buddy(struct drm_i915_gem_object *obj)
 	struct list_head *blocks = &obj->mm.blocks;
 	resource_size_t size = obj->base.size;
 	resource_size_t prev_end;
-	struct i915_buddy_block *block;
+	struct i915_nb_buddy_block *block;
 	unsigned int flags;
 	struct sg_table *st;
 	struct scatterlist *sg;
@@ -61,8 +61,8 @@ i915_gem_object_get_pages_buddy(struct drm_i915_gem_object *obj)
 		u64 block_size, offset;
 
 		block_size = min_t(u64, size,
-				   i915_buddy_block_size(&mem->mm, block));
-		offset = i915_buddy_block_offset(block);
+				   i915_nb_buddy_block_size(&mem->mm, block));
+		offset = i915_nb_buddy_block_offset(block);
 
 		GEM_BUG_ON(overflows_type(block_size, sg->length));
 
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
index b326993a1026..f1526190d471 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/intel_memory_region.c
@@ -34,12 +34,12 @@ static u64
 intel_memory_region_free_pages(struct intel_memory_region *mem,
 			       struct list_head *blocks)
 {
-	struct i915_buddy_block *block, *on;
+	struct i915_nb_buddy_block *block, *on;
 	u64 size = 0;
 
 	list_for_each_entry_safe(block, on, blocks, link) {
-		size += i915_buddy_block_size(&mem->mm, block);
-		i915_buddy_free(&mem->mm, block);
+		size += i915_nb_buddy_block_size(&mem->mm, block);
+		i915_nb_buddy_free(&mem->mm, block);
 	}
 	INIT_LIST_HEAD(blocks);
 
@@ -50,13 +50,11 @@ void
 __intel_memory_region_put_pages_buddy(struct intel_memory_region *mem,
 				      struct list_head *blocks)
 {
-	mutex_lock(&mem->mm_lock);
 	mem->avail += intel_memory_region_free_pages(mem, blocks);
-	mutex_unlock(&mem->mm_lock);
 }
 
 void
-__intel_memory_region_put_block_buddy(struct i915_buddy_block *block)
+__intel_memory_region_put_block_buddy(struct i915_nb_buddy_block *block)
 {
 	struct list_head blocks;
 
@@ -92,10 +90,9 @@ __intel_memory_region_get_pages_buddy(struct intel_memory_region *mem,
 
 	n_pages = size >> ilog2(mem->mm.chunk_size);
 
-	mutex_lock(&mem->mm_lock);
 
 	do {
-		struct i915_buddy_block *block;
+		struct i915_nb_buddy_block *block;
 		unsigned int order;
 
 		order = fls(n_pages) - 1;
@@ -103,7 +100,7 @@ __intel_memory_region_get_pages_buddy(struct intel_memory_region *mem,
 		GEM_BUG_ON(order < min_order);
 
 		do {
-			block = i915_buddy_alloc(&mem->mm, order);
+			block = i915_nb_buddy_alloc(&mem->mm, order);
 			if (!IS_ERR(block))
 				break;
 
@@ -121,21 +118,19 @@ __intel_memory_region_get_pages_buddy(struct intel_memory_region *mem,
 	} while (1);
 
 	mem->avail -= size;
-	mutex_unlock(&mem->mm_lock);
 	return 0;
 
 err_free_blocks:
 	intel_memory_region_free_pages(mem, blocks);
-	mutex_unlock(&mem->mm_lock);
 	return -ENXIO;
 }
 
-struct i915_buddy_block *
+struct i915_nb_buddy_block *
 __intel_memory_region_get_block_buddy(struct intel_memory_region *mem,
 				      resource_size_t size,
 				      unsigned int flags)
 {
-	struct i915_buddy_block *block;
+	struct i915_nb_buddy_block *block;
 	LIST_HEAD(blocks);
 	int ret;
 
@@ -150,13 +145,13 @@ __intel_memory_region_get_block_buddy(struct intel_memory_region *mem,
 
 int intel_memory_region_init_buddy(struct intel_memory_region *mem)
 {
-	return i915_buddy_init(&mem->mm, resource_size(&mem->region),
-			       PAGE_SIZE);
+	return i915_nb_buddy_init(&mem->mm, resource_size(&mem->region),
+				  PAGE_SIZE);
 }
 
 void intel_memory_region_release_buddy(struct intel_memory_region *mem)
 {
-	i915_buddy_fini(&mem->mm);
+	i915_nb_buddy_fini(&mem->mm);
 }
 
 struct intel_memory_region *
@@ -186,8 +181,6 @@ intel_memory_region_create(struct drm_i915_private *i915,
 	INIT_LIST_HEAD(&mem->objects.list);
 	INIT_LIST_HEAD(&mem->objects.purgeable);
 
-	mutex_init(&mem->mm_lock);
-
 	if (ops->init) {
 		err = ops->init(mem);
 		if (err)
@@ -220,7 +213,6 @@ static void __intel_memory_region_destroy(struct kref *kref)
 	if (mem->ops->release)
 		mem->ops->release(mem);
 
-	mutex_destroy(&mem->mm_lock);
 	mutex_destroy(&mem->objects.lock);
 	kfree(mem);
 }
diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
index 232490d89a83..805e007383af 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.h
+++ b/drivers/gpu/drm/i915/intel_memory_region.h
@@ -12,7 +12,7 @@
 #include <linux/io-mapping.h>
 #include <drm/drm_mm.h>
 
-#include "i915_buddy.h"
+#include "i915_nb_buddy.h"
 
 struct drm_i915_private;
 struct drm_i915_gem_object;
@@ -79,8 +79,7 @@ struct intel_memory_region {
 	/* For fake LMEM */
 	struct drm_mm_node fake_mappable;
 
-	struct i915_buddy_mm mm;
-	struct mutex mm_lock;
+	struct i915_nb_buddy_mm mm;
 
 	struct kref kref;
 
@@ -110,13 +109,13 @@ int __intel_memory_region_get_pages_buddy(struct intel_memory_region *mem,
 					  resource_size_t size,
 					  unsigned int flags,
 					  struct list_head *blocks);
-struct i915_buddy_block *
+struct i915_nb_buddy_block *
 __intel_memory_region_get_block_buddy(struct intel_memory_region *mem,
 				      resource_size_t size,
 				      unsigned int flags);
 void __intel_memory_region_put_pages_buddy(struct intel_memory_region *mem,
 					   struct list_head *blocks);
-void __intel_memory_region_put_block_buddy(struct i915_buddy_block *block);
+void __intel_memory_region_put_block_buddy(struct i915_nb_buddy_block *block);
 
 struct intel_memory_region *
 intel_memory_region_create(struct drm_i915_private *i915,
-- 
2.26.2



More information about the Intel-gfx-trybot mailing list