• Oak Zeng's avatar
    drm/amdgpu: Set ttm caching flags during bo allocation · 8dbe43e9
    Oak Zeng authored
    The ttm caching flags (ttm_cached, ttm_write_combined etc) are
    used to determine a buffer object's mapping attributes in both
    CPU page table and GPU page table (when that buffer is also
    accessed by GPU). Currently the ttm caching flags are set in
    function amdgpu_ttm_io_mem_reserve which is called during
    DRM_AMDGPU_GEM_MMAP ioctl. This has a problem since the GPU
    mapping of the buffer object (ioctl DRM_AMDGPU_GEM_VA) can
    happen earlier than the mmap time, thus the GPU page table
    update code can't pick up the right ttm caching flags to
    decide the right GPU page table attributes.
    
    This patch moves the ttm caching flags setting to function
    amdgpu_vram_mgr_new - this function is called during the
    first step of a buffer object create (eg, DRM_AMDGPU_GEM_CREATE)
    so the later both CPU and GPU mapping function calls will
    pick up this flag for CPU/GPU page table set up.
    
    v2: rebase (Alex)
    Signed-off-by: default avatarOak Zeng <Oak.Zeng@amd.com>
    Suggested-by: default avatarChristian Koenig <Christian.Koenig@amd.com>
    Reviewed-by: default avatarChristian Koenig <Christian.Koenig@amd.com>
    Reviewed-by: default avatarFeifei Xu <Feifei.Xu@amd.com>
    Tested-by: default avatarPo Huang <Po.Huang@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    8dbe43e9
amdgpu_ttm.c 60.3 KB