• Matthew Auld's avatar
    drm/i915/gtt: map the PD up front · 529b9ec8
    Matthew Auld authored
    We need to generalise our accessor for the page directories and tables from
    using the simple kmap_atomic to support local memory, and this setup
    must be done on acquisition of the backing storage prior to entering
    fence execution contexts. Here we replace the kmap with the object
    mapping code that for simple single page shmemfs object will return a
    plain kmap, that is then kept for the lifetime of the page directory.
    
    Note that keeping the mapping around is a potential concern here, since
    while the vma is pinned the mapping remains there for the PDs
    underneath, or at least until the used_count reaches zero, at which
    point we can safely destroy the mapping. For 32b this will be even worse
    since the address space is more limited, but since this change mostly
    impacts full ppGTT platforms, the justification is that for modern
    platforms we shouldn't care too much about 32b.
    Signed-off-by: default avatarMatthew Auld <matthew.auld@intel.com>
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210427085417.120246-3-matthew.auld@intel.com
    529b9ec8
intel_ggtt.c 38.5 KB