Date: Thu, 02 Jun 2016 19:31:12 -0700 From: Matthew Macy <mmacy@nextbsd.org> To: "K. Macy" <kmacy@freebsd.org> Cc: "Michael Butler" <imb@protected-networks.net>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org> Subject: Re: repeatable panic on pageout with 945GM Message-ID: <1551419a1db.12929035f45012.326107747932338888@nextbsd.org> In-Reply-To: <CAHM0Q_PR5Aoak6A7f=tsRy0DJFCmLDVfRGpceZ0mXU3P%2BxO8DA@mail.gmail.com> References: <2490f1c7-8153-ece3-49ed-4b3886564fd7@protected-networks.net> <da19738b-6bf1-10a3-4428-43b6095ec35a@protected-networks.net> <205d4423-b834-9a21-785f-fa15d44c78ec@protected-networks.net> <CAHM0Q_PR5Aoak6A7f=tsRy0DJFCmLDVfRGpceZ0mXU3P%2BxO8DA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Tell me if that makes any difference. -M ---- On Thu, 02 Jun 2016 16:55:53 -0700 K. Macy <kmacy@freebsd.org> wrote ---- > It looks like it might be trying to remove mappings for a page that doesn't > have any. It's a bit odd. Likely a bug in cdev_pager_free_page or gem > release mmap. Compile the kernel and driver with -O0 and look at the page. > It's too bad I don't support AGP yet with DRM 4.6. Maybe in a week or two. diff --git a/sys/vm/device_pager.c b/sys/vm/device_pager.c index 013f0d5..917ece7 100644 --- a/sys/vm/device_pager.c +++ b/sys/vm/device_pager.c @@ -211,7 +211,8 @@ cdev_pager_free_page(vm_object_t object, vm_page_t m) VM_OBJECT_ASSERT_WLOCKED(object); if (object->type == OBJT_MGTDEVICE) { KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("unmanaged %p", m)); - pmap_remove_all(m); + if (pmap_page_is_mapped(page)) + pmap_remove_all(m); vm_page_lock(m); vm_page_remove(m); vm_page_unlock(m); > > -M > > On Thursday, June 2, 2016, Michael Butler <imb@protected-networks.net> > wrote: > > > On 05/23/16 21:10, Michael Butler wrote: > > > On 05/22/16 09:58, Michael Butler wrote: > > >> With KDE and compositing enabled, I randomly get the following: > > >> > > >> (kgdb) info stack > > >> #0 doadump (textdump=<value optimized out>) at pcpu.h:221 > > >> #1 0xffffffff8064e98e in kern_reboot (howto=260) at > > >> /usr/src/sys/kern/kern_shutdown.c:366 > > >> #2 0xffffffff8064eea1 in vpanic (fmt=<value optimized out>, ap=<value > > >> optimized out>) at /usr/src/sys/kern/kern_shutdown.c:759 > > >> #3 0xffffffff8064ed13 in panic (fmt=0x0) at > > >> /usr/src/sys/kern/kern_shutdown.c:690 > > >> #4 0xffffffff809d18ed in vm_fault_hold (map=<value optimized out>, > > >> vaddr=<value optimized out>, fault_type=<value optimized out>, > > >> fault_flags=<value optimized out>, m_hold=<value optimized out>) at > > >> /usr/src/sys/vm/vm_fault.c:327 > > >> #5 0xffffffff809cf548 in vm_fault (map=0xfffff80002000000, vaddr=<value > > >> optimized out>, fault_type=1 '\001', fault_flags=<value optimized out>) > > >> at /usr/src/sys/vm/vm_fault.c:273 > > >> #6 0xffffffff80a1849f in trap_pfault (frame=<value optimized out>, > > >> usermode=0) at /usr/src/sys/amd64/amd64/trap.c:741 > > >> #7 0xffffffff80a17b30 in trap (frame=0xfffffe00dbec5830) at > > >> /usr/src/sys/amd64/amd64/trap.c:442 > > >> #8 0xffffffff809fd5a1 in calltrap () at > > >> /usr/src/sys/amd64/amd64/exception.S:236 > > >> #9 0xffffffff80a0a3bb in pmap_remove_all (m=<value optimized out>) at > > >> /usr/src/sys/amd64/amd64/pmap.c:3950 > > >> #10 0xffffffff809c0c57 in cdev_pager_free_page (object=<value optimized > > >> out>, m=0xfffffe0001e410d0) at /usr/src/sys/vm/device_pager.c:214 > > >> #11 0xffffffff816aff33 in i915_gem_release_mmap (obj=<value optimized > > > > [ .. snip .. ] > > > > Even with the most recent mesa update - something is upsetting this > > device :-( > > > > (kgdb) bt > > #0 doadump (textdump=<value optimized out>) at pcpu.h:221 > > #1 0xffffffff805cfe9a in kern_reboot (howto=260) at > > /usr/src/sys/kern/kern_shutdown.c:366 > > #2 0xffffffff805d03e1 in vpanic (fmt=<value optimized out>, ap=<value > > optimized out>) at /usr/src/sys/kern/kern_shutdown.c:759 > > #3 0xffffffff805d0253 in panic (fmt=0x0) at > > /usr/src/sys/kern/kern_shutdown.c:690 > > #4 0xffffffff8096c56e in vm_fault_hold (map=<value optimized out>, > > vaddr=<value optimized out>, fault_type=<value optimized out>, > > fault_flags=<value optimized out>, m_hold=<value optimized out>) at > > /usr/src/sys/vm/vm_fault.c:327 > > #5 0xffffffff80969f78 in vm_fault (map=0xfffff80002000000, vaddr=<value > > optimized out>, fault_type=1 '\001', fault_flags=<value optimized out>) > > at /usr/src/sys/vm/vm_fault.c:273 > > #6 0xffffffff809b556f in trap_pfault (frame=<value optimized out>, > > usermode=0) at /usr/src/sys/amd64/amd64/trap.c:741 > > #7 0xffffffff809b4c00 in trap (frame=0xfffffe00dc0ef310) at > > /usr/src/sys/amd64/amd64/trap.c:442 > > #8 0xffffffff80999d81 in calltrap () at > > /usr/src/sys/amd64/amd64/exception.S:236 > > #9 0xffffffff809a6d4e in pmap_remove_all (m=<value optimized out>) at > > /usr/src/sys/amd64/amd64/pmap.c:3950 > > #10 0xffffffff8095ab7b in cdev_pager_free_page (object=<value optimized > > out>, m=0xfffffe0001e2c270) at /usr/src/sys/vm/device_pager.c:214 > > #11 0xffffffff816aff33 in i915_gem_release_mmap (obj=<value optimized > > out>) at > > /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem.c:1691 > > #12 0xffffffff816b15ba in i915_gem_object_get_fence (obj=<value > > optimized out>) at > > /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem.c:105 > > #13 0xffffffff816b7f2e in i915_gem_execbuffer_reserve_object > > (obj=0xfffff8009858f200, ring=<value optimized out>) > > at > > > > /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem_execbuffer.c:368 > > #14 0xffffffff816b7d8f in i915_gem_execbuffer_reserve () at > > > > /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem_execbuffer.c:491 > > #15 0xffffffff816b6bb5 in i915_gem_do_execbuffer () at > > > > /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem_execbuffer.c:1036 > > #16 0xffffffff816b7ad1 in i915_gem_execbuffer2 (dev=0xfffff800059e9000, > > data=0xfffffe00dc0efa20, file=0xfffff80005db4a00) > > at > > > > /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_gem_execbuffer.c:1273 > > #17 0xffffffff812c7eae in drm_ioctl (kdev=<value optimized out>, > > cmd=<value optimized out>, data=0xfffffe00dc0efa20 "", flags=<value > > optimized out>, > > p=<value optimized out>) at > > /usr/src/sys/modules/drm2/drm2/../../../dev/drm2/drm_drv.c:467 > > #18 0xffffffff804c721f in devfs_ioctl_f (fp=0xfffff800afba1550, > > com=2151703657, data=0xfffffe00dc0efa20, cred=0xfffff800af2dc800, > > td=0xfffff80005e2ca00) > > at /usr/src/sys/fs/devfs/devfs_vnops.c:815 > > #19 0xffffffff806377fe in kern_ioctl (td=<value optimized out>, > > fd=<value optimized out>, com=<value optimized out>, > > data=0xfffffe00dc0efa20 "") at file.h:327 > > #20 0xffffffff80637481 in sys_ioctl (td=0xfffff80005e2ca00, > > uap=0xfffffe00dc0efb80) at /usr/src/sys/kern/sys_generic.c:743 > > #21 0xffffffff809b5e79 in amd64_syscall (td=<value optimized out>, > > traced=0) at subr_syscall.c:135 > > #22 0xffffffff8099a06b in Xfast_syscall () at > > /usr/src/sys/amd64/amd64/exception.S:396 > > #23 0x00000008024f57ca in ?? () > > Previous frame inner to this frame (corrupt stack?) > > Current language: auto; currently minimal > > > > Any hints welcome, > > > > imb > > > > > > > > _______________________________________________ > > freebsd-current@freebsd.org <javascript:;> mailing list > > https://lists.freebsd.org/mailman/listinfo/freebsd-current > > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org > > <javascript:;>" > > > _______________________________________________ > freebsd-current@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1551419a1db.12929035f45012.326107747932338888>