Message ID | 20220831161841.20033-1-nirmoy.das@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/ttm: Abort suspend on i915_ttm_backup failure | expand |
On 31.08.2022 18:18, Nirmoy Das wrote: > On system suspend when system memory is low then i915_gem_obj_copy_ttm() > could fail trying to backup a lmem obj. GEM_WARN_ON() is not enough, > suspend shouldn't continue if i915_ttm_backup() throws an error. > > References: https://gitlab.freedesktop.org/drm/intel/-/issues/6529 > Reviewed-by: Matthew Auld <matthew.auld@intel.com> > Suggested-by: Chris P Wilson <chris.p.wilson@intel.com> > Signed-off-by: Nirmoy Das <nirmoy.das@intel.com> > --- > drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c > index 9aad84059d56..6f5d5c0909b4 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c > @@ -79,7 +79,12 @@ static int i915_ttm_backup(struct i915_gem_apply_to_region *apply, > goto out_no_populate; > > err = i915_gem_obj_copy_ttm(backup, obj, pm_apply->allow_gpu, false); > - GEM_WARN_ON(err); > + if (err) { > + drm_err(&i915->drm, > + "Unable to copy from device to system memory, err:%d\n", > + err); I wonder if %pe wouldn't be better here, up to you. Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> Regards Andrzej > + goto out_no_populate; > + } > ttm_bo_wait_ctx(backup_bo, &ctx); > > obj->ttm.backup = backup;
On 9/1/2022 5:57 PM, Andrzej Hajda wrote: > On 31.08.2022 18:18, Nirmoy Das wrote: >> On system suspend when system memory is low then i915_gem_obj_copy_ttm() >> could fail trying to backup a lmem obj. GEM_WARN_ON() is not enough, >> suspend shouldn't continue if i915_ttm_backup() throws an error. >> >> References: https://gitlab.freedesktop.org/drm/intel/-/issues/6529 >> Reviewed-by: Matthew Auld <matthew.auld@intel.com> >> Suggested-by: Chris P Wilson <chris.p.wilson@intel.com> >> Signed-off-by: Nirmoy Das <nirmoy.das@intel.com> >> --- >> drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c >> b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c >> index 9aad84059d56..6f5d5c0909b4 100644 >> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c >> @@ -79,7 +79,12 @@ static int i915_ttm_backup(struct >> i915_gem_apply_to_region *apply, >> goto out_no_populate; >> err = i915_gem_obj_copy_ttm(backup, obj, pm_apply->allow_gpu, >> false); >> - GEM_WARN_ON(err); >> + if (err) { >> + drm_err(&i915->drm, >> + "Unable to copy from device to system memory, err:%d\n", >> + err); > > I wonder if %pe wouldn't be better here, up to you. More readable err should be useful, resend with %pe. > > Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> Thanks, Nirmoy > > Regards > Andrzej > > >> + goto out_no_populate; >> + } >> ttm_bo_wait_ctx(backup_bo, &ctx); >> obj->ttm.backup = backup; >
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c index 9aad84059d56..6f5d5c0909b4 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c @@ -79,7 +79,12 @@ static int i915_ttm_backup(struct i915_gem_apply_to_region *apply, goto out_no_populate; err = i915_gem_obj_copy_ttm(backup, obj, pm_apply->allow_gpu, false); - GEM_WARN_ON(err); + if (err) { + drm_err(&i915->drm, + "Unable to copy from device to system memory, err:%d\n", + err); + goto out_no_populate; + } ttm_bo_wait_ctx(backup_bo, &ctx); obj->ttm.backup = backup;