mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 01:04:19 +08:00
drm/ttm: replace context flags with bools v2
The ttm_operation_ctx structure has a mixture of flags and bools. Drop the flags and replace them with bools as well. v2: fix typos, improve comments Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/398686/
This commit is contained in:
parent
586052b0a6
commit
c44dfe4de0
@ -404,8 +404,7 @@ static int amdgpu_cs_bo_validate(struct amdgpu_cs_parser *p,
|
||||
struct ttm_operation_ctx ctx = {
|
||||
.interruptible = true,
|
||||
.no_wait_gpu = false,
|
||||
.resv = bo->tbo.base.resv,
|
||||
.flags = 0
|
||||
.resv = bo->tbo.base.resv
|
||||
};
|
||||
uint32_t domain;
|
||||
int r;
|
||||
|
@ -518,9 +518,8 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev,
|
||||
.no_wait_gpu = bp->no_wait_gpu,
|
||||
/* We opt to avoid OOM on system pages allocations */
|
||||
.gfp_retry_mayfail = true,
|
||||
.resv = bp->resv,
|
||||
.flags = bp->type != ttm_bo_type_kernel ?
|
||||
TTM_OPT_FLAG_ALLOW_RES_EVICT : 0
|
||||
.allow_res_evict = bp->type != ttm_bo_type_kernel,
|
||||
.resv = bp->resv
|
||||
};
|
||||
struct amdgpu_bo *bo;
|
||||
unsigned long page_align, size = bp->size;
|
||||
|
@ -637,7 +637,7 @@ static bool ttm_bo_evict_swapout_allowable(struct ttm_buffer_object *bo,
|
||||
|
||||
if (bo->base.resv == ctx->resv) {
|
||||
dma_resv_assert_held(bo->base.resv);
|
||||
if (ctx->flags & TTM_OPT_FLAG_ALLOW_RES_EVICT)
|
||||
if (ctx->allow_res_evict)
|
||||
ret = true;
|
||||
*locked = false;
|
||||
if (busy)
|
||||
|
@ -315,8 +315,7 @@ vm_fault_t ttm_bo_vm_fault_reserved(struct vm_fault *vmf,
|
||||
struct ttm_operation_ctx ctx = {
|
||||
.interruptible = false,
|
||||
.no_wait_gpu = false,
|
||||
.flags = TTM_OPT_FLAG_FORCE_ALLOC
|
||||
|
||||
.force_alloc = true
|
||||
};
|
||||
|
||||
ttm = bo->ttm;
|
||||
|
@ -542,7 +542,8 @@ ttm_check_under_lowerlimit(struct ttm_mem_global *glob,
|
||||
{
|
||||
int64_t available;
|
||||
|
||||
if (ctx->flags & TTM_OPT_FLAG_FORCE_ALLOC)
|
||||
/* We allow over commit during suspend */
|
||||
if (ctx->force_alloc)
|
||||
return false;
|
||||
|
||||
available = get_nr_swap_pages() + si_mem_available();
|
||||
|
@ -89,7 +89,7 @@ int ttm_resource_manager_evict_all(struct ttm_bo_device *bdev,
|
||||
struct ttm_operation_ctx ctx = {
|
||||
.interruptible = false,
|
||||
.no_wait_gpu = false,
|
||||
.flags = TTM_OPT_FLAG_FORCE_ALLOC
|
||||
.force_alloc = true
|
||||
};
|
||||
struct ttm_bo_global *glob = &ttm_bo_glob;
|
||||
struct dma_fence *fence;
|
||||
|
@ -196,8 +196,11 @@ struct ttm_bo_kmap_obj {
|
||||
* @interruptible: Sleep interruptible if sleeping.
|
||||
* @no_wait_gpu: Return immediately if the GPU is busy.
|
||||
* @gfp_retry_mayfail: Set the __GFP_RETRY_MAYFAIL when allocation pages.
|
||||
* @allow_res_evict: Allow eviction of reserved BOs. Can be used when multiple
|
||||
* BOs share the same reservation object.
|
||||
* @force_alloc: Don't check the memory account during suspend or CPU page
|
||||
* faults. Should only be used by TTM internally.
|
||||
* @resv: Reservation object to allow reserved evictions with.
|
||||
* @flags: Including the following flags
|
||||
*
|
||||
* Context for TTM operations like changing buffer placement or general memory
|
||||
* allocation.
|
||||
@ -206,16 +209,12 @@ struct ttm_operation_ctx {
|
||||
bool interruptible;
|
||||
bool no_wait_gpu;
|
||||
bool gfp_retry_mayfail;
|
||||
bool allow_res_evict;
|
||||
bool force_alloc;
|
||||
struct dma_resv *resv;
|
||||
uint64_t bytes_moved;
|
||||
uint32_t flags;
|
||||
};
|
||||
|
||||
/* Allow eviction of reserved BOs */
|
||||
#define TTM_OPT_FLAG_ALLOW_RES_EVICT 0x1
|
||||
/* when serving page fault or suspend, allow alloc anyway */
|
||||
#define TTM_OPT_FLAG_FORCE_ALLOC 0x2
|
||||
|
||||
/**
|
||||
* ttm_bo_get - reference a struct ttm_buffer_object
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user