From: Jason Ekstrand <jason@jlekstrand.net> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>, "Matthew Auld" <matthew.auld@intel.com>, "Jason Ekstrand" <jason@jlekstrand.net> Subject: [PATCH 4/7] drm/i915/gem/ttm: Place new BOs in the requested region Date: Thu, 15 Jul 2021 17:38:57 -0500 [thread overview] Message-ID: <20210715223900.1840576-5-jason@jlekstrand.net> (raw) In-Reply-To: <20210715223900.1840576-1-jason@jlekstrand.net> __i915_gem_ttm_object_init() was ignoring the placement requests coming from the client and always placing all BOs in SMEM upon creation. Instead, compute the requested placement set from the object and pass that into ttm_bo_init_reserved(). Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Matthew Auld <matthew.auld@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c index 6589411396d3f..d30f274c329c7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -898,6 +898,8 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, { static struct lock_class_key lock_class; struct drm_i915_private *i915 = mem->i915; + struct ttm_place requested, busy[I915_TTM_MAX_PLACEMENTS]; + struct ttm_placement placement; struct ttm_operation_ctx ctx = { .interruptible = true, .no_wait_gpu = false, @@ -919,6 +921,9 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, /* Forcing the page size is kernel internal only */ GEM_BUG_ON(page_size && obj->mm.n_placements); + GEM_BUG_ON(obj->mm.n_placements > I915_TTM_MAX_PLACEMENTS); + i915_ttm_placement_from_obj(obj, &requested, busy, &placement); + /* * If this function fails, it will call the destructor, but * our caller still owns the object. So no freeing in the @@ -927,8 +932,7 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, * until successful initialization. */ ret = ttm_bo_init_reserved(&i915->bdev, i915_gem_to_ttm(obj), size, - bo_type, &i915_sys_placement, - page_size >> PAGE_SHIFT, + bo_type, &placement, page_size >> PAGE_SHIFT, &ctx, NULL, NULL, i915_ttm_bo_destroy); if (ret) return i915_ttm_err_to_gem(ret); -- 2.31.1
WARNING: multiple messages have this Message-ID (diff)
From: Jason Ekstrand <jason@jlekstrand.net> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>, "Matthew Auld" <matthew.auld@intel.com> Subject: [Intel-gfx] [PATCH 4/7] drm/i915/gem/ttm: Place new BOs in the requested region Date: Thu, 15 Jul 2021 17:38:57 -0500 [thread overview] Message-ID: <20210715223900.1840576-5-jason@jlekstrand.net> (raw) In-Reply-To: <20210715223900.1840576-1-jason@jlekstrand.net> __i915_gem_ttm_object_init() was ignoring the placement requests coming from the client and always placing all BOs in SMEM upon creation. Instead, compute the requested placement set from the object and pass that into ttm_bo_init_reserved(). Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Matthew Auld <matthew.auld@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c index 6589411396d3f..d30f274c329c7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -898,6 +898,8 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, { static struct lock_class_key lock_class; struct drm_i915_private *i915 = mem->i915; + struct ttm_place requested, busy[I915_TTM_MAX_PLACEMENTS]; + struct ttm_placement placement; struct ttm_operation_ctx ctx = { .interruptible = true, .no_wait_gpu = false, @@ -919,6 +921,9 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, /* Forcing the page size is kernel internal only */ GEM_BUG_ON(page_size && obj->mm.n_placements); + GEM_BUG_ON(obj->mm.n_placements > I915_TTM_MAX_PLACEMENTS); + i915_ttm_placement_from_obj(obj, &requested, busy, &placement); + /* * If this function fails, it will call the destructor, but * our caller still owns the object. So no freeing in the @@ -927,8 +932,7 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, * until successful initialization. */ ret = ttm_bo_init_reserved(&i915->bdev, i915_gem_to_ttm(obj), size, - bo_type, &i915_sys_placement, - page_size >> PAGE_SHIFT, + bo_type, &placement, page_size >> PAGE_SHIFT, &ctx, NULL, NULL, i915_ttm_bo_destroy); if (ret) return i915_ttm_err_to_gem(ret); -- 2.31.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2021-07-15 22:39 UTC|newest] Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-15 22:38 [PATCH 0/7] drm/i915: Migrate memory to SMEM when imported cross-device Jason Ekstrand 2021-07-15 22:38 ` [Intel-gfx] " Jason Ekstrand 2021-07-15 22:38 ` [PATCH 1/7] drm/i915/gem: Check object_can_migrate from object_migrate Jason Ekstrand 2021-07-15 22:38 ` [Intel-gfx] " Jason Ekstrand 2021-07-15 22:38 ` [PATCH 2/7] drm/i915/gem: Refactor placement setup for i915_gem_object_create* Jason Ekstrand 2021-07-15 22:38 ` [Intel-gfx] " Jason Ekstrand 2021-07-16 11:12 ` Matthew Auld 2021-07-16 11:12 ` Matthew Auld 2021-07-16 13:52 ` Jason Ekstrand 2021-07-16 13:52 ` Jason Ekstrand 2021-07-15 22:38 ` [PATCH 3/7] drm/i915/gem: Unify user object creation Jason Ekstrand 2021-07-15 22:38 ` [Intel-gfx] " Jason Ekstrand 2021-07-16 11:20 ` Matthew Auld 2021-07-16 11:20 ` [Intel-gfx] " Matthew Auld 2021-07-16 14:02 ` Jason Ekstrand 2021-07-16 14:02 ` [Intel-gfx] " Jason Ekstrand 2021-07-20 9:34 ` Matthew Auld 2021-07-20 9:34 ` [Intel-gfx] " Matthew Auld 2021-07-20 22:04 ` Jason Ekstrand 2021-07-20 22:04 ` [Intel-gfx] " Jason Ekstrand 2021-07-21 8:24 ` Matthew Auld 2021-07-21 8:24 ` [Intel-gfx] " Matthew Auld 2021-07-21 15:47 ` Jason Ekstrand 2021-07-21 15:47 ` [Intel-gfx] " Jason Ekstrand 2021-07-21 16:29 ` Matthew Auld 2021-07-21 16:29 ` [Intel-gfx] " Matthew Auld 2021-07-15 22:38 ` Jason Ekstrand [this message] 2021-07-15 22:38 ` [Intel-gfx] [PATCH 4/7] drm/i915/gem/ttm: Place new BOs in the requested region Jason Ekstrand 2021-07-16 13:17 ` Matthew Auld 2021-07-16 13:17 ` [Intel-gfx] " Matthew Auld 2021-07-16 13:46 ` Jason Ekstrand 2021-07-16 13:46 ` [Intel-gfx] " Jason Ekstrand 2021-08-04 6:49 ` Thomas Hellström 2021-08-04 6:49 ` [Intel-gfx] " Thomas Hellström 2021-08-04 6:52 ` Thomas Hellström 2021-08-04 6:52 ` [Intel-gfx] " Thomas Hellström 2021-07-15 22:38 ` [PATCH 5/7] drm/i915/gem/ttm: Respect the objection region in placement_from_obj Jason Ekstrand 2021-07-15 22:38 ` [Intel-gfx] " Jason Ekstrand 2021-07-16 13:54 ` Matthew Auld 2021-07-16 13:54 ` [Intel-gfx] " Matthew Auld 2021-07-16 14:10 ` Jason Ekstrand 2021-07-16 14:10 ` [Intel-gfx] " Jason Ekstrand 2021-07-16 15:52 ` Matthew Auld 2021-07-16 15:52 ` [Intel-gfx] " Matthew Auld 2021-07-16 16:00 ` Matthew Auld 2021-07-16 16:00 ` [Intel-gfx] " Matthew Auld 2021-07-16 17:38 ` Jason Ekstrand 2021-07-16 17:38 ` [Intel-gfx] " Jason Ekstrand 2021-07-16 18:44 ` Matthew Auld 2021-07-16 18:44 ` [Intel-gfx] " Matthew Auld 2021-07-16 19:49 ` Jason Ekstrand 2021-07-16 19:49 ` [Intel-gfx] " Jason Ekstrand 2021-07-19 13:34 ` Matthew Auld 2021-07-19 13:34 ` [Intel-gfx] " Matthew Auld 2021-07-21 20:11 ` Jason Ekstrand 2021-07-21 20:11 ` [Intel-gfx] " Jason Ekstrand 2021-07-21 20:32 ` Daniel Vetter 2021-07-21 20:32 ` Daniel Vetter 2021-07-22 9:49 ` Matthew Auld 2021-07-22 9:49 ` [Intel-gfx] " Matthew Auld 2021-07-22 9:59 ` Matthew Auld 2021-07-22 9:59 ` [Intel-gfx] " Matthew Auld 2021-08-04 8:00 ` Thomas Hellström 2021-08-04 8:00 ` [Intel-gfx] " Thomas Hellström 2021-08-04 14:35 ` Daniel Vetter 2021-08-04 14:35 ` [Intel-gfx] " Daniel Vetter 2021-07-15 22:38 ` [PATCH 6/7] drm/i915/gem: Correct the locking and pin pattern for dma-buf (v6) Jason Ekstrand 2021-07-15 22:38 ` [Intel-gfx] " Jason Ekstrand 2021-07-15 22:39 ` [PATCH 7/7] drm/i915/gem: Migrate to system at dma-buf attach time (v6) Jason Ekstrand 2021-07-15 22:39 ` [Intel-gfx] " Jason Ekstrand
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=20210715223900.1840576-5-jason@jlekstrand.net \ --to=jason@jlekstrand.net \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=matthew.auld@intel.com \ --cc=thomas.hellstrom@linux.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.