anv/allocator: Get rid of the ability to free blocks
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 24 Apr 2017 10:11:02 +0000 (03:11 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 5 May 2017 02:07:54 +0000 (19:07 -0700)
Now that everything is going through the state pools, the block pool no
longer needs to be able to handle re-use.

Reviewed-by: Juan A. Suarez Romero <jasuarez@igalia.com>
src/intel/vulkan/anv_allocator.c
src/intel/vulkan/anv_private.h

index b7cf1136bbd94215a78da934fefa4235854e52ae..8569f692f63bd35088cc7bf075bd117bc69b7c58 100644 (file)
@@ -258,8 +258,6 @@ anv_block_pool_init(struct anv_block_pool *pool,
 
    pool->device = device;
    anv_bo_init(&pool->bo, 0, 0);
-   pool->free_list = ANV_FREE_LIST_EMPTY;
-   pool->back_free_list = ANV_FREE_LIST_EMPTY;
 
    pool->fd = memfd_create("block pool", MFD_CLOEXEC);
    if (pool->fd == -1)
@@ -581,15 +579,6 @@ int32_t
 anv_block_pool_alloc(struct anv_block_pool *pool,
                      uint32_t block_size)
 {
-   int32_t offset;
-
-   /* Try free list first. */
-   if (anv_free_list_pop(&pool->free_list, &pool->map, &offset)) {
-      assert(offset >= 0);
-      assert(pool->map);
-      return offset;
-   }
-
    return anv_block_pool_alloc_new(pool, &pool->state, block_size);
 }
 
@@ -606,16 +595,8 @@ int32_t
 anv_block_pool_alloc_back(struct anv_block_pool *pool,
                           uint32_t block_size)
 {
-   int32_t offset;
-
-   /* Try free list first. */
-   if (anv_free_list_pop(&pool->back_free_list, &pool->map, &offset)) {
-      assert(offset < 0);
-      assert(pool->map);
-      return offset;
-   }
-
-   offset = anv_block_pool_alloc_new(pool, &pool->back_state, block_size);
+   int32_t offset = anv_block_pool_alloc_new(pool, &pool->back_state,
+                                             block_size);
 
    /* The offset we get out of anv_block_pool_alloc_new() is actually the
     * number of bytes downwards from the middle to the end of the block.
@@ -626,16 +607,6 @@ anv_block_pool_alloc_back(struct anv_block_pool *pool,
    return -(offset + block_size);
 }
 
-void
-anv_block_pool_free(struct anv_block_pool *pool, int32_t offset)
-{
-   if (offset < 0) {
-      anv_free_list_push(&pool->back_free_list, pool->map, offset);
-   } else {
-      anv_free_list_push(&pool->free_list, pool->map, offset);
-   }
-}
-
 void
 anv_state_pool_init(struct anv_state_pool *pool,
                     struct anv_block_pool *block_pool,
index 9bc3fca1404ebc374ebe9ddcc2aedb0fbca69ca9..d66a2681dce0bc8a17cb917d463e3dad2bfd16dc 100644 (file)
@@ -461,10 +461,8 @@ struct anv_block_pool {
     */
    struct u_vector mmap_cleanups;
 
-   union anv_free_list free_list;
    struct anv_block_state state;
 
-   union anv_free_list back_free_list;
    struct anv_block_state back_state;
 };
 
@@ -567,7 +565,6 @@ int32_t anv_block_pool_alloc(struct anv_block_pool *pool,
                              uint32_t block_size);
 int32_t anv_block_pool_alloc_back(struct anv_block_pool *pool,
                                   uint32_t block_size);
-void anv_block_pool_free(struct anv_block_pool *pool, int32_t offset);
 void anv_state_pool_init(struct anv_state_pool *pool,
                          struct anv_block_pool *block_pool,
                          uint32_t block_size);