@@ -196,7 +196,7 @@ int amdgpu_amdkfd_reserve_mem_limit(struct amdgpu_device *adev,
196196 return - EINVAL ;
197197
198198 vram_size = KFD_XCP_MEMORY_SIZE (adev , xcp_id );
199- if (adev -> gmc .is_app_apu ) {
199+ if (adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) {
200200 system_mem_needed = size ;
201201 ttm_mem_needed = size ;
202202 }
@@ -232,7 +232,8 @@ int amdgpu_amdkfd_reserve_mem_limit(struct amdgpu_device *adev,
232232 "adev reference can't be null when vram is used" );
233233 if (adev && xcp_id >= 0 ) {
234234 adev -> kfd .vram_used [xcp_id ] += vram_needed ;
235- adev -> kfd .vram_used_aligned [xcp_id ] += adev -> gmc .is_app_apu ?
235+ adev -> kfd .vram_used_aligned [xcp_id ] +=
236+ (adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) ?
236237 vram_needed :
237238 ALIGN (vram_needed , VRAM_AVAILABLITY_ALIGN );
238239 }
@@ -260,7 +261,7 @@ void amdgpu_amdkfd_unreserve_mem_limit(struct amdgpu_device *adev,
260261
261262 if (adev ) {
262263 adev -> kfd .vram_used [xcp_id ] -= size ;
263- if (adev -> gmc .is_app_apu ) {
264+ if (adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) {
264265 adev -> kfd .vram_used_aligned [xcp_id ] -= size ;
265266 kfd_mem_limit .system_mem_used -= size ;
266267 kfd_mem_limit .ttm_mem_used -= size ;
@@ -889,7 +890,7 @@ static int kfd_mem_attach(struct amdgpu_device *adev, struct kgd_mem *mem,
889890 * if peer device has large BAR. In contrast, access over xGMI is
890891 * allowed for both small and large BAR configurations of peer device
891892 */
892- if ((adev != bo_adev && !adev -> gmc .is_app_apu ) &&
893+ if ((adev != bo_adev && !( adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) ) &&
893894 ((mem -> domain == AMDGPU_GEM_DOMAIN_VRAM ) ||
894895 (mem -> alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL ) ||
895896 (mem -> alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_MMIO_REMAP ))) {
@@ -1188,7 +1189,8 @@ static int reserve_bo_and_cond_vms(struct kgd_mem *mem,
11881189 int ret ;
11891190
11901191 ctx -> sync = & mem -> sync ;
1191- drm_exec_init (& ctx -> exec , DRM_EXEC_INTERRUPTIBLE_WAIT , 0 );
1192+ drm_exec_init (& ctx -> exec , DRM_EXEC_INTERRUPTIBLE_WAIT |
1193+ DRM_EXEC_IGNORE_DUPLICATES , 0 );
11921194 drm_exec_until_all_locked (& ctx -> exec ) {
11931195 ctx -> n_vms = 0 ;
11941196 list_for_each_entry (entry , & mem -> attachments , list ) {
@@ -1656,7 +1658,7 @@ size_t amdgpu_amdkfd_get_available_memory(struct amdgpu_device *adev,
16561658 - atomic64_read (& adev -> vram_pin_size )
16571659 - reserved_for_pt ;
16581660
1659- if (adev -> gmc .is_app_apu ) {
1661+ if (adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) {
16601662 system_mem_available = no_system_mem_limit ?
16611663 kfd_mem_limit .max_system_mem_limit :
16621664 kfd_mem_limit .max_system_mem_limit -
@@ -1704,7 +1706,7 @@ int amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu(
17041706 if (flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM ) {
17051707 domain = alloc_domain = AMDGPU_GEM_DOMAIN_VRAM ;
17061708
1707- if (adev -> gmc .is_app_apu ) {
1709+ if (adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) {
17081710 domain = AMDGPU_GEM_DOMAIN_GTT ;
17091711 alloc_domain = AMDGPU_GEM_DOMAIN_GTT ;
17101712 alloc_flags = 0 ;
@@ -1951,7 +1953,7 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
19511953 if (size ) {
19521954 if (!is_imported &&
19531955 (mem -> bo -> preferred_domains == AMDGPU_GEM_DOMAIN_VRAM ||
1954- (adev -> gmc .is_app_apu &&
1956+ (( adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) &&
19551957 mem -> bo -> preferred_domains == AMDGPU_GEM_DOMAIN_GTT )))
19561958 * size = bo_size ;
19571959 else
@@ -2373,8 +2375,9 @@ static int import_obj_create(struct amdgpu_device *adev,
23732375 (* mem )-> dmabuf = dma_buf ;
23742376 (* mem )-> bo = bo ;
23752377 (* mem )-> va = va ;
2376- (* mem )-> domain = (bo -> preferred_domains & AMDGPU_GEM_DOMAIN_VRAM ) && !adev -> gmc .is_app_apu ?
2377- AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT ;
2378+ (* mem )-> domain = (bo -> preferred_domains & AMDGPU_GEM_DOMAIN_VRAM ) &&
2379+ !(adev -> gmc .is_app_apu || adev -> flags & AMD_IS_APU ) ?
2380+ AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT ;
23782381
23792382 (* mem )-> mapped_to_gpu_memory = 0 ;
23802383 (* mem )-> process_info = avm -> process_info ;
0 commit comments