Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Jun 2013 10:16:15 +0300
From:      Artyom Mirgorodskiy <artyom.mirgorodsky@gmail.com>
To:        freebsd-x11@freebsd.org
Cc:        freebsd-current@freebsd.org
Subject:   Re: [drm2][panic] Running XOrg with SNA enabled causes system panic after few hours on G33
Message-ID:  <4987465.p9MvIyND5v@notebook.alkar.net>
In-Reply-To: <CAGw%2Bup%2BoCnRPe6XPY5PJ12vO9qVFx6bN5CjgiGJF66J2hj1R1w@mail.gmail.com>
References:  <CAGw%2Bup%2BoCnRPe6XPY5PJ12vO9qVFx6bN5CjgiGJF66J2hj1R1w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thank you! This patch also solve my issue (unable shutdown):
http://lists.freebsd.org/pipermail/freebsd-current/2013-May/042011.html

On Tuesday 11 June 2013 12:34:16 Oleg Sidorkin wrote:
> Hello.
> 
> I'm running recent 9.1/stable with the recent XOrg on the system with
> G33 chipset.
> My pciconf -lvb output is here: http://pastebin.com/LDzKzf1i
> 
> If I add
> Option "AccelMethod" "sna"
> to my xorg.conf system panics after few hours:
> 
> (kgdb) bt
> #0  doadump (textdump=<value optimized out>)
>     at /usr/src/sys/kern/kern_
> shutdown.c:272
> #1  0xffffffff8050a19f in kern_reboot (howto=260)
>     at /usr/src/sys/kern/kern_shutdown.c:449
> #2  0xffffffff8050a6a3 in panic (fmt=0x104 <Address 0x104 out of bounds>)
>     at /usr/src/sys/kern/kern_shutdown.c:637
> #3  0xffffffff80765f77 in vm_page_insert (m=0xfffffe0226126b50,
>     object=0xfffffe0208de8488, pindex=3) at /usr/src/sys/vm/vm_page.c:914
> #4  0xffffffff814a889d in i915_gem_pager_fault (vm_obj=0xfffffe0208de8488,
>     offset=3, prot=<value optimized out>, mres=0xffffff824705b680)
>     at /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem.c:1429
> #5  0xffffffff80747fe3 in dev_pager_getpages (object=0xfffffe0208de8488,
>     ma=0xffffff824705b680, count=1, reqpage=<value optimized out>)
>     at /usr/src/sys/vm/device_pager.c:260
> #6  0xffffffff80754bb6 in vm_fault_hold (map=0xfffffe000c247188,
>     vaddr=34458505216, fault_type=2 '\002', fault_flags=0, m_hold=0x0)
>     at vm_pager.h:128
> #7  0xffffffff80756ca3 in vm_fault (map=0xfffffe000c247188, vaddr=34458505216,
>     fault_type=<value optimized out>, fault_flags=0)
>     at /usr/src/sys/vm/vm_fault.c:229
> #8  0xffffffff8078e01f in trap_pfault (frame=0xffffff824705bc40, usermode=1)
>     at /usr/src/sys/amd64/amd64/trap.c:762
> #9  0xffffffff8078e864 in trap (frame=0xffffff824705bc40)
> 
> (kgdb) bt full
> #0  doadump (textdump=<value optimized out>)
>     at /usr/src/sys/kern/kern_shutdown.c:272
> No locals.
> #1  0xffffffff8050a19f in kern_reboot (howto=260)
>     at /usr/src/sys/kern/kern_shutdown.c:449
>         _ep = (struct eventhandler_entry *) 0x0
>         _el = (struct eventhandler_list *) 0xfffffe0009c7f700
>         first_buf_printf = 1
> #2  0xffffffff8050a6a3 in panic (fmt=0x104 <Address 0x104 out of bounds>)
>     at /usr/src/sys/kern/kern_shutdown.c:637
>         td = (struct thread *) 0x0
>         bootopt = <value optimized out>
>         newpanic = <value optimized out>
>         ap = {{gp_offset = 8, fp_offset = 48,
>     overflow_arg_area = 0xffffff824705b570,
>     reg_save_area = 0xffffff824705b490}}
>         panic_cpu = 3
>         buf = "vm_page_insert: page already inserted", '\0' <repeats 218 times>
> #3  0xffffffff80765f77 in vm_page_insert (m=0xfffffe0226126b50,
>     object=0xfffffe0208de8488, pindex=3) at /usr/src/sys/vm/vm_page.c:914
>         root = 0x0
> #4  0xffffffff814a889d in i915_gem_pager_fault (vm_obj=0xfffffe0208de8488,
>     offset=3, prot=<value optimized out>, mres=0xffffff824705b680)
> 
> (kgdb) up 4
> #4  0xffffffff814a889d in i915_gem_pager_fault (vm_obj=0xfffffe0208de8488,
>     offset=3, prot=<value optimized out>, mres=0xffffff824705b680)
>     at /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem.c:1429
> 1429            vm_page_insert(m, vm_obj, OFF_TO_IDX(offset));
> (kgdb) p vm_obj
> $1 = 0xfffffe0208de8488
> (kgdb) p m->object
> $2 = 0xfffffe0208de8488
> 
> It works fine for weeks without Option "AccelMethod" "sna".
> 
> I replaced
>  vm_page_insert(m, vm_obj, OFF_TO_IDX(offset));
> with the code
>        if (m->object==NULL){
>            vm_page_insert(m, vm_obj, OFF_TO_IDX(offset));
>        }
>        else{
>            if(m->object!=vm_obj)
>                panic("i915_gem_pager_fault: tried to assign already
> assigned page to the different object");
>        }
> and it worked with SNA enabled for about a week with no problems. But
> I'm not sure that is a good solution.
> 
> I can provide additional info if required.
> 
> Thanks
> --
> Oleg Sidorkin
> _______________________________________________
> freebsd-x11@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-x11
> To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org"
-- 
Artyom Mirgorodskiy



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4987465.p9MvIyND5v>