• A
    drm/amdkfd: classify and map mixed svm range pages in GPU · 1d5dbfe6
    Alex Sierra 提交于
    [Why]
    svm ranges can have mixed pages from device or system memory.
    A good example is, after a prange has been allocated in VRAM and a
    copy-on-write is triggered by a fork. This invalidates some pages
    inside the prange. Endding up in mixed pages.
    
    [How]
    By classifying each page inside a prange, based on its type. Device or
    system memory, during dma mapping call. If page corresponds
    to VRAM domain, a flag is set to its dma_addr entry for each GPU.
    Then, at the GPU page table mapping. All group of contiguous pages within
    the same type are mapped with their proper pte flags.
    
    v2:
    Instead of using ttm_res to calculate vram pfns in the svm_range. It is now
    done by setting the vram real physical address into drm_addr array.
    This makes more flexible VRAM management, plus removes the need to have
    a BO reference in the svm_range.
    
    v3:
    Remove mapping member from svm_range
    Signed-off-by: NAlex Sierra <alex.sierra@amd.com>
    Reviewed-by: NFelix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
    1d5dbfe6
kfd_svm.h 7.8 KB