From: "Thomas Hellström" <thomas.hellstrom@linux.intel.com> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>, matthew.auld@intel.com Subject: [PATCH v2 0/6] drm/i915/ttm: Async migration Date: Thu, 11 Nov 2021 13:49:57 +0100 [thread overview] Message-ID: <20211111125003.178247-1-thomas.hellstrom@linux.intel.com> (raw) This patch series deals with async migration and async vram management. It still leaves an important part out, which is async unbinding which will reduce latency further, at least when trying to migrate already active objects. Patches 1/6 and 2/6 deal with accessing and waiting for the TTM moving fence from i915 GEM. Patch 3 is pure code reorganization, no functional change. Patch 4 breaks a refcounting loop involving the TTM moving fence. Patch 5 uses TTM to implement the ttm move() callback async, it also introduces a utility to collect dependencies and turn them into a single dma_fence, which is needed for the intel_migrate code. This also affects the gem object migrate code so. Patch 6 makes the object copy utility async as well, mainly for future users since the only current user, suspend backup and restore, typically will want to sync anyway. v2: - Fix a couple of SPARSE warnings. Maarten Lankhorst (2): drm/i915: Add functions to set/get moving fence drm/i915: Add support for asynchronous moving fence waiting Thomas Hellström (4): drm/i915/ttm: Move the i915_gem_obj_copy_ttm() function drm/i915/ttm: Break refcounting loops at device region unref time drm/i915/ttm: Implement asynchronous TTM moves drm/i915/ttm: Update i915_gem_obj_copy_ttm() to be asynchronous drivers/gpu/drm/i915/display/intel_fbdev.c | 7 +- drivers/gpu/drm/i915/display/intel_overlay.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_object.c | 37 ++ drivers/gpu/drm/i915/gem/i915_gem_object.h | 9 + drivers/gpu/drm/i915/gem/i915_gem_pages.c | 6 + drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 58 +-- drivers/gpu/drm/i915/gem/i915_gem_ttm.h | 6 +- drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 396 ++++++++++++++++-- drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h | 10 +- drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 3 + drivers/gpu/drm/i915/gem/i915_gem_wait.c | 4 +- .../i915/gem/selftests/i915_gem_coherency.c | 4 +- .../drm/i915/gem/selftests/i915_gem_mman.c | 22 +- drivers/gpu/drm/i915/gt/intel_region_lmem.c | 1 + drivers/gpu/drm/i915/i915_vma.c | 39 +- drivers/gpu/drm/i915/i915_vma.h | 3 + drivers/gpu/drm/i915/intel_memory_region.c | 5 +- drivers/gpu/drm/i915/intel_memory_region.h | 1 + drivers/gpu/drm/i915/intel_region_ttm.c | 28 ++ drivers/gpu/drm/i915/intel_region_ttm.h | 2 + drivers/gpu/drm/i915/selftests/i915_vma.c | 4 +- 21 files changed, 538 insertions(+), 109 deletions(-) -- 2.31.1
WARNING: multiple messages have this Message-ID (diff)
From: "Thomas Hellström" <thomas.hellstrom@linux.intel.com> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>, matthew.auld@intel.com Subject: [Intel-gfx] [PATCH v2 0/6] drm/i915/ttm: Async migration Date: Thu, 11 Nov 2021 13:49:57 +0100 [thread overview] Message-ID: <20211111125003.178247-1-thomas.hellstrom@linux.intel.com> (raw) This patch series deals with async migration and async vram management. It still leaves an important part out, which is async unbinding which will reduce latency further, at least when trying to migrate already active objects. Patches 1/6 and 2/6 deal with accessing and waiting for the TTM moving fence from i915 GEM. Patch 3 is pure code reorganization, no functional change. Patch 4 breaks a refcounting loop involving the TTM moving fence. Patch 5 uses TTM to implement the ttm move() callback async, it also introduces a utility to collect dependencies and turn them into a single dma_fence, which is needed for the intel_migrate code. This also affects the gem object migrate code so. Patch 6 makes the object copy utility async as well, mainly for future users since the only current user, suspend backup and restore, typically will want to sync anyway. v2: - Fix a couple of SPARSE warnings. Maarten Lankhorst (2): drm/i915: Add functions to set/get moving fence drm/i915: Add support for asynchronous moving fence waiting Thomas Hellström (4): drm/i915/ttm: Move the i915_gem_obj_copy_ttm() function drm/i915/ttm: Break refcounting loops at device region unref time drm/i915/ttm: Implement asynchronous TTM moves drm/i915/ttm: Update i915_gem_obj_copy_ttm() to be asynchronous drivers/gpu/drm/i915/display/intel_fbdev.c | 7 +- drivers/gpu/drm/i915/display/intel_overlay.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_object.c | 37 ++ drivers/gpu/drm/i915/gem/i915_gem_object.h | 9 + drivers/gpu/drm/i915/gem/i915_gem_pages.c | 6 + drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 58 +-- drivers/gpu/drm/i915/gem/i915_gem_ttm.h | 6 +- drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 396 ++++++++++++++++-- drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h | 10 +- drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 3 + drivers/gpu/drm/i915/gem/i915_gem_wait.c | 4 +- .../i915/gem/selftests/i915_gem_coherency.c | 4 +- .../drm/i915/gem/selftests/i915_gem_mman.c | 22 +- drivers/gpu/drm/i915/gt/intel_region_lmem.c | 1 + drivers/gpu/drm/i915/i915_vma.c | 39 +- drivers/gpu/drm/i915/i915_vma.h | 3 + drivers/gpu/drm/i915/intel_memory_region.c | 5 +- drivers/gpu/drm/i915/intel_memory_region.h | 1 + drivers/gpu/drm/i915/intel_region_ttm.c | 28 ++ drivers/gpu/drm/i915/intel_region_ttm.h | 2 + drivers/gpu/drm/i915/selftests/i915_vma.c | 4 +- 21 files changed, 538 insertions(+), 109 deletions(-) -- 2.31.1
next reply other threads:[~2021-11-11 12:50 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-11-11 12:49 Thomas Hellström [this message] 2021-11-11 12:49 ` [Intel-gfx] [PATCH v2 0/6] drm/i915/ttm: Async migration Thomas Hellström 2021-11-11 12:49 ` [PATCH v2 1/6] drm/i915: Add functions to set/get moving fence Thomas Hellström 2021-11-11 12:49 ` [Intel-gfx] " Thomas Hellström 2021-11-11 12:49 ` [PATCH v2 2/6] drm/i915: Add support for asynchronous moving fence waiting Thomas Hellström 2021-11-11 12:49 ` [Intel-gfx] " Thomas Hellström 2021-11-11 12:50 ` [PATCH v2 3/6] drm/i915/ttm: Move the i915_gem_obj_copy_ttm() function Thomas Hellström 2021-11-11 12:50 ` [Intel-gfx] " Thomas Hellström 2021-11-11 12:50 ` [PATCH v2 4/6] drm/i915/ttm: Break refcounting loops at device region unref time Thomas Hellström 2021-11-11 12:50 ` [Intel-gfx] " Thomas Hellström 2021-11-11 12:50 ` [PATCH v2 5/6] drm/i915/ttm: Implement asynchronous TTM moves Thomas Hellström 2021-11-11 12:50 ` [Intel-gfx] " Thomas Hellström 2021-11-11 12:50 ` [PATCH v2 6/6] drm/i915/ttm: Update i915_gem_obj_copy_ttm() to be asynchronous Thomas Hellström 2021-11-11 12:50 ` [Intel-gfx] " Thomas Hellström 2021-11-11 13:21 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/ttm: Async migration (rev2) Patchwork 2021-11-11 13:51 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 2021-11-12 12:14 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/ttm: Async migration (rev3) Patchwork 2021-11-12 12:18 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork 2021-11-12 12:44 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20211111125003.178247-1-thomas.hellstrom@linux.intel.com \ --to=thomas.hellstrom@linux.intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=matthew.auld@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.