amdgpu: fix inefficient vamgr algorithm
issue: UMD allocates top 4GB, but don't do anything, just reserve top 4GB space, but the performance of VP13 drops from 162fps to 99fps. root cause: our va hole list of vamgr is too long by time going. fix: reusing old hole as much as possible can make the list shortest. result: performance recovers as non-list path, next patch will remove non-list code path. Signed-off-by: Chunming Zhou <david1.zhou@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>main
parent
bde3b9b689
commit
d07be74a4a
|
@ -80,9 +80,7 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
|
|||
return AMDGPU_INVALID_VA_ADDRESS;
|
||||
|
||||
pthread_mutex_lock(&mgr->bo_va_mutex);
|
||||
/* TODO: using more appropriate way to track the holes */
|
||||
/* first look for a hole */
|
||||
LIST_FOR_EACH_ENTRY_SAFE(hole, n, &mgr->va_holes, list) {
|
||||
LIST_FOR_EACH_ENTRY_SAFE_REV(hole, n, &mgr->va_holes, list) {
|
||||
if (base_required) {
|
||||
if (hole->offset > base_required ||
|
||||
(hole->offset + hole->size) < (base_required + size))
|
||||
|
|
Loading…
Reference in New Issue