drm/amdgpu: remove fence slab

Just use kmalloc for the fences in the rare case we need
an independent fence.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Alex Deucher 2025-06-16 14:28:32 -04:00
parent 49f1f9f6c3
commit 684385273d
3 changed files with 4 additions and 27 deletions

View File

@ -470,9 +470,6 @@ struct amdgpu_sa_manager {
void *cpu_ptr;
};
int amdgpu_fence_slab_init(void);
void amdgpu_fence_slab_fini(void);
/*
* IRQS.
*/

View File

@ -3113,10 +3113,6 @@ static int __init amdgpu_init(void)
if (r)
goto error_sync;
r = amdgpu_fence_slab_init();
if (r)
goto error_fence;
r = amdgpu_userq_fence_slab_init();
if (r)
goto error_fence;
@ -3151,7 +3147,6 @@ static void __exit amdgpu_exit(void)
amdgpu_unregister_atpx_handler();
amdgpu_acpi_release();
amdgpu_sync_fini();
amdgpu_fence_slab_fini();
amdgpu_userq_fence_slab_fini();
mmu_notifier_synchronize();
amdgpu_xcp_drv_release();

View File

@ -41,21 +41,6 @@
#include "amdgpu_trace.h"
#include "amdgpu_reset.h"
static struct kmem_cache *amdgpu_fence_slab;
int amdgpu_fence_slab_init(void)
{
amdgpu_fence_slab = KMEM_CACHE(amdgpu_fence, SLAB_HWCACHE_ALIGN);
if (!amdgpu_fence_slab)
return -ENOMEM;
return 0;
}
void amdgpu_fence_slab_fini(void)
{
rcu_barrier();
kmem_cache_destroy(amdgpu_fence_slab);
}
/*
* Cast helper
*/
@ -131,9 +116,9 @@ int amdgpu_fence_emit(struct amdgpu_ring *ring, struct dma_fence **f, struct amd
int r;
if (job == NULL) {
/* create a sperate hw fence */
am_fence = kmem_cache_alloc(amdgpu_fence_slab, GFP_ATOMIC);
if (am_fence == NULL)
/* create a separate hw fence */
am_fence = kzalloc(sizeof(*am_fence), GFP_KERNEL);
if (!am_fence)
return -ENOMEM;
} else {
/* take use of job-embedded fence */
@ -814,7 +799,7 @@ static void amdgpu_fence_free(struct rcu_head *rcu)
struct dma_fence *f = container_of(rcu, struct dma_fence, rcu);
/* free fence_slab if it's separated fence*/
kmem_cache_free(amdgpu_fence_slab, to_amdgpu_fence(f));
kfree(to_amdgpu_fence(f));
}
/**