drm/ttm: improve idle/busy handling v5
authorChristian König <christian.koenig@amd.com>
Wed, 6 Dec 2023 15:37:29 +0000 (16:37 +0100)
committerChristian König <christian.koenig@amd.com>
Fri, 1 Mar 2024 16:11:16 +0000 (17:11 +0100)
commitcc941c70df3927be89dfb875a9b3cec3ef5cf2c8
treeb9364dd99a76531b217e679e01b35531e86e7f63
parent6f6eebcf7f508c367bd77d7846d62b6e17147937
drm/ttm: improve idle/busy handling v5

Previously we would never try to move a BO into the preferred placements
when it ever landed in a busy placement since those were considered
compatible.

Rework the whole handling and finally unify the idle and busy handling.
ttm_bo_validate() is now responsible to try idle placement first and then
use the busy placement if that didn't worked.

Drawback is that we now always try the idle placement first for each
validation which might cause some additional CPU overhead on overcommit.

v2: fix kerneldoc warning and coding style
v3: take care of XE as well
v4: keep the ttm_bo_mem_space functionality as it is for now, only add
    new handling for ttm_bo_validate as suggested by Thomas
v5: fix bug pointed out by Matthew

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Zack Rusin <zack.rusin@broadcom.com> v3
Link: https://patchwork.freedesktop.org/patch/msgid/20240229134003.3688-1-christian.koenig@amd.com
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/ttm/ttm_bo.c
drivers/gpu/drm/ttm/ttm_resource.c
include/drm/ttm/ttm_resource.h