• Badal Nilawar's avatar
    drm/xe/dgfx: Release mmap mappings on rpm suspend · fa78e188
    Badal Nilawar authored
    Release all mmap mappings for all vram objects which are associated
    with userfault such that, while pcie function in D3hot, any access
    to memory mappings will raise a userfault.
    
    Upon userfault, in order to access memory mappings, if graphics
    function is in D3 then runtime resume of dgpu will be triggered to
    transition to D0.
    
    v2:
      - Avoid iomem check before bo migration check as bo can migrate
        to system memory (Matthew Auld)
    v3:
      - Delete bo userfault link during bo destroy
      - Upon bo move (vram-smem), do bo userfault link deletion in
        xe_bo_move_notify instead of xe_bo_move (Thomas Hellström)
      - Grab lock in rpm hook while deleting bo userfault link (Matthew Auld)
    v4:
      - Add kernel doc and wrap vram_userfault related
        stuff in the structure (Matthew Auld)
      - Get rpm wakeref before taking dma reserve lock (Matthew Auld)
      - In suspend path apply lock for entire list op
        including list iteration (Matthew Auld)
    v5:
      - Use mutex lock instead of spin lock
    v6:
      - Fix review comments (Matthew Auld)
    
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Matthew Auld <matthew.auld@intel.com>
    Cc: Anshuman Gupta <anshuman.gupta@intel.com>
    Signed-off-by: default avatarBadal Nilawar <badal.nilawar@intel.com>
    Acked-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> #For the xe_bo_move_notify() changes
    Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
    Link: https://lore.kernel.org/r/20240104130702.950078-1-badal.nilawar@intel.comSigned-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    fa78e188
xe_pm.c 9.89 KB