• Joseph Greathouse's avatar
    drm/amdgpu: Default disable GDS for compute VMIDs · fbdc5d8d
    Joseph Greathouse authored
    The GDS and GWS blocks default to allowing all VMIDs to
    access all entries. Graphics VMIDs can handle setting
    these limits when the driver launches work. However,
    compute workloads under HWS control don't go through the
    kernel driver. Instead, HWS firmware should set these
    limits when a process is put into a VMID slot.
    
    Disable access to these devices by default by turning off
    all mask bits (for OA) and setting BASE=SIZE=0 (for GDS
    and GWS) for all compute VMIDs. If a process wants to use
    these resources, they can request this from the HWS
    firmware (when such capabilities are enabled). HWS will
    then handle setting the base and limit for the process when
    it is assigned to a VMID.
    
    This will also prevent user kernels from getting 'stuck' in
    GWS by accident if they write GWS-using code but HWS
    firmware is not set up to handle GWS reset. Until HWS is
    enabled to handle GWS properly, all GWS accesses will
    MEM_VIOL fault the kernel.
    
    v2: Move initialization outside of SRBM mutex
    Signed-off-by: default avatarJoseph Greathouse <Joseph.Greathouse@amd.com>
    Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    fbdc5d8d
gfx_v9_0.c 175 KB