Message ID | 1395184177-10673-1-git-send-email-benjamin.widawsky@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Mar 18, 2014 at 4:09 PM, Ben Widawsky <benjamin.widawsky@intel.com> wrote: > Apparently it is wiped out from under us, and we get some really fun > caching artifacts upon resume (it seems to be WB for all types by > default). > > Reported-by: James Ausmus <james.ausmus@intel.com> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Tested-by: James Ausmus <james.ausmus@intel.com> Works for me backported on to both a 3.14-rc3 w/ ChromeOS sauce and a vanilla 3.14-rc6. Thanks! > --- > drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c > index bd016e2..1b45a04 100644 > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c > @@ -30,6 +30,8 @@ > #include "i915_trace.h" > #include "intel_drv.h" > > +static void gen8_setup_private_ppat(struct drm_i915_private *dev_priv); > + > bool intel_enable_ppgtt(struct drm_device *dev, bool full) > { > if (i915.enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev)) > @@ -1371,8 +1373,10 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev) > } > > > - if (INTEL_INFO(dev)->gen >= 8) > + if (INTEL_INFO(dev)->gen >= 8) { > + gen8_setup_private_ppat(dev_priv); > return; > + } > > list_for_each_entry(vm, &dev_priv->vm_list, global_link) { > /* TODO: Perhaps it shouldn't be gen6 specific */ > -- > 1.9.0 >
On Tue, Mar 18, 2014 at 04:09:37PM -0700, Ben Widawsky wrote: > Apparently it is wiped out from under us, and we get some really fun > caching artifacts upon resume (it seems to be WB for all types by > default). > > Reported-by: James Ausmus <james.ausmus@intel.com> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Perhaps related to https://bugs.freedesktop.org/show_bug.cgi?id=76113 ? -Chris > --- > drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c > index bd016e2..1b45a04 100644 > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c > @@ -30,6 +30,8 @@ > #include "i915_trace.h" > #include "intel_drv.h" > > +static void gen8_setup_private_ppat(struct drm_i915_private *dev_priv); > + > bool intel_enable_ppgtt(struct drm_device *dev, bool full) > { > if (i915.enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev)) > @@ -1371,8 +1373,10 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev) > } > > > - if (INTEL_INFO(dev)->gen >= 8) > + if (INTEL_INFO(dev)->gen >= 8) { > + gen8_setup_private_ppat(dev_priv); > return; > + } > > list_for_each_entry(vm, &dev_priv->vm_list, global_link) { > /* TODO: Perhaps it shouldn't be gen6 specific */ > -- > 1.9.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx >
On 19.03.2014 01:09, Ben Widawsky wrote: > Apparently it is wiped out from under us, and we get some really fun > caching artifacts upon resume (it seems to be WB for all types by > default). > > Reported-by: James Ausmus <james.ausmus@intel.com> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Excellent! Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76113 Tested-by: Timo Aaltonen <timo.aaltonen@canonical.com> > --- > drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c > index bd016e2..1b45a04 100644 > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c > @@ -30,6 +30,8 @@ > #include "i915_trace.h" > #include "intel_drv.h" > > +static void gen8_setup_private_ppat(struct drm_i915_private *dev_priv); > + > bool intel_enable_ppgtt(struct drm_device *dev, bool full) > { > if (i915.enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev)) > @@ -1371,8 +1373,10 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev) > } > > > - if (INTEL_INFO(dev)->gen >= 8) > + if (INTEL_INFO(dev)->gen >= 8) { > + gen8_setup_private_ppat(dev_priv); > return; > + } > > list_for_each_entry(vm, &dev_priv->vm_list, global_link) { > /* TODO: Perhaps it shouldn't be gen6 specific */ >
On Wed, Mar 19, 2014 at 10:39:03AM +0200, Timo Aaltonen wrote: > On 19.03.2014 01:09, Ben Widawsky wrote: > > Apparently it is wiped out from under us, and we get some really fun > > caching artifacts upon resume (it seems to be WB for all types by > > default). > > > > Reported-by: James Ausmus <james.ausmus@intel.com> > > Signed-off-by: Ben Widawsky <ben@bwidawsk.net> > > Excellent! > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76113 > Tested-by: Timo Aaltonen <timo.aaltonen@canonical.com> Also Cc: stable@vger.kernel.org Queued for -next, thanks for the patch. -Daniel > > > --- > > drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c > > index bd016e2..1b45a04 100644 > > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c > > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c > > @@ -30,6 +30,8 @@ > > #include "i915_trace.h" > > #include "intel_drv.h" > > > > +static void gen8_setup_private_ppat(struct drm_i915_private *dev_priv); > > + > > bool intel_enable_ppgtt(struct drm_device *dev, bool full) > > { > > if (i915.enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev)) > > @@ -1371,8 +1373,10 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev) > > } > > > > > > - if (INTEL_INFO(dev)->gen >= 8) > > + if (INTEL_INFO(dev)->gen >= 8) { > > + gen8_setup_private_ppat(dev_priv); > > return; > > + } > > > > list_for_each_entry(vm, &dev_priv->vm_list, global_link) { > > /* TODO: Perhaps it shouldn't be gen6 specific */ > > > > > -- > timo.aaltonen@canonical.com > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index bd016e2..1b45a04 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -30,6 +30,8 @@ #include "i915_trace.h" #include "intel_drv.h" +static void gen8_setup_private_ppat(struct drm_i915_private *dev_priv); + bool intel_enable_ppgtt(struct drm_device *dev, bool full) { if (i915.enable_ppgtt == 0 || !HAS_ALIASING_PPGTT(dev)) @@ -1371,8 +1373,10 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev) } - if (INTEL_INFO(dev)->gen >= 8) + if (INTEL_INFO(dev)->gen >= 8) { + gen8_setup_private_ppat(dev_priv); return; + } list_for_each_entry(vm, &dev_priv->vm_list, global_link) { /* TODO: Perhaps it shouldn't be gen6 specific */
Apparently it is wiped out from under us, and we get some really fun caching artifacts upon resume (it seems to be WB for all types by default). Reported-by: James Ausmus <james.ausmus@intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net> --- drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)