[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