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:
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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, ×tamp, &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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele