Francisco Jerez
2010-Mar-06 14:04 UTC
[Nouveau] [PATCH] drm/nouveau: Never evict VRAM buffers to system.
VRAM->system is a synchronous operation: it involves scheduling a VRAM->TT DMA transfer and stalling the CPU until it's finished so that we can unbind the new memory from the translation tables. VRAM->TT can always be performed asynchronously, even if TT is already full and we have to move something out of it. Additionally, allowing VRAM->system behaves badly under heavy memory pressure because once we run out of TT, stuff starts to be moved back and forth between VRAM and system, and the TT contents are hardly renewed. Signed-off-by: Francisco Jerez <currojerez at riseup.net> --- drivers/gpu/drm/nouveau/nouveau_bo.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 028719f..0266124 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -439,8 +439,7 @@ nouveau_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl) switch (bo->mem.mem_type) { case TTM_PL_VRAM: - nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_TT | - TTM_PL_FLAG_SYSTEM); + nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_TT); break; default: nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_SYSTEM); -- 1.6.4.4
Reasonably Related Threads
- [PATCH] drm/nouveau: Make use of TTM busy_placements.
- [PATCH 04/10] drm/virtio: move virtio_gpu_object_{attach, detach} calls.
- [PATCH v3 1/5] drm/virtio: move virtio_gpu_object_{attach, detach} calls.
- [PATCH] drm/nouveau: Evict buffers in VRAM before freeing sgdma
- [PATCH 6/7] drm/nouveau: more paranoia in nouveau_bo_fixup_align