From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> To: Matthew Auld <matthew.auld@intel.com>, intel-gfx@lists.freedesktop.org Cc: CQ Tang <cq.tang@intel.com>, dri-devel@lists.freedesktop.org Subject: Re: [PATCH 4/5] drm/i915/stolen: pass the allocation flags Date: Tue, 20 Apr 2021 17:14:41 +0100 [thread overview] Message-ID: <8559c955-3882-aec4-f87c-afbe82052e5b@linux.intel.com> (raw) In-Reply-To: <20210420131842.164163-4-matthew.auld@intel.com> On 20/04/2021 14:18, Matthew Auld wrote: > From: CQ Tang <cq.tang@intel.com> > > Stolen memory is always allocated as physically contiguous pages, mark > the object flags as such. > > v2: move setting I915_BO_ALLOC_CONTIGUOUS into create_stolen > > Signed-off-by: CQ Tang <cq.tang@intel.com> > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > --- > drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > index 4f9fe5aca37e..46f79b240df7 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > @@ -633,14 +633,21 @@ static const struct drm_i915_gem_object_ops i915_gem_object_stolen_ops = { > > static int __i915_gem_object_create_stolen(struct intel_memory_region *mem, > struct drm_i915_gem_object *obj, > - struct drm_mm_node *stolen) > + struct drm_mm_node *stolen, > + unsigned int flags) > { > static struct lock_class_key lock_class; > unsigned int cache_level; > int err; > > + /* > + * Stolen objects are always physically contiguous since we just > + * allocate one big block underneath using the drm_mm range allocator. > + */ > + flags |= I915_BO_ALLOC_CONTIGUOUS; > + > drm_gem_private_object_init(&mem->i915->drm, &obj->base, stolen->size); > - i915_gem_object_init(obj, &i915_gem_object_stolen_ops, &lock_class, 0); > + i915_gem_object_init(obj, &i915_gem_object_stolen_ops, &lock_class, flags); > > obj->stolen = stolen; > obj->read_domains = I915_GEM_DOMAIN_CPU | I915_GEM_DOMAIN_GTT; > @@ -682,7 +689,7 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem, > if (ret) > goto err_free; > > - ret = __i915_gem_object_create_stolen(mem, obj, stolen); > + ret = __i915_gem_object_create_stolen(mem, obj, stolen, flags); Hm odd that previously the flags were ignored in here. I guess no callers were passing any when creating stolen objects. If none are supported should we add a GEM_BUG_ON to check for that? Regards, Tvrtko > if (ret) > goto err_remove; > > @@ -700,7 +707,7 @@ i915_gem_object_create_stolen(struct drm_i915_private *i915, > resource_size_t size) > { > return i915_gem_object_create_region(i915->mm.stolen_region, > - size, I915_BO_ALLOC_CONTIGUOUS); > + size, 0); > } > > static int init_stolen_smem(struct intel_memory_region *mem) > @@ -866,7 +873,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915, > goto err_stolen; > } > > - ret = __i915_gem_object_create_stolen(mem, obj, stolen); > + ret = __i915_gem_object_create_stolen(mem, obj, stolen, 0); > if (ret) > goto err_object_free; > > _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> To: Matthew Auld <matthew.auld@intel.com>, intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH 4/5] drm/i915/stolen: pass the allocation flags Date: Tue, 20 Apr 2021 17:14:41 +0100 [thread overview] Message-ID: <8559c955-3882-aec4-f87c-afbe82052e5b@linux.intel.com> (raw) In-Reply-To: <20210420131842.164163-4-matthew.auld@intel.com> On 20/04/2021 14:18, Matthew Auld wrote: > From: CQ Tang <cq.tang@intel.com> > > Stolen memory is always allocated as physically contiguous pages, mark > the object flags as such. > > v2: move setting I915_BO_ALLOC_CONTIGUOUS into create_stolen > > Signed-off-by: CQ Tang <cq.tang@intel.com> > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > --- > drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > index 4f9fe5aca37e..46f79b240df7 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c > @@ -633,14 +633,21 @@ static const struct drm_i915_gem_object_ops i915_gem_object_stolen_ops = { > > static int __i915_gem_object_create_stolen(struct intel_memory_region *mem, > struct drm_i915_gem_object *obj, > - struct drm_mm_node *stolen) > + struct drm_mm_node *stolen, > + unsigned int flags) > { > static struct lock_class_key lock_class; > unsigned int cache_level; > int err; > > + /* > + * Stolen objects are always physically contiguous since we just > + * allocate one big block underneath using the drm_mm range allocator. > + */ > + flags |= I915_BO_ALLOC_CONTIGUOUS; > + > drm_gem_private_object_init(&mem->i915->drm, &obj->base, stolen->size); > - i915_gem_object_init(obj, &i915_gem_object_stolen_ops, &lock_class, 0); > + i915_gem_object_init(obj, &i915_gem_object_stolen_ops, &lock_class, flags); > > obj->stolen = stolen; > obj->read_domains = I915_GEM_DOMAIN_CPU | I915_GEM_DOMAIN_GTT; > @@ -682,7 +689,7 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem, > if (ret) > goto err_free; > > - ret = __i915_gem_object_create_stolen(mem, obj, stolen); > + ret = __i915_gem_object_create_stolen(mem, obj, stolen, flags); Hm odd that previously the flags were ignored in here. I guess no callers were passing any when creating stolen objects. If none are supported should we add a GEM_BUG_ON to check for that? Regards, Tvrtko > if (ret) > goto err_remove; > > @@ -700,7 +707,7 @@ i915_gem_object_create_stolen(struct drm_i915_private *i915, > resource_size_t size) > { > return i915_gem_object_create_region(i915->mm.stolen_region, > - size, I915_BO_ALLOC_CONTIGUOUS); > + size, 0); > } > > static int init_stolen_smem(struct intel_memory_region *mem) > @@ -866,7 +873,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915, > goto err_stolen; > } > > - ret = __i915_gem_object_create_stolen(mem, obj, stolen); > + ret = __i915_gem_object_create_stolen(mem, obj, stolen, 0); > if (ret) > goto err_object_free; > > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2021-04-20 16:14 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-20 13:18 [PATCH 1/5] drm/i915: Create stolen memory region from local memory Matthew Auld 2021-04-20 13:18 ` [Intel-gfx] " Matthew Auld 2021-04-20 13:18 ` [PATCH 2/5] drm/i915/stolen: treat stolen local as normal " Matthew Auld 2021-04-20 13:18 ` [Intel-gfx] " Matthew Auld 2021-04-20 13:18 ` [PATCH 3/5] drm/i915/stolen: enforce the min_page_size contract Matthew Auld 2021-04-20 13:18 ` [Intel-gfx] " Matthew Auld 2021-04-20 13:18 ` [PATCH 4/5] drm/i915/stolen: pass the allocation flags Matthew Auld 2021-04-20 13:18 ` [Intel-gfx] " Matthew Auld 2021-04-20 16:14 ` Tvrtko Ursulin [this message] 2021-04-20 16:14 ` Tvrtko Ursulin 2021-04-21 9:48 ` Matthew Auld 2021-04-21 9:48 ` [Intel-gfx] " Matthew Auld 2021-04-20 13:18 ` [PATCH 5/5] drm/i915/lmem: Fail driver init if LMEM training failed Matthew Auld 2021-04-20 13:18 ` [Intel-gfx] " Matthew Auld 2021-04-20 16:06 ` [PATCH 1/5] drm/i915: Create stolen memory region from local memory Tvrtko Ursulin 2021-04-20 16:06 ` [Intel-gfx] " Tvrtko Ursulin 2021-04-21 9:46 ` Matthew Auld 2021-04-21 9:46 ` [Intel-gfx] " Matthew Auld 2021-04-20 17:29 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] " Patchwork 2021-04-20 17:34 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork 2021-04-20 17:58 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2021-04-20 22:10 ` [Intel-gfx] ✗ Fi.CI.IGT: 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=8559c955-3882-aec4-f87c-afbe82052e5b@linux.intel.com \ --to=tvrtko.ursulin@linux.intel.com \ --cc=cq.tang@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.