• Jonathan Kim's avatar
    drm/amdkfd: apply trap workaround for gfx11 · 69a8c3ae
    Jonathan Kim authored
    Due to a HW bug, waves in only half the shader arrays can enter trap.
    
    When starting a debug session, relocate all waves to the first shader
    array of each shader engine and mask off the 2nd shader array as
    unavailable.
    
    When ending a debug session, re-enable the 2nd shader array per
    shader engine.
    
    User CU masking per queue cannot be guaranteed to remain functional
    if requested during debugging (e.g. user cu mask requests only 2nd shader
    array as an available resource leading to zero HW resources available)
    nor can runtime be alerted of any of these changes during execution.
    
    Make user CU masking and debugging mutual exclusive with respect to
    availability.
    
    If the debugger tries to attach to a process with a user cu masked
    queue, return the runtime status as enabled but busy.
    
    If the debugger tries to attach and fails to reallocate queue waves to
    the first shader array of each shader engine, return the runtime status
    as enabled but with an error.
    
    In addition, like any other mutli-process debug supported devices,
    disable trap temporary setup per-process to avoid performance impact from
    setup overhead.
    Signed-off-by: default avatarJonathan Kim <jonathan.kim@amd.com>
    Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    69a8c3ae
kfd_mqd_manager_vi.c 15.5 KB