• Ben Skeggs's avatar
    drm/nouveau/mmu: implement new vmm frontend · f9463a4b
    Ben Skeggs authored
    These are the new priviledged interfaces to the VMM backends, and expose
    some functionality that wasn't previously available.
    
    It's now possible to allocate a chunk of address-space (even all of it),
    without causing page tables to be allocated up-front, and then map into
    it at arbitrary locations.  This is the basic primitive used to support
    features such as sparse mapping, or to allow userspace control over its
    own address-space, or HMM (where the GPU driver isn't in control of the
    address-space layout).
    
    Rather than being tied to a subtle combination of memory object and VMA
    properties, arguments that control map flags (ro, kind, etc) are passed
    explicitly at map time.
    
    The compatibility hacks to implement the old frontend on top of the new
    driver backends have been replaced with something similar to implement
    the old frontend's interfaces on top of the new frontend.
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    f9463a4b
vmm.c 38.9 KB