Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdkfd: Consolidate duplicated bo alloc flags

ALLOC_MEM_FLAGS_* used are the same as the KFD_IOC_ALLOC_MEM_FLAGS_*,
but they are interweavedly used in kernel driver, resulting in bad
readability. For example, KFD_IOC_ALLOC_MEM_FLAGS_COHERENT is not
referenced in kernel, and it functions implicitly in kernel through
ALLOC_MEM_FLAGS_COHERENT, causing unnecessary confusion.

Replace all occurrences of ALLOC_MEM_FLAGS_* with
KFD_IOC_ALLOC_MEM_FLAGS_* to solve the problem.

Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Yong Zhao and committed by
Alex Deucher
1d251d90 8f2e0c03

+27 -42
+4 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
··· 29 29 #include <linux/module.h> 30 30 #include <linux/dma-buf.h> 31 31 #include "amdgpu_xgmi.h" 32 + #include <uapi/linux/kfd_ioctl.h> 32 33 33 34 static const unsigned int compute_vmid_bitmap = 0xFF00; 34 35 ··· 502 501 metadata_size, &metadata_flags); 503 502 if (flags) { 504 503 *flags = (bo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM) ? 505 - ALLOC_MEM_FLAGS_VRAM : ALLOC_MEM_FLAGS_GTT; 504 + KFD_IOC_ALLOC_MEM_FLAGS_VRAM 505 + : KFD_IOC_ALLOC_MEM_FLAGS_GTT; 506 506 507 507 if (bo->flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) 508 - *flags |= ALLOC_MEM_FLAGS_PUBLIC; 508 + *flags |= KFD_IOC_ALLOC_MEM_FLAGS_PUBLIC; 509 509 } 510 510 511 511 out_put:
+16 -13
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
··· 29 29 #include "amdgpu_vm.h" 30 30 #include "amdgpu_amdkfd.h" 31 31 #include "amdgpu_dma_buf.h" 32 + #include <uapi/linux/kfd_ioctl.h> 32 33 33 34 /* BO flag to indicate a KFD userptr BO */ 34 35 #define AMDGPU_AMDKFD_USERPTR_BO (1ULL << 63) ··· 401 400 static uint64_t get_pte_flags(struct amdgpu_device *adev, struct kgd_mem *mem) 402 401 { 403 402 struct amdgpu_device *bo_adev = amdgpu_ttm_adev(mem->bo->tbo.bdev); 404 - bool coherent = mem->alloc_flags & ALLOC_MEM_FLAGS_COHERENT; 403 + bool coherent = mem->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_COHERENT; 405 404 uint32_t mapping_flags; 406 405 407 406 mapping_flags = AMDGPU_VM_PAGE_READABLE; 408 - if (mem->alloc_flags & ALLOC_MEM_FLAGS_WRITABLE) 407 + if (mem->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE) 409 408 mapping_flags |= AMDGPU_VM_PAGE_WRITEABLE; 410 - if (mem->alloc_flags & ALLOC_MEM_FLAGS_EXECUTABLE) 409 + if (mem->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE) 411 410 mapping_flags |= AMDGPU_VM_PAGE_EXECUTABLE; 412 411 413 412 switch (adev->asic_type) { 414 413 case CHIP_ARCTURUS: 415 - if (mem->alloc_flags & ALLOC_MEM_FLAGS_VRAM) { 414 + if (mem->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM) { 416 415 if (bo_adev == adev) 417 416 mapping_flags |= coherent ? 418 417 AMDGPU_VM_MTYPE_CC : AMDGPU_VM_MTYPE_RW; ··· 1161 1160 /* 1162 1161 * Check on which domain to allocate BO 1163 1162 */ 1164 - if (flags & ALLOC_MEM_FLAGS_VRAM) { 1163 + if (flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM) { 1165 1164 domain = alloc_domain = AMDGPU_GEM_DOMAIN_VRAM; 1166 1165 alloc_flags = AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE; 1167 - alloc_flags |= (flags & ALLOC_MEM_FLAGS_PUBLIC) ? 1166 + alloc_flags |= (flags & KFD_IOC_ALLOC_MEM_FLAGS_PUBLIC) ? 1168 1167 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED : 1169 1168 AMDGPU_GEM_CREATE_NO_CPU_ACCESS; 1170 - } else if (flags & ALLOC_MEM_FLAGS_GTT) { 1169 + } else if (flags & KFD_IOC_ALLOC_MEM_FLAGS_GTT) { 1171 1170 domain = alloc_domain = AMDGPU_GEM_DOMAIN_GTT; 1172 1171 alloc_flags = 0; 1173 - } else if (flags & ALLOC_MEM_FLAGS_USERPTR) { 1172 + } else if (flags & KFD_IOC_ALLOC_MEM_FLAGS_USERPTR) { 1174 1173 domain = AMDGPU_GEM_DOMAIN_GTT; 1175 1174 alloc_domain = AMDGPU_GEM_DOMAIN_CPU; 1176 1175 alloc_flags = 0; 1177 1176 if (!offset || !*offset) 1178 1177 return -EINVAL; 1179 1178 user_addr = untagged_addr(*offset); 1180 - } else if (flags & (ALLOC_MEM_FLAGS_DOORBELL | 1181 - ALLOC_MEM_FLAGS_MMIO_REMAP)) { 1179 + } else if (flags & (KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL | 1180 + KFD_IOC_ALLOC_MEM_FLAGS_MMIO_REMAP)) { 1182 1181 domain = AMDGPU_GEM_DOMAIN_GTT; 1183 1182 alloc_domain = AMDGPU_GEM_DOMAIN_CPU; 1184 1183 bo_type = ttm_bo_type_sg; ··· 1199 1198 } 1200 1199 INIT_LIST_HEAD(&(*mem)->bo_va_list); 1201 1200 mutex_init(&(*mem)->lock); 1202 - (*mem)->aql_queue = !!(flags & ALLOC_MEM_FLAGS_AQL_QUEUE_MEM); 1201 + (*mem)->aql_queue = !!(flags & KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM); 1203 1202 1204 1203 /* Workaround for AQL queue wraparound bug. Map the same 1205 1204 * memory twice. That means we only actually allocate half ··· 1681 1680 1682 1681 INIT_LIST_HEAD(&(*mem)->bo_va_list); 1683 1682 mutex_init(&(*mem)->lock); 1683 + 1684 1684 (*mem)->alloc_flags = 1685 1685 ((bo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM) ? 1686 - ALLOC_MEM_FLAGS_VRAM : ALLOC_MEM_FLAGS_GTT) | 1687 - ALLOC_MEM_FLAGS_WRITABLE | ALLOC_MEM_FLAGS_EXECUTABLE; 1686 + KFD_IOC_ALLOC_MEM_FLAGS_VRAM : KFD_IOC_ALLOC_MEM_FLAGS_GTT) 1687 + | KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE 1688 + | KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE; 1688 1689 1689 1690 (*mem)->bo = amdgpu_bo_ref(bo); 1690 1691 (*mem)->va = va;
+7 -6
drivers/gpu/drm/amd/amdkfd/kfd_process.c
··· 327 327 static int kfd_process_device_reserve_ib_mem(struct kfd_process_device *pdd) 328 328 { 329 329 struct qcm_process_device *qpd = &pdd->qpd; 330 - uint32_t flags = ALLOC_MEM_FLAGS_GTT | 331 - ALLOC_MEM_FLAGS_NO_SUBSTITUTE | 332 - ALLOC_MEM_FLAGS_WRITABLE | 333 - ALLOC_MEM_FLAGS_EXECUTABLE; 330 + uint32_t flags = KFD_IOC_ALLOC_MEM_FLAGS_GTT | 331 + KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE | 332 + KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE | 333 + KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE; 334 334 void *kaddr; 335 335 int ret; 336 336 ··· 697 697 { 698 698 struct kfd_dev *dev = pdd->dev; 699 699 struct qcm_process_device *qpd = &pdd->qpd; 700 - uint32_t flags = ALLOC_MEM_FLAGS_GTT | 701 - ALLOC_MEM_FLAGS_NO_SUBSTITUTE | ALLOC_MEM_FLAGS_EXECUTABLE; 700 + uint32_t flags = KFD_IOC_ALLOC_MEM_FLAGS_GTT 701 + | KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE 702 + | KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE; 702 703 void *kaddr; 703 704 int ret; 704 705
-21
drivers/gpu/drm/amd/include/kgd_kfd_interface.h
··· 167 167 168 168 #define KFD_MAX_NUM_OF_QUEUES_PER_DEVICE_DEFAULT 4096 169 169 170 - /* 171 - * Allocation flag domains 172 - * NOTE: This must match the corresponding definitions in kfd_ioctl.h. 173 - */ 174 - #define ALLOC_MEM_FLAGS_VRAM (1 << 0) 175 - #define ALLOC_MEM_FLAGS_GTT (1 << 1) 176 - #define ALLOC_MEM_FLAGS_USERPTR (1 << 2) 177 - #define ALLOC_MEM_FLAGS_DOORBELL (1 << 3) 178 - #define ALLOC_MEM_FLAGS_MMIO_REMAP (1 << 4) 179 - 180 - /* 181 - * Allocation flags attributes/access options. 182 - * NOTE: This must match the corresponding definitions in kfd_ioctl.h. 183 - */ 184 - #define ALLOC_MEM_FLAGS_WRITABLE (1 << 31) 185 - #define ALLOC_MEM_FLAGS_EXECUTABLE (1 << 30) 186 - #define ALLOC_MEM_FLAGS_PUBLIC (1 << 29) 187 - #define ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28) /* TODO */ 188 - #define ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27) 189 - #define ALLOC_MEM_FLAGS_COHERENT (1 << 26) /* For GFXv9 or later */ 190 - 191 170 /** 192 171 * struct kfd2kgd_calls 193 172 *