From b2691c359d73b660d8e8d040935fd2f2f22336a2 Mon Sep 17 00:00:00 2001 From: Philip Yang Date: Wed, 17 Aug 2022 13:33:12 -0400 Subject: [PATCH] libhsakmt: Use mmap aligned for scratch allocation To remove duplicate mmap aligned allocation code. Change-Id: Ibc05cc4aaf6d190bd2382e33bdeca1496960c5f2 Signed-off-by: Philip Yang --- src/fmm.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/fmm.c b/src/fmm.c index e769cbfe87..8378620106 100644 --- a/src/fmm.c +++ b/src/fmm.c @@ -1283,28 +1283,13 @@ void *fmm_allocate_scratch(uint32_t gpu_id, void *address, uint64_t MemorySizeIn aligned_size, SCRATCH_ALIGN); pthread_mutex_unlock(&svm.dgpu_aperture->fmm_mutex); } else { - uint64_t aligned_padded_size = aligned_size + - SCRATCH_ALIGN - PAGE_SIZE; - void *padded_end, *aligned_start, *aligned_end; - if (address) return NULL; - mem = mmap(0, aligned_padded_size, - PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, - -1, 0); - if (!mem) - return NULL; - /* align start and unmap padding */ - padded_end = VOID_PTR_ADD(mem, aligned_padded_size); - aligned_start = (void *)ALIGN_UP((uint64_t)mem, SCRATCH_ALIGN); - aligned_end = VOID_PTR_ADD(aligned_start, aligned_size); - if (aligned_start > mem) - munmap(mem, VOID_PTRS_SUB(aligned_start, mem)); - if (aligned_end < padded_end) - munmap(aligned_end, - VOID_PTRS_SUB(padded_end, aligned_end)); - mem = aligned_start; + mem = mmap_allocate_aligned(PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, + aligned_size, SCRATCH_ALIGN, 0, + 0, (void *)LONG_MAX); } /* Remember scratch backing aperture for later */