NetBSD Problem Report #49195

From apb@cequrux.com  Thu Sep 11 10:52:31 2014
Return-Path: <apb@cequrux.com>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
	by mollari.NetBSD.org (Postfix) with ESMTPS id B7DB0CD3E9
	for <gnats-bugs@gnats.NetBSD.org>; Thu, 11 Sep 2014 10:52:31 +0000 (UTC)
Message-Id: <20140911105226.DC1801D2CCDF@apb-laptoy.apb.alt.za>
Date: Thu, 11 Sep 2014 12:52:26 +0200 (SAST)
From: apb@cequrux.com
To: gnats-bugs@NetBSD.org
Subject: drm2 panic in i915_gem.c
X-Send-Pr-Version: 3.95

>Number:         49195
>Category:       kern
>Synopsis:       drm2 panic in i915_gem.c -- DRMKMS
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    riastradh
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Sep 11 10:55:00 +0000 2014
>Closed-Date:    Wed May 13 23:57:55 +0000 2015
>Last-Modified:  Thu Jul 30 15:40:00 +0000 2015
>Originator:     Alan Barrett
>Release:        NetBSD 7.99.1
>Organization:
Not much
>Environment:
NetBSD 7.99.1 i386
>Description:
I have seen this panic a few times.

kernel diagnostic assertion "!(obj->base.write_domain & ~(0x00000002 | 0x00000004 | 0x00000008 | 0x00000010 | 0x00000020))" failed: file "src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c", line 2833

Here's a backtrace from gdb:

#10 0xc098c611 in vpanic (fmt=<optimized out>, ap=<optimized out>)
    at src/sys/kern/subr_prf.c:338
#11 0xc0b6489b in kern_assert (
    fmt=0xc0db35b6 "kernel %sassertion \"%s\" failed: file \"%s\", line %d ")
    at src/sys/lib/libkern/kern_assert.c:51
#12 0xc03fabf3 in i915_gem_object_move_to_inactive (obj=<optimized out>)
    at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:2833
#13 0xc03f6b3b in i915_gem_retire_requests_ring (ring=0xc49ea344)
    at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:3228
#14 0xc03f8910 in i915_gem_object_flush_active (obj=<optimized out>)
    at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:3326
#15 i915_gem_busy_ioctl (dev=<optimized out>, data=<optimized out>,
    file=<optimized out>)
    at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:4803
#16 0xc02f170e in drm_ioctl (fp=0xc6709500, cmd=3221775447, data=0x0)
    at src/sys/external/bsd/drm2/drm/drm_drv.c:664
#17 0xc09a7f0a in sys_ioctl (l=<optimized out>, uap=0x0, retval=0xdebbbf88)
    at src/sys/kern/sys_generic.c:681
#18 0xc09b3de4 in sy_call (sy=<unavailable>, l=<optimized out>,
    uap=<optimized out>, rval=<optimized out>)
    at src/sys/sys/syscallvar.h:61
#19 sy_invoke (sy=<unavailable>, l=<optimized out>, code=54,
    uap=<optimized out>, rval=<optimized out>)
    at src/sys/sys/syscallvar.h:85
#20 syscall (frame=<optimized out>)
    at src/sys/arch/x86/x86/syscall.c:156
#21 0xc01005cd in Xsyscall ()
#22 0xdebbbfa8 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

>How-To-Repeat:
Have an i386 kernel with drm2.  Use X11 for a while.  I don't know
how to replicate the problem, but I have seen it a few times.

>Fix:

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: kern-bug-people->riastradh
Responsible-Changed-By: riastradh@NetBSD.org
Responsible-Changed-When: Sat, 04 Oct 2014 15:42:24 +0000
Responsible-Changed-Why:
mine


State-Changed-From-To: open->feedback
State-Changed-By: snj@NetBSD.org
State-Changed-When: Tue, 04 Nov 2014 06:56:31 +0000
State-Changed-Why:
This seems to be fixed with revision 1.18 of i915_gem.c.  Please test.


From: Alan Barrett <apb@cequrux.com>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/49195 (drm2 panic in i915_gem.c)
Date: Mon, 17 Nov 2014 11:46:53 +0200

 On Tue, 04 Nov 2014, snj@NetBSD.org wrote:
 >Synopsis: drm2 panic in i915_gem.c
 >
 >State-Changed-From-To: open->feedback
 >State-Changed-By: snj@NetBSD.org
 >State-Changed-When: Tue, 04 Nov 2014 06:56:31 +0000
 >State-Changed-Why:
 >This seems to be fixed with revision 1.18 of i915_gem.c.  Please test.

 I haven't yet tested that change.  However, I can report that the 
 problem appears with both AccelMethod "UXA" and AccelMethod "SNA" 
 but not with Accel off, in this part of the xorg.conf file:

     Section "Device"
        Identifier      "My Device 0"
        Driver  "intel"
             #Option "AccelMethod" "UXA"
             #Option "AccelMethod" "SNA"
             Option "Accel" "off"
     EndSection

 --apb (Alan Barrett)

