• Oak Zeng's avatar
    drm/xe: Introduce helper to populate userptr · 81e058a3
    Oak Zeng authored
    Introduce a helper function xe_userptr_populate_range to populate
    a userptr range. This functions calls hmm_range_fault to read
    CPU page tables and populate all pfns/pages of this virtual address
    range. For system memory page, dma-mapping is performed
    to get a dma-address which can be used later for GPU to access pages.
    
    v1: Address review comments:
        separate a npage_in_range function (Matt)
        reparameterize function xe_userptr_populate_range function (Matt)
        move mmu_interval_read_begin() call into while loop (Thomas)
        s/mark_range_accessed/xe_mark_range_accessed (Thomas)
        use set_page_dirty_lock (vs set_page_dirty) (Thomas)
        move a few checking in xe_vma_userptr_pin_pages to hmm.c (Matt)
    v2: Remove device private page support. Only support system
        pages for now. use dma-map-sg rather than dma-map-page (Matt/Thomas)
    v3: Address review comments:
        Squash patch "drm/xe: Introduce a helper to free sg table" to current
        patch (Matt)
        start and end addresses are already page aligned (Matt)
        Do mmap_read_lock and mmap_read_unlock for hmm_range_fault incase of
        non system allocator call. (Matt)
        Drop kthread_use_mm and kthread_unuse_mm. (Matt)
        No need of kernel-doc for static functions.(Matt)
        Modify function names. (Matt)
        Free sgtable incase of dma_map_sgtable failure.(Matt)
        Modify loop for hmm_range_fault.(Matt)
    v4: Remove the dummy function for xe_hmm_userptr_populate_range
        since CONFIG_HMM_MIRROR is needed. (Matt)
        Change variable names start/end to userptr_start/userptr_end.(Matt)
    v5: Remove device private page support info from commit message. Since
        the patch doesn't support device page handling. (Thomas)
    Signed-off-by: default avatarOak Zeng <oak.zeng@intel.com>
    Co-developed-by: default avatarNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
    Signed-off-by: default avatarNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
    Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
    Cc: Matthew Brost <matthew.brost@intel.com>
    Cc: Thomas Hellström <thomas.hellstrom@intel.com>
    Cc: Brian Welty <brian.welty@intel.com>
    Signed-off-by: default avatarHimal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
    Signed-off-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240412095237.1048599-2-himal.prasad.ghimiray@intel.com
    81e058a3
Kconfig 2.75 KB