• Xiaogang Chen's avatar
    drm/amdkfd: Change kfd/svm page fault drain handling · 6ef29715
    Xiaogang Chen authored
    When app unmap vm ranges(munmap) kfd/svm starts drain pending page fault and
    not handle any incoming pages fault of this process until a deferred work item
    got executed by default system wq. The time period of "not handle page fault"
    can be long and is unpredicable. That is advese to kfd performance on page
    faults recovery.
    
    This patch uses time stamp of incoming page fault to decide to drop or recover
    page fault. When app unmap vm ranges kfd records each gpu device's ih ring
    current time stamp. These time stamps are used at kfd page fault recovery
    routine.
    
    Any page fault happened on unmapped ranges after unmap events is application
    bug that accesses vm range after unmap. It is not driver work to cover that.
    
    By using time stamp of page fault do not need drain page faults at deferred
    work. So, the time period that kfd does not handle page faults is reduced
    and can be controlled.
    Signed-off-by: default avatarXiaogang.Chen <Xiaogang.Chen@amd.com>
    Reviewed-by: default avatarPhilip Yang <Philip.Yang@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    6ef29715
kfd_priv.h 46.7 KB