• Konrad Rzeszutek Wilk's avatar
    drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and... · 2c05114d
    Konrad Rzeszutek Wilk authored
    drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and don't try to free freed pages.
    
    The code to figure out how many pages to shrink the pool
    ends up capping the 'count' at _manager->options.max_size - which is OK.
    Except that the 'count' is also used when accounting for how many pages
    are recycled - which we end up with the invalid values. This fixes
    it by using a different value for the amount of pages to shrink.
    
    On top of that we would free the cached page pool - which is nonsense
    as they are deleted from the pool - so there are no free pages in that
    pool..
    
    Also we also missed the opportunity to batch the amount of pages
    to free (similar to how ttm_page_alloc.c does it). This reintroduces
    the code that was lost during rebasing.
    Reviewed-by: default avatarJerome Glisse <jglisse@redhat.com>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    2c05114d
ttm_page_alloc_dma.c 29.8 KB