• Arunpravin Paneer Selvam's avatar
    drm/amdgpu: Modify the contiguous flags behaviour · e362b7c8
    Arunpravin Paneer Selvam authored
    Now we have two flags for contiguous VRAM buffer allocation.
    If the application request for AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
    it would set the ttm place TTM_PL_FLAG_CONTIGUOUS flag in the
    buffer's placement function.
    
    This patch will change the default behaviour of the two flags.
    
    When we set AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS
    - This means contiguous is not mandatory.
    - we will try to allocate the contiguous buffer. Say if the
      allocation fails, we fallback to allocate the individual pages.
    
    When we setTTM_PL_FLAG_CONTIGUOUS
    - This means contiguous allocation is mandatory.
    - we are setting this in amdgpu_bo_pin_restricted() before bo validation
      and check this flag in the vram manager file.
    - if this is set, we should allocate the buffer pages contiguously.
      the allocation fails, we return -ENOSPC.
    
    v2:
      - keep the mem_flags and bo->flags check as is(Christian)
      - place the TTM_PL_FLAG_CONTIGUOUS flag setting into the
        amdgpu_bo_pin_restricted function placement range iteration
        loop(Christian)
      - rename find_pages with amdgpu_vram_mgr_calculate_pages_per_block
        (Christian)
      - Keep the kernel BO allocation as is(Christain)
      - If BO pin vram allocation failed, we need to return -ENOSPC as
        RDMA cannot work with scattered VRAM pages(Philip)
    
    v3(Christian):
      - keep contiguous flag handling outside of pages_per_block
        calculation
      - remove the hacky implementation in contiguous flag error
        handling code
    
    v4(Christian):
      - use any variable and return value for non-contiguous
        fallback
    
    v5: rebase to amd-staging-drm-next branch
    Signed-off-by: default avatarArunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
    Suggested-by: default avatarChristian König <christian.koenig@amd.com>
    Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    e362b7c8
amdgpu_object.c 42.7 KB