mirror of
https://github.com/torvalds/linux.git
synced 2025-11-05 11:10:22 +02:00
Currently drivers get called to move a buffer, but if they have to move it temporarily through another space (SYSTEM->VRAM via TT) then they can end up with a lot of ttm->driver->ttm call stacks, if the temprorary space moves requires eviction. Instead of letting the driver do all the placement/space for the temporary, allow it to report back (-EMULTIHOP) and a placement (hop) to the move code, which will then do the temporary move, and the correct placement move afterwards. This removes a lot of code from drivers, at the expense of adding some midlayering. I've some further ideas on how to turn it inside out, but I think this is a good solution to the call stack problems. v2: separate out the driver patches, add WARN for getting MULTHOP in paths we shouldn't (Daniel) v3: use memset (Christian) Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: hristian König <christian.koenig@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20201109005432.861936-2-airlied@gmail.com |
||
|---|---|---|
| .. | ||
| device_include | ||
| Kconfig | ||
| Makefile | ||
| ttm_lock.c | ||
| ttm_lock.h | ||
| ttm_object.c | ||
| ttm_object.h | ||
| vmwgfx_binding.c | ||
| vmwgfx_binding.h | ||
| vmwgfx_blit.c | ||
| vmwgfx_bo.c | ||
| vmwgfx_cmdbuf.c | ||
| vmwgfx_cmdbuf_res.c | ||
| vmwgfx_context.c | ||
| vmwgfx_cotable.c | ||
| vmwgfx_drv.c | ||
| vmwgfx_drv.h | ||
| vmwgfx_execbuf.c | ||
| vmwgfx_fb.c | ||
| vmwgfx_fence.c | ||
| vmwgfx_fence.h | ||
| vmwgfx_fifo.c | ||
| vmwgfx_gmr.c | ||
| vmwgfx_gmrid_manager.c | ||
| vmwgfx_ioctl.c | ||
| vmwgfx_irq.c | ||
| vmwgfx_kms.c | ||
| vmwgfx_kms.h | ||
| vmwgfx_ldu.c | ||
| vmwgfx_marker.c | ||
| vmwgfx_mob.c | ||
| vmwgfx_msg.c | ||
| vmwgfx_msg.h | ||
| vmwgfx_overlay.c | ||
| vmwgfx_page_dirty.c | ||
| vmwgfx_prime.c | ||
| vmwgfx_reg.h | ||
| vmwgfx_resource.c | ||
| vmwgfx_resource_priv.h | ||
| vmwgfx_scrn.c | ||
| vmwgfx_shader.c | ||
| vmwgfx_simple_resource.c | ||
| vmwgfx_so.c | ||
| vmwgfx_so.h | ||
| vmwgfx_stdu.c | ||
| vmwgfx_streamoutput.c | ||
| vmwgfx_surface.c | ||
| vmwgfx_thp.c | ||
| vmwgfx_ttm_buffer.c | ||
| vmwgfx_ttm_glue.c | ||
| vmwgfx_va.c | ||
| vmwgfx_validation.c | ||
| vmwgfx_validation.h | ||