• Sean Keely's avatar
    drm/amdkfd: Account for SH/SE count when setting up cu masks. · 1ec06c2d
    Sean Keely authored
    On systems with multiple SH per SE compute_static_thread_mgmt_se#
    is split into independent masks, one for each SH, in the upper and
    lower 16 bits.  We need to detect this and apply cu masking to each
    SH.  The cu mask bits are assigned first to each SE, then to
    alternate SHs, then finally to higher CU id.  This ensures that
    the maximum number of SPIs are engaged as early as possible while
    balancing CU assignment to each SH.
    
    v2: Use max SH/SE rather than max SH in cu_per_sh.
    
    v3: Fix comment blocks, ensure se_mask is initially zero filled,
        and correctly assign se.sh.cu positions to unset bits in cu_mask.
    Signed-off-by: default avatarSean Keely <Sean.Keely@amd.com>
    Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    1ec06c2d
kfd_mqd_manager.h 4.35 KB