• B
    drm/i915: Create VMAs · 2f633156
    Ben Widawsky 提交于
    Formerly: "drm/i915: Create VMAs (part 1)"
    
    In a previous patch, the notion of a VM was introduced. A VMA describes
    an area of part of the VM address space. A VMA is similar to the concept
    in the linux mm. However, instead of representing regular memory, a VMA
    is backed by a GEM BO. There may be many VMAs for a given object, one
    for each VM the object is to be used in. This may occur through flink,
    dma-buf, or a number of other transient states.
    
    Currently the code depends on only 1 VMA per object, for the global GTT
    (and aliasing PPGTT). The following patches will address this and make
    the rest of the infrastructure more suited
    
    v2: s/i915_obj/i915_gem_obj (Chris)
    
    v3: Only move an object to the now global unbound list if there are no
    more VMAs for the object which are bound into a VM (ie. the list is
    empty).
    
    v4: killed obj->gtt_space
    some reworks due to rebase
    
    v5: Free vma on error path (Imre)
    
    v6: Another missed vma free in i915_gem_object_bind_to_gtt error path
    (Imre)
    Fixed vma freeing in stolen preallocation (Imre)
    Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
    Reviewed-by: NImre Deak <imre.deak@intel.com>
    [danvet: Squash in fixup from Ben to not deref a non-existing vma in
    set_cache_level, reported by Chris.]
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    2f633156
i915_drv.h 66.3 KB