From owner-freebsd-bugs@freebsd.org Sun Sep 15 05:04:04 2019 Return-Path: Delivered-To: freebsd-bugs@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 07A99E0853 for ; Sun, 15 Sep 2019 05:04:04 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.nyi.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id 46WHN36Tqsz3ydX for ; Sun, 15 Sep 2019 05:04:03 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.nyi.freebsd.org (Postfix) id DCC0BE0852; Sun, 15 Sep 2019 05:04:03 +0000 (UTC) Delivered-To: bugs@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DC85BE0851 for ; Sun, 15 Sep 2019 05:04:03 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46WHN35bNHz3ydW for ; Sun, 15 Sep 2019 05:04:03 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A489D3295 for ; Sun, 15 Sep 2019 05:04:03 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x8F543RA066261 for ; Sun, 15 Sep 2019 05:04:03 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x8F54381066260 for bugs@FreeBSD.org; Sun, 15 Sep 2019 05:04:03 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 240589] r352110 would make graphics/drm-current-kmod trigger assertion for i915 devices Date: Sun, 15 Sep 2019 05:04:03 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: delphij@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Sep 2019 05:04:04 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D240589 Bug ID: 240589 Summary: r352110 would make graphics/drm-current-kmod trigger assertion for i915 devices Product: Base System Version: CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: delphij@FreeBSD.org (I don't think I have fully understood the problem yet, this bug is mainly = to serve as a memo documenting what we have done so far and already know; Than= ks for markj@'s hints in how to get useful debugging information) =3D=3D=3D Set up kernel crash dump for DRM Set the following sysctl's: debug.debugger_on_panic=3D0 dev.drm.skip_ddb=3D1 As well as a dump device. =3D=3D=3D After setting this up, I was able to get a kernel crash dump, with the following backtrace: [drm:gen8_init_common_ring] Execlists enabled for rcs0 [drm:init_workarounds_ring] rcs0: Number of context specific w/a: 15 [drm:gen8_init_common_ring] Execlists enabled for bcs0 [drm:gen8_init_common_ring] Execlists enabled for vcs0 [drm:gen8_init_common_ring] Execlists enabled for vecs0 panic: vm_page_wire: page 0xfffffe000c2da0a8 does not belong to an object cpuid =3D 7 time =3D 1568513321 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00e4b12700 vpanic() at vpanic+0x19d/frame 0xfffffe00e4b12750 panic() at panic+0x43/frame 0xfffffe00e4b127b0 vm_page_wire() at vm_page_wire+0x9a/frame 0xfffffe00e4b127d0 gen8_ppgtt_cleanup() at gen8_ppgtt_cleanup+0xaf/frame 0xfffffe00e4b12810 i915_ppgtt_release() at i915_ppgtt_release+0x52/frame 0xfffffe00e4b12830 i915_gem_context_free() at i915_gem_context_free+0x1e0/frame 0xfffffe00e4b12850 contexts_free_worker() at contexts_free_worker+0x8d/frame 0xfffffe00e4b12880 linux_work_fn() at linux_work_fn+0xe7/frame 0xfffffe00e4b128e0 taskqueue_run_locked() at taskqueue_run_locked+0x10c/frame 0xfffffe00e4b12940 taskqueue_thread_loop() at taskqueue_thread_loop+0x88/frame 0xfffffe00e4b12970 fork_exit() at fork_exit+0x84/frame 0xfffffe00e4b129b0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00e4b129b0 --- trap 0, rip =3D 0, rsp =3D 0, rbp =3D 0 --- Uptime: 2m58s And the assertion was triggered here: (kgdb) up #1 0xffffffff80bd2830 in kern_reboot (howto=3D260) at /usr/src/sys/kern/kern_shutdown.c:479 479 doadump(TRUE); Current language: auto; currently minimal (kgdb) up #2 0xffffffff80bd2ca9 in vpanic (fmt=3D, ap=3D) at /usr/src/sys/kern/kern_shutdown.c:908 908 kern_reboot(bootopt); (kgdb) up #3 0xffffffff80bd29e3 in panic (fmt=3D) at /usr/src/sys/kern/kern_shutdown.c:835 835 vpanic(fmt, ap); (kgdb) up #4 0xffffffff80f25c5a in vm_page_wire (m=3D) at src/sys/amd64/include/counter.h:85 85 __asm __volatile("addq\t%1,%%gs:(%0)" (kgdb) up #5 0xffffffff84db8d2f in gen8_ppgtt_cleanup (vm=3D0xfffffe015261a000) at src/sys/compat/linuxkpi/common/include/linux/mm.h:230 230 vm_page_wire(page); (kgdb) up #6 0xffffffff84db4812 in i915_ppgtt_release (kref=3D) at /usr/local/sys/modules/drm-current-kmod/drivers/gpu/drm/i915/i915_gem_gtt.c= :2271 warning: Source file is more recent than executable. 2271 ppgtt->base.cleanup(&ppgtt->base); (kgdb) list 2266 /* vmas should already be unbound and destroyed */ 2267 WARN_ON(!list_empty(&ppgtt->base.active_list)); 2268 WARN_ON(!list_empty(&ppgtt->base.inactive_list)); 2269 WARN_ON(!list_empty(&ppgtt->base.unbound_list)); 2270=20=20=20=20 2271 ppgtt->base.cleanup(&ppgtt->base); 2272 i915_address_space_fini(&ppgtt->base); 2273 kfree(ppgtt); 2274 } 2275=20=20=20=20 =3D=3D=3D So basically, in r352110, vm_page_wire was modified to require a VM object,= and the requirement is enforced as an assertion. The Linux get_page() API basically do the same of wiring the page, but it's= not yet clear to me whether we can always assert that the page is already mapped (in FreeBSD's terms). A quick hack would be to replace the vm_page_wire(page) call in sys/compat/linuxkpi/common/include/linux/mm.h with an assertion that the equivalent call of vm_page_wire_mapped(page) succeeded, and I am able to get my laptop working again with CURRENT. --=20 You are receiving this mail because: You are the assignee for the bug.=