hsakmt: Undo HSAKMT prefix for PAGE_SHIFT
We had skipped doing it for PAGE_SIZE, but it should be left as the regular PAGE_SHIFT name, especially for users who are using different headers. We want PAGE_SHIFT and PAGE_SIZE to be consistent with one another, so set them both explicitly to the same value if either of them is undefined Change-Id: I121d81c48409dd77351b59a192d824e2419a2410 Signed-off-by: Kent Russell <kent.russell@amd.com>
This commit is contained in:
@@ -3748,7 +3748,7 @@ HSAKMT_STATUS hsakmt_fmm_share_memory(void *MemoryAddress,
|
||||
HsaSharedMemoryStruct *SharedMemoryStruct =
|
||||
to_hsa_shared_memory_struct(SharedMemoryHandle);
|
||||
|
||||
if (SizeInBytes >= (1ULL << ((sizeof(HSAuint32) * 8) + HSAKMT_PAGE_SHIFT)))
|
||||
if (SizeInBytes >= (1ULL << ((sizeof(HSAuint32) * 8) + PAGE_SHIFT)))
|
||||
return HSAKMT_STATUS_INVALID_PARAMETER;
|
||||
|
||||
aperture = fmm_find_aperture(MemoryAddress, &ApeInfo);
|
||||
@@ -3784,7 +3784,7 @@ HSAKMT_STATUS hsakmt_fmm_share_memory(void *MemoryAddress,
|
||||
memcpy(SharedMemoryStruct->ShareHandle, exportArgs.share_handle,
|
||||
sizeof(SharedMemoryStruct->ShareHandle));
|
||||
SharedMemoryStruct->ApeInfo = ApeInfo;
|
||||
SharedMemoryStruct->SizeInPages = (HSAuint32) (SizeInBytes >> HSAKMT_PAGE_SHIFT);
|
||||
SharedMemoryStruct->SizeInPages = (HSAuint32) (SizeInBytes >> PAGE_SHIFT);
|
||||
SharedMemoryStruct->ExportGpuId = gpu_id;
|
||||
|
||||
return HSAKMT_STATUS_SUCCESS;
|
||||
@@ -3821,7 +3821,7 @@ HSAKMT_STATUS hsakmt_fmm_register_shared_memory(const HsaSharedMemoryHandle *Sha
|
||||
|
||||
pthread_mutex_lock(&aperture->fmm_mutex);
|
||||
reservedMem = aperture_allocate_area(aperture, NULL,
|
||||
(SizeInPages << HSAKMT_PAGE_SHIFT));
|
||||
(SizeInPages << PAGE_SHIFT));
|
||||
pthread_mutex_unlock(&aperture->fmm_mutex);
|
||||
if (!reservedMem) {
|
||||
err = HSAKMT_STATUS_NO_MEMORY;
|
||||
@@ -3838,7 +3838,7 @@ HSAKMT_STATUS hsakmt_fmm_register_shared_memory(const HsaSharedMemoryHandle *Sha
|
||||
pthread_mutex_lock(&aperture->fmm_mutex);
|
||||
mflags.Value = importArgs.flags;
|
||||
obj = aperture_allocate_object(aperture, reservedMem, importArgs.handle,
|
||||
(SizeInPages << HSAKMT_PAGE_SHIFT), mflags);
|
||||
(SizeInPages << PAGE_SHIFT), mflags);
|
||||
if (!obj) {
|
||||
err = HSAKMT_STATUS_NO_MEMORY;
|
||||
goto err_free_mem;
|
||||
@@ -3854,7 +3854,7 @@ HSAKMT_STATUS hsakmt_fmm_register_shared_memory(const HsaSharedMemoryHandle *Sha
|
||||
goto err_free_obj;
|
||||
}
|
||||
obj->node_id = gpu_mem[gpu_mem_id].node_id;
|
||||
ret = fmm_map_to_cpu(reservedMem, (SizeInPages << HSAKMT_PAGE_SHIFT),
|
||||
ret = fmm_map_to_cpu(reservedMem, (SizeInPages << PAGE_SHIFT),
|
||||
true, gpu_mem[gpu_mem_id].drm_render_fd,
|
||||
importArgs.mmap_offset);
|
||||
|
||||
@@ -3865,7 +3865,7 @@ HSAKMT_STATUS hsakmt_fmm_register_shared_memory(const HsaSharedMemoryHandle *Sha
|
||||
}
|
||||
|
||||
*MemoryAddress = reservedMem;
|
||||
*SizeInBytes = (SizeInPages << HSAKMT_PAGE_SHIFT);
|
||||
*SizeInBytes = (SizeInPages << PAGE_SHIFT);
|
||||
|
||||
if (gpu_id_array_size > 0) {
|
||||
obj->registered_device_id_array = gpu_id_array;
|
||||
@@ -3878,7 +3878,7 @@ err_free_obj:
|
||||
pthread_mutex_lock(&aperture->fmm_mutex);
|
||||
vm_remove_object(aperture, obj);
|
||||
err_free_mem:
|
||||
aperture_release_area(aperture, reservedMem, (SizeInPages << HSAKMT_PAGE_SHIFT));
|
||||
aperture_release_area(aperture, reservedMem, (SizeInPages << PAGE_SHIFT));
|
||||
pthread_mutex_unlock(&aperture->fmm_mutex);
|
||||
err_free_buffer:
|
||||
freeArgs.handle = importArgs.handle;
|
||||
|
||||
@@ -33,11 +33,8 @@ unsigned long hsakmt_system_properties_count;
|
||||
pthread_mutex_t hsakmt_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
bool hsakmt_is_dgpu;
|
||||
|
||||
#ifndef PAGE_SIZE
|
||||
int PAGE_SIZE;
|
||||
#endif
|
||||
|
||||
int HSAKMT_PAGE_SHIFT;
|
||||
int hsakmt_page_size;
|
||||
int hsakmt_page_shift;
|
||||
|
||||
/* whether to check all dGPUs in the topology support SVM API */
|
||||
bool hsakmt_is_svm_api_supported;
|
||||
|
||||
@@ -67,9 +67,13 @@ extern HsaVersionInfo hsakmt_kfd_version_info;
|
||||
/* Might be defined in limits.h on platforms where it is constant (used by musl) */
|
||||
/* See also: https://pubs.opengroup.org/onlinepubs/7908799/xsh/limits.h.html */
|
||||
#ifndef PAGE_SIZE
|
||||
extern int PAGE_SIZE;
|
||||
extern int hsakmt_page_size;
|
||||
#define PAGE_SIZE hsakmt_page_size
|
||||
#endif
|
||||
#ifndef PAGE_SHIFT
|
||||
extern int hsakmt_page_shift;
|
||||
#define PAGE_SHIFT hsakmt_page_shift
|
||||
#endif
|
||||
extern int HSAKMT_PAGE_SHIFT;
|
||||
|
||||
/* VI HW bug requires this virtual address alignment */
|
||||
#define TONGA_PAGE_SIZE 0x8000
|
||||
|
||||
@@ -114,10 +114,8 @@ static void clear_after_fork(void)
|
||||
|
||||
static inline void init_page_size(void)
|
||||
{
|
||||
#ifndef PAGE_SIZE
|
||||
PAGE_SIZE = sysconf(_SC_PAGESIZE);
|
||||
#endif
|
||||
HSAKMT_PAGE_SHIFT = ffs(PAGE_SIZE) - 1;
|
||||
hsakmt_page_size = sysconf(_SC_PAGESIZE);
|
||||
hsakmt_page_shift = ffs(hsakmt_page_size) - 1;
|
||||
}
|
||||
|
||||
static HSAKMT_STATUS init_vars_from_env(void)
|
||||
|
||||
مرجع در شماره جدید
Block a user