From: Alan Barrett <apb@cequrux.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/49195 (drm2 panic in i915_gem.c)
Date: Mon, 17 Nov 2014 18:16:06 +0200

 On Mon, 17 Nov 2014, Alan Barrett wrote:
 > >This seems to be fixed with revision 1.18 of i915_gem.c.  Please test.
 >
 > I haven't yet tested that change.  However, I can report that the
 > problem appears with both AccelMethod "UXA" and AccelMethod "SNA"
 > but not with Accel off, in this part of the xorg.conf file:

 I have now tested with i915_gem.c revision 1.18.  I still get the
 write_domain panic with AccelMethod "SNA", although the back trace may
 not always be the same.

 With AccelMethod "UXA", I get such badly corrupted images that I didn't
 test for long enough to see whtether it panics.

 Here's a backtrace from the most recent write_domain panic.

 #11 0xc0b62a34 in kern_assert (
     fmt=fmt@entry=0xc0df5830 "kernel %sassertion \"%s\" failed: file \"%s\", line %d ") at src/sys/lib/libkern/kern_assert.c:51
 #12 0xc03e7ad7 in i915_gem_object_move_to_inactive (obj=0xc868ef00)
     at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:2854
 #13 0xc03e7b46 in i915_gem_retire_requests_ring (ring=0xc4b24344)
     at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:3249
 #14 0xc03e9a57 in i915_gem_object_flush_active (obj=0xc868ef00)
     at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:3347
 #15 i915_gem_busy_ioctl (dev=0xc504564c, data=0xdd8e1eb0, file=0xc659f5e8)
     at src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:4836
 #16 0xc02ea1dc in drm_ioctl (fp=0xc65a9c00, cmd=3221775447, data=0xdd8e1eb0)
     at src/sys/external/bsd/drm2/drm/drm_drv.c:663
 #17 0xc09b8fd0 in sys_ioctl (l=0xc53fbd40, uap=0xdd8e1f68, retval=0xdd8e1f60)
     at src/sys/kern/sys_generic.c:681
 #18 0xc09c4693 in sy_call (rval=0xdd8e1f60, uap=0xdd8e1f68, l=0xc53fbd40,
     sy=<optimized out>) at src/sys/sys/syscallvar.h:61
 #19 sy_invoke (code=54, rval=0xdd8e1f60, uap=0xdd8e1f68, l=0xc53fbd40,
     sy=<optimized out>) at src/sys/sys/syscallvar.h:85
 #20 syscall (frame=0xdd8e1fa8)
     at src/sys/arch/x86/x86/syscall.c:156
 #21 0xc01005c6 in Xsyscall ()
 #22 0xdd8e1fa8 in ?? ()
 Backtrace stopped: previous frame inner to this frame (corrupt stack?)

 --apb (Alan Barrett)

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/49195 CVS commit: src/sys/external/bsd/drm2/dist/drm/i915
Date: Tue, 3 Mar 2015 14:31:48 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Tue Mar  3 14:31:48 UTC 2015

 Modified Files:
 	src/sys/external/bsd/drm2/dist/drm/i915: i915_gem.c

 Log Message:
 Re-enable prints to diagnose PR 49195.

 I believe I fixed this problem by fixing __wait_seqno, but before I
 remove the workaround I'll try to make sure it's not getting hit any
 more.


 To generate a diff of this commit:
 cvs rdiff -u -r1.24 -r1.25 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: feedback->closed
State-Changed-By: riastradh@NetBSD.org
State-Changed-When: Wed, 13 May 2015 23:57:55 +0000
State-Changed-Why:
nobody's hollered about the workaround message, so assume fixed


From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/49195 CVS commit: src/sys/external/bsd/drm2/dist/drm/i915
Date: Wed, 13 May 2015 23:57:02 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Wed May 13 23:57:02 UTC 2015

 Modified Files:
 	src/sys/external/bsd/drm2/dist/drm/i915: i915_gem.c

 Log Message:
 Remove workaround for PR kern/49195.

 Problem seems to have been properly fixed in rev. 1.25.


 To generate a diff of this commit:
 cvs rdiff -u -r1.29 -r1.30 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Soren Jacobsen" <snj@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/49195 CVS commit: [netbsd-7] src/sys/external/bsd/drm2/dist/drm/i915
Date: Thu, 30 Jul 2015 15:38:39 +0000

 Module Name:	src
 Committed By:	snj
 Date:		Thu Jul 30 15:38:39 UTC 2015

 Modified Files:
 	src/sys/external/bsd/drm2/dist/drm/i915 [netbsd-7]: i915_gem.c

 Log Message:
 Pull up following revision(s) (requested by riastradh in ticket #901):
 	sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.30
 Remove workaround for PR kern/49195.
 Problem seems to have been properly fixed in rev. 1.25.


 To generate a diff of this commit:
 cvs rdiff -u -r1.14.2.9 -r1.14.2.10 \
     src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.