anv/allocator: Get rid of the ability to free blocks
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>
This commit is contained in:
parent
08413a81b9
commit
bb2a3f0df8
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue