diff mbox

drm/i915/bdw: Fix 4g GGTT insert entries regression

Message ID 1393996999-1930-1-git-send-email-benjamin.widawsky@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ben Widawsky March 5, 2014, 5:23 a.m. UTC
The PDE needs to wrap after writing all the PTEs. Quite a small/silly
bug to find in the massive change. It was introduced:
commit 307dc4f99f6d3a74a78b0e776838f35b2004f14d
Author: Ben Widawsky <benjamin.widawsky@intel.com>
Date:   Thu Feb 20 11:51:21 2014 -0800

    drm/i915/bdw: Reorganize PT allocations

I can't actually test this patch at the moment because my Broadwell is
unresponsive. This should be squashed if possible.

Cc: Imre Deak <imre.deak@intel.com>
Reported-by: Timo Aaltonen <tjaalton@ubuntu.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75763
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jani Nikula March 5, 2014, 9:13 a.m. UTC | #1
On Wed, 05 Mar 2014, Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> The PDE needs to wrap after writing all the PTEs. Quite a small/silly
> bug to find in the massive change. It was introduced:
> commit 307dc4f99f6d3a74a78b0e776838f35b2004f14d
> Author: Ben Widawsky <benjamin.widawsky@intel.com>
> Date:   Thu Feb 20 11:51:21 2014 -0800
>
>     drm/i915/bdw: Reorganize PT allocations

As noted in the bug, the commit merged to dinq is correct, and the
commit referenced above apparently only lives in some temporary branch.

BR,
Jani.


>
> I can't actually test this patch at the moment because my Broadwell is
> unresponsive. This should be squashed if possible.
>
> Cc: Imre Deak <imre.deak@intel.com>
> Reported-by: Timo Aaltonen <tjaalton@ubuntu.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75763
> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 5462037..2bde703 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -335,7 +335,7 @@ static void gen8_ppgtt_insert_entries(struct i915_address_space *vm,
>  		if (++pte == GEN8_PTES_PER_PAGE) {
>  			kunmap_atomic(pt_vaddr);
>  			pt_vaddr = NULL;
> -			if (pde + 1 == GEN8_PDES_PER_PAGE) {
> +			if (++pde == GEN8_PDES_PER_PAGE) {
>  				pdpe++;
>  				pde = 0;
>  			}
> -- 
> 1.9.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Ben Widawsky March 5, 2014, 3:24 p.m. UTC | #2
On Wed, Mar 05, 2014 at 11:13:12AM +0200, Jani Nikula wrote:
> On Wed, 05 Mar 2014, Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> > The PDE needs to wrap after writing all the PTEs. Quite a small/silly
> > bug to find in the massive change. It was introduced:
> > commit 307dc4f99f6d3a74a78b0e776838f35b2004f14d
> > Author: Ben Widawsky <benjamin.widawsky@intel.com>
> > Date:   Thu Feb 20 11:51:21 2014 -0800
> >
> >     drm/i915/bdw: Reorganize PT allocations
> 
> As noted in the bug, the commit merged to dinq is correct, and the
> commit referenced above apparently only lives in some temporary branch.
> 
> BR,
> Jani.
> 

My eyes are playing tricks on me. Sorry for the noise.

> 
> >
> > I can't actually test this patch at the moment because my Broadwell is
> > unresponsive. This should be squashed if possible.
> >
> > Cc: Imre Deak <imre.deak@intel.com>
> > Reported-by: Timo Aaltonen <tjaalton@ubuntu.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75763
> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> > ---
> >  drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > index 5462037..2bde703 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > @@ -335,7 +335,7 @@ static void gen8_ppgtt_insert_entries(struct i915_address_space *vm,
> >  		if (++pte == GEN8_PTES_PER_PAGE) {
> >  			kunmap_atomic(pt_vaddr);
> >  			pt_vaddr = NULL;
> > -			if (pde + 1 == GEN8_PDES_PER_PAGE) {
> > +			if (++pde == GEN8_PDES_PER_PAGE) {
> >  				pdpe++;
> >  				pde = 0;
> >  			}
> > -- 
> > 1.9.0
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center
Ben Widawsky March 5, 2014, 8:19 p.m. UTC | #3
On Wed, Mar 05, 2014 at 07:24:37AM -0800, Ben Widawsky wrote:
> On Wed, Mar 05, 2014 at 11:13:12AM +0200, Jani Nikula wrote:
> > On Wed, 05 Mar 2014, Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> > > The PDE needs to wrap after writing all the PTEs. Quite a small/silly
> > > bug to find in the massive change. It was introduced:
> > > commit 307dc4f99f6d3a74a78b0e776838f35b2004f14d
> > > Author: Ben Widawsky <benjamin.widawsky@intel.com>
> > > Date:   Thu Feb 20 11:51:21 2014 -0800
> > >
> > >     drm/i915/bdw: Reorganize PT allocations
> > 
> > As noted in the bug, the commit merged to dinq is correct, and the
> > commit referenced above apparently only lives in some temporary branch.
> > 
> > BR,
> > Jani.
> > 
> 
> My eyes are playing tricks on me. Sorry for the noise.
> 

It's not my eyes. It's something else. WTF is going on?

bwidawsk@bolo_yeung ~/intel-gfx/drm-intel (drm-intel-nightly)$ tsocks git fetch upstream 
bwidawsk@bolo_yeung ~/intel-gfx/drm-intel (drm-intel-nightly)$ git reset --hard upstream/drm-intel-nightly 
HEAD is now at 97d10a0 drm-intel-nightly: 2014y-03m-05d-20h-31m-21s integration manifest
bwidawsk@bolo_yeung ~/intel-gfx/drm-intel (drm-intel-nightly)$ sed -n '338p' drivers/gpu/drm/i915/i915_gem_gtt.c
			if (pde + 1 == GEN8_PDES_PER_PAGE) {

> > 
> > >
> > > I can't actually test this patch at the moment because my Broadwell is
> > > unresponsive. This should be squashed if possible.
> > >
> > > Cc: Imre Deak <imre.deak@intel.com>
> > > Reported-by: Timo Aaltonen <tjaalton@ubuntu.com>
> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75763
> > > Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> > > ---
> > >  drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > index 5462037..2bde703 100644
> > > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > @@ -335,7 +335,7 @@ static void gen8_ppgtt_insert_entries(struct i915_address_space *vm,
> > >  		if (++pte == GEN8_PTES_PER_PAGE) {
> > >  			kunmap_atomic(pt_vaddr);
> > >  			pt_vaddr = NULL;
> > > -			if (pde + 1 == GEN8_PDES_PER_PAGE) {
> > > +			if (++pde == GEN8_PDES_PER_PAGE) {
> > >  				pdpe++;
> > >  				pde = 0;
> > >  			}
> > > -- 
> > > 1.9.0
> > >
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 
> > -- 
> > Jani Nikula, Intel Open Source Technology Center
> 
> -- 
> Ben Widawsky, Intel Open Source Technology Center
Daniel Vetter March 5, 2014, 8:28 p.m. UTC | #4
On Wed, Mar 05, 2014 at 12:19:51PM -0800, Ben Widawsky wrote:
> On Wed, Mar 05, 2014 at 07:24:37AM -0800, Ben Widawsky wrote:
> > On Wed, Mar 05, 2014 at 11:13:12AM +0200, Jani Nikula wrote:
> > > On Wed, 05 Mar 2014, Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> > > > The PDE needs to wrap after writing all the PTEs. Quite a small/silly
> > > > bug to find in the massive change. It was introduced:
> > > > commit 307dc4f99f6d3a74a78b0e776838f35b2004f14d
> > > > Author: Ben Widawsky <benjamin.widawsky@intel.com>
> > > > Date:   Thu Feb 20 11:51:21 2014 -0800
> > > >
> > > >     drm/i915/bdw: Reorganize PT allocations
> > > 
> > > As noted in the bug, the commit merged to dinq is correct, and the
> > > commit referenced above apparently only lives in some temporary branch.
> > > 
> > > BR,
> > > Jani.
> > > 
> > 
> > My eyes are playing tricks on me. Sorry for the noise.
> > 
> 
> It's not my eyes. It's something else. WTF is going on?

My apologies, I seem to have been blind. Patch merged, will squash in.
-Daniel
Jani Nikula March 6, 2014, 5:31 a.m. UTC | #5
On Wed, 05 Mar 2014, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Wed, Mar 05, 2014 at 12:19:51PM -0800, Ben Widawsky wrote:
>> On Wed, Mar 05, 2014 at 07:24:37AM -0800, Ben Widawsky wrote:
>> > On Wed, Mar 05, 2014 at 11:13:12AM +0200, Jani Nikula wrote:
>> > > On Wed, 05 Mar 2014, Ben Widawsky <benjamin.widawsky@intel.com> wrote:
>> > > > The PDE needs to wrap after writing all the PTEs. Quite a small/silly
>> > > > bug to find in the massive change. It was introduced:
>> > > > commit 307dc4f99f6d3a74a78b0e776838f35b2004f14d
>> > > > Author: Ben Widawsky <benjamin.widawsky@intel.com>
>> > > > Date:   Thu Feb 20 11:51:21 2014 -0800
>> > > >
>> > > >     drm/i915/bdw: Reorganize PT allocations
>> > > 
>> > > As noted in the bug, the commit merged to dinq is correct, and the
>> > > commit referenced above apparently only lives in some temporary branch.
>> > > 
>> > > BR,
>> > > Jani.
>> > > 
>> > 
>> > My eyes are playing tricks on me. Sorry for the noise.
>> > 
>> 
>> It's not my eyes. It's something else. WTF is going on?
>
> My apologies, I seem to have been blind. Patch merged, will squash in.

I didn't just trust Daniel, I actually looked at the code before sending
the mail. And, well, *facepalm*. Apparently I mistook the ++pte that's
there for the new one added here. Sorry Ben.

BR,
Jani.


> -Daniel
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 5462037..2bde703 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -335,7 +335,7 @@  static void gen8_ppgtt_insert_entries(struct i915_address_space *vm,
 		if (++pte == GEN8_PTES_PER_PAGE) {
 			kunmap_atomic(pt_vaddr);
 			pt_vaddr = NULL;
-			if (pde + 1 == GEN8_PDES_PER_PAGE) {
+			if (++pde == GEN8_PDES_PER_PAGE) {
 				pdpe++;
 				pde = 0;
 			}