Message ID | 20220324172143.377104-1-matthew.auld@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/i915/ttm: limit where we apply TTM_PL_FLAG_CONTIGUOUS | expand |
On 3/24/22 18:21, Matthew Auld wrote: > We only need this when allocating device local-memory, where this > influences the drm_buddy. Currently there is some funny behaviour where > an "in limbo" system memory object is lacking the relevant placement > flags etc. before we first allocate the ttm_tt, leading to ttm > performing a move when not needed, since the current placement is seen > as not compatible. > > Suggested-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > Fixes: 2ed38cec5606 ("drm/i915: opportunistically apply ALLOC_CONTIGIOUS") > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Nirmoy Das <nirmoy.das@linux.intel.com> > --- > drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c > index e4a06fcf741a..97e648fa76bd 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c > @@ -133,6 +133,9 @@ i915_ttm_place_from_region(const struct intel_memory_region *mr, > memset(place, 0, sizeof(*place)); > place->mem_type = intel_region_to_ttm_type(mr); > > + if (mr->type == INTEL_MEMORY_SYSTEM) > + return; > + Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > if (flags & I915_BO_ALLOC_CONTIGUOUS) > place->flags |= TTM_PL_FLAG_CONTIGUOUS; > if (offset != I915_BO_INVALID_OFFSET) {
On 3/25/2022 8:16 AM, Thomas Hellström wrote: > > On 3/24/22 18:21, Matthew Auld wrote: >> We only need this when allocating device local-memory, where this >> influences the drm_buddy. Currently there is some funny behaviour where >> an "in limbo" system memory object is lacking the relevant placement >> flags etc. before we first allocate the ttm_tt, leading to ttm >> performing a move when not needed, since the current placement is seen >> as not compatible. >> >> Suggested-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> >> Fixes: 2ed38cec5606 ("drm/i915: opportunistically apply >> ALLOC_CONTIGIOUS") >> Signed-off-by: Matthew Auld <matthew.auld@intel.com> >> Cc: Nirmoy Das <nirmoy.das@linux.intel.com> >> --- >> drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c >> b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c >> index e4a06fcf741a..97e648fa76bd 100644 >> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c >> @@ -133,6 +133,9 @@ i915_ttm_place_from_region(const struct >> intel_memory_region *mr, >> memset(place, 0, sizeof(*place)); >> place->mem_type = intel_region_to_ttm_type(mr); >> + if (mr->type == INTEL_MEMORY_SYSTEM) >> + return; >> + > > Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@amd.com> > >> if (flags & I915_BO_ALLOC_CONTIGUOUS) >> place->flags |= TTM_PL_FLAG_CONTIGUOUS; >> if (offset != I915_BO_INVALID_OFFSET) {
On 3/25/2022 11:03 AM, Das, Nirmoy wrote:
> Reviewed-by: Nirmoy Das <nirmoy.das@amd.com>
Sorry, I meant this r-b for the 2nd patch and for this one Acked-by:
Nirmoy Das <nirmoy.das@amd.com>
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c index e4a06fcf741a..97e648fa76bd 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -133,6 +133,9 @@ i915_ttm_place_from_region(const struct intel_memory_region *mr, memset(place, 0, sizeof(*place)); place->mem_type = intel_region_to_ttm_type(mr); + if (mr->type == INTEL_MEMORY_SYSTEM) + return; + if (flags & I915_BO_ALLOC_CONTIGUOUS) place->flags |= TTM_PL_FLAG_CONTIGUOUS; if (offset != I915_BO_INVALID_OFFSET) {
We only need this when allocating device local-memory, where this influences the drm_buddy. Currently there is some funny behaviour where an "in limbo" system memory object is lacking the relevant placement flags etc. before we first allocate the ttm_tt, leading to ttm performing a move when not needed, since the current placement is seen as not compatible. Suggested-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Fixes: 2ed38cec5606 ("drm/i915: opportunistically apply ALLOC_CONTIGIOUS") Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Nirmoy Das <nirmoy.das@linux.intel.com> --- drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 3 +++ 1 file changed, 3 insertions(+)