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>


[ROCm/ROCR-Runtime commit: daad183bf8]
Tento commit je obsažen v:
Kent Russell
2024-09-17 09:29:27 -04:00
rodič 848340186f
revize 4901f1a528
8 změnil soubory, kde provedl 30 přidání a 27 odebrání
+7 -7
Zobrazit soubor
@@ -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;
+2 -5
Zobrazit soubor
@@ -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;
+6 -2
Zobrazit soubor
@@ -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
+2 -4
Zobrazit soubor
@@ -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)
+4 -4
Zobrazit soubor
@@ -57,7 +57,7 @@ void KFDSVMEvictTest::TearDown() {
}
HSAint32 KFDSVMEvictTest::GetBufferCounter(HSAuint64 vramSize, HSAuint64 vramBufSize) {
HSAuint64 vramBufSizeInPages = vramBufSize >> HSAKMT_PAGE_SHIFT;
HSAuint64 vramBufSizeInPages = vramBufSize >> PAGE_SHIFT;
HSAuint64 sysMemSize = GetSysMemSize();
HSAuint64 size, sizeInPages;
HSAuint32 count;
@@ -79,7 +79,7 @@ HSAint32 KFDSVMEvictTest::GetBufferCounter(HSAuint64 vramSize, HSAuint64 vramBuf
if (!xnack_enable && size > (sysMemSize - (sysMemSize >> 4)))
return 0;
sizeInPages = size >> HSAKMT_PAGE_SHIFT;
sizeInPages = size >> PAGE_SHIFT;
count = sizeInPages / (vramBufSizeInPages * N_PROCESSES);
return count;
@@ -105,10 +105,10 @@ HSAint64 KFDSVMEvictTest::GetBufferSize(HSAuint64 vramSize, HSAuint32 count,
if (!xnack_enable && size > (sysMemSize - (sysMemSize >> 4)))
return 0;
sizeInPages = size >> HSAKMT_PAGE_SHIFT;
sizeInPages = size >> PAGE_SHIFT;
vramBufSizeInPages = sizeInPages / (count * N_PROCESSES);
return vramBufSizeInPages << HSAKMT_PAGE_SHIFT;
return vramBufSizeInPages << PAGE_SHIFT;
}
void KFDSVMEvictTest::AllocBuffers(HSAuint32 defaultGPUNode, HSAuint32 count, HSAuint64 vramBufSize,
+2 -2
Zobrazit soubor
@@ -1452,8 +1452,8 @@ unsigned int ReadSMIEventThread(void* p) {
EXPECT_EQ(sscanf(msg, "%x %ld -%d @%lx(%d) %d->%x %x:%d %d\n", &event_id, &timestamp, &pid,
&addr, &size, &unused, &unused, &unused, &unused, &trigger), 10);
EXPECT_EQ(event_id, HSA_SMI_EVENT_MIGRATE_START);
EXPECT_EQ((HSAuint64 *)(addr << HSAKMT_PAGE_SHIFT), pArgs->pBuf);
EXPECT_EQ(size << HSAKMT_PAGE_SHIFT, pArgs->BufSize);
EXPECT_EQ((HSAuint64 *)(addr << PAGE_SHIFT), pArgs->pBuf);
EXPECT_EQ(size << PAGE_SHIFT, pArgs->BufSize);
EXPECT_EQ(pid, getpid());
EXPECT_EQ(trigger, HSA_MIGRATE_TRIGGER_PREFETCH);
close(fd);
+5 -1
Zobrazit soubor
@@ -33,7 +33,11 @@
#ifndef PAGE_SIZE
#define PAGE_SIZE (1<<12)
#define HSAKMT_PAGE_SHIFT (12)
#define PAGE_SHIFT (12)
#endif
#ifndef PAGE_SHIFT
#define PAGE_SIZE (1<<12)
#define PAGE_SHIFT (12)
#endif
enum TEXTCOLOR {
+2 -2
Zobrazit soubor
@@ -304,7 +304,7 @@ static int amdp2ptest_mmap(struct file *filp, struct vm_area_struct *vma)
struct va_pages_node *va_pages = NULL;
struct amdp2ptest_pages_list *list = filp->private_data;
struct list_head *p, *n;
uint64_t gpu_va = vma->vm_pgoff << HSAKMT_PAGE_SHIFT;
uint64_t gpu_va = vma->vm_pgoff << PAGE_SHIFT;
MSG_INFO("Mapping to CPU user space\n");
MSG_INFO("Begin vm_start 0x%lx, vm_end 0x%lx\n", vma->vm_start, vma->vm_end);
@@ -340,7 +340,7 @@ static int amdp2ptest_mmap(struct file *filp, struct vm_area_struct *vma)
addr, sg->dma_address, size);
ret = remap_pfn_range(vma,
addr,
sg->dma_address >> HSAKMT_PAGE_SHIFT,
sg->dma_address >> PAGE_SHIFT,
size,
vma->vm_page_prot);
if (ret) {