Date: Tue, 7 Nov 2023 17:51:47 +0200 From: Oleg Nauman <oleg.nauman@gmail.com> To: Cy Schubert <Cy.Schubert@cschubert.com> Cc: FreeBSD Current <current@freebsd.org>, manu@freebsd.org Subject: Re: Kernel with INVARIANTS panicing if drm is loaded Message-ID: <CAC5YPTsz9zhG6=Rmobt6knamKJXG2DdNmb0MbyymBB=xyzeAzQ@mail.gmail.com> In-Reply-To: <20231107043221.A4E1CFA@slippy.cwsent.com> References: <2806934.Tv9pZ1cZgq@moonset.home> <20231107043221.A4E1CFA@slippy.cwsent.com>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
On Tue, Nov 7, 2023 at 6:33 AM Cy Schubert <Cy.Schubert@cschubert.com>
wrote:
> In message <2806934.Tv9pZ1cZgq@moonset.home>, "Oleg V. Nauman" writes:
> > I am observing kernel panic when entering multiuser mode after
> sucessful
> > system boot. It happens when I load CURRENT kernel with INVARIANTS and
> drm
> > module loaded ( drm-515-kmod-5.15.118_1 in particular ) . drm module and
> kene
> > l
> > are in sync
> >
> >
> > FreeBSD moonset.home 15.0-CURRENT FreeBSD 15.0-CURRENT #3 main-n266267-
> > e116e040f309: Sun Nov 5 10:00:51 EET 2023 root@moonset.home
> :/usr/obj/usr
> > /
> > src/amd64.amd64/sys/moonset amd64
> >
> > panic: sleepq_add: td 0xfffff8000203c000 to sleep on wchan
> 0xfffff800021d8648
> >
> > with sleeping prohibited
> > ...............
> > Reading symbols from /boot/kernel/kernel...
> > Reading symbols from /usr/lib/debug//boot/kernel/kernel.debug...
> >
> > Unread portion of the kernel message buffer:
> > panic: malloc(M_WAITOK) with sleeping prohibited
> > cpuid = 0
> > time = 1699171621
> > .............
> > __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
> > 57 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n"
> (offsetof(struct
> > pcpu,
> > (kgdb) #0 __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
> > #1 doadump (textdump=<optimized out>)
> > at /usr/src/sys/kern/kern_shutdown.c:405
> > #2 0xffffffff81e2ec53 in vt_kms_postswitch () from /boot/modules/drm.ko
> > #3 0xffffffff8043ad6e in vt_window_switch (vw=0xfffff800021d8640)
> > at /usr/src/sys/dev/vt/vt_core.c:595
> > #4 0xffffffff804ec583 in kern_reboot (howto=4)
> > at /usr/src/sys/kern/kern_shutdown.c:501
> > #5 0xffffffff804eccfa in vpanic (
> > fmt=0xffffffff808263fb "malloc(M_WAITOK) with sleeping prohibited",
> > ap=ap@entry=0xfffffe00ce259850) at
> /usr/src/sys/kern/kern_shutdown.c:970
> > #6 0xffffffff804ecb03 in panic (fmt=<unavailable>)
> > at /usr/src/sys/kern/kern_shutdown.c:894
> > #7 0xffffffff804c8a04 in malloc_dbg (vap=<optimized out>,
> > sizep=<optimized out>, mtp=<optimized out>, flags=<optimized out>)
> > at /usr/src/sys/kern/kern_malloc.c:540
> > #8 0xffffffff804c885c in malloc (size=<optimized out>,
> > mtp=0xffffffff81e931c0 <M_KMALLOC>, flags=<unavailable>)
> > at /usr/src/sys/kern/kern_malloc.c:641
> > #9 0xffffffff81c5a750 in intel_atomic_state_alloc ()
> > from /boot/modules/i915kms.ko
> > #10 0xffffffff81dfe404 in drm_client_modeset_commit_atomic ()
> > from /boot/modules/drm.ko
> > #11 0xffffffff81dfe614 in drm_client_modeset_commit_locked ()
> > from /boot/modules/drm.ko
> > #12 0xffffffff81dfe7a1 in drm_client_modeset_commit ()
> > from /boot/modules/drm.ko
> > #13 0xffffffff81e41ab3 in drm_fb_helper_restore_fbdev_mode_unlocked ()
> > from /boot/modules/drm.ko
> > #14 0xffffffff81e2ed91 in vt_kms_postswitch () from /boot/modules/drm.ko
> > #15 0xffffffff8043ac31 in vt_window_switch (vw=0xfffff80001d3a600,
> > vw@entry=0xffffffff80a47178 <vt_conswindow>)
> > at /usr/src/sys/dev/vt/vt_core.c:612
> > #16 0xffffffff8043be0f in vtterm_cngrab (tm=<unavailable>,
> > tm@entry=<error reading variable: value is not available>)
> > at /usr/src/sys/dev/vt/vt_core.c:1863
> > #17 0xffffffff804893f6 in cngrab () at /usr/src/sys/kern/kern_cons.c:385
> > #18 0xffffffff804ecc79 in vpanic (
> > fmt=0xffffffff808799a9 "%s: td %p to sleep on wchan %p with sleeping
> > prohibited", ap=ap@entry=0xfffffe00ce259c20)
> > at /usr/src/sys/kern/kern_shutdown.c:942
> > #19 0xffffffff804ecb03 in panic (fmt=<unavailable>)
> > at /usr/src/sys/kern/kern_shutdown.c:894
> > #20 0xffffffff805465b3 in sleepq_add (wchan=wchan@entry
> =0xfffff800021d8648,
> > lock=lock@entry=0xfffff80001823340,
> > wmesg=wmesg@entry=0xffffffff808b194e "tq_drain", flags=0,
> > flags@entry=<unavailable>, queue=queue@entry=0)
> > at /usr/src/sys/kern/subr_sleepqueue.c:326
> > #21 0xffffffff804f8efe in _sleep (ident=ident@entry=0xfffff800021d8648,
> > lock=lock@entry=0xfffff80001823340, priority=priority@entry=0,
> > wmesg=0xffffffff808b194e "tq_drain", sbt=sbt@entry=0, pr=pr@entry=0,
> > flags=256) at /usr/src/sys/kern/kern_synch.c:207
> > #22 0xffffffff8054cffb in TQ_SLEEP (tq=0xfffff80001823300,
> > p=0xfffff800021d8648, wm=<optimized out>)
> > at /usr/src/sys/kern/subr_taskqueue.c:124
> > #23 taskqueue_drain (queue=0xfffff80001823300, task=0xfffff800021d8648)
> > at /usr/src/sys/kern/subr_taskqueue.c:614
> > #24 0xffffffff81e2ed35 in vt_kms_postswitch () from /boot/modules/drm.ko
> > #25 0xffffffff8043ac31 in vt_window_switch (vw=0xfffff800021d8648,
> > vw@entry=0xfffff800038fb180) at /usr/src/sys/dev/vt/vt_core.c:612
> > #26 0xffffffff8043b3b2 in vt_late_window_switch (vw=0xfffff800038fb180)
> > at /usr/src/sys/dev/vt/vt_core.c:468
> > #27 vt_proc_window_switch (vw=0xfffff800038fb180)
> > at /usr/src/sys/dev/vt/vt_core.c:553
> > #28 0xffffffff8043e318 in vt_processkey (
> > kbd=0xffffffff80cef898 <default_kbd>, vd=0xffffffff80a472c8
> <vt_consdev>,
> > c=<optimized out>) at /usr/src/sys/dev/vt/vt_core.c:903
> > #29 vt_kbdevent (kbd=0xffffffff80cef898 <default_kbd>, event=<optimized
> out>,
> > arg=0xffffffff80a472c8 <vt_consdev>) at
> /usr/src/sys/dev/vt/vt_core.c:101
> > 8
> > #30 0xffffffff8078ffcf in atkbd_intr (kbd=0xffffffff80cef898
> <default_kbd>,
> > arg=<optimized out>) at /usr/src/sys/dev/atkbdc/atkbd.c:565
> > #31 0xffffffff804b1376 in intr_event_execute_handlers
> (ie=0xfffff800010ece00,
> > p=<optimized out>) at /usr/src/sys/kern/kern_intr.c:1205
> > #32 ithread_execute_handlers (ie=0xfffff800010ece00, p=<optimized out>)
> > at /usr/src/sys/kern/kern_intr.c:1218
> > #33 ithread_loop (arg=arg@entry=0xfffff80001c5aea0)
> > at /usr/src/sys/kern/kern_intr.c:1306
> > #34 0xffffffff804adae2 in fork_exit (
> > callout=0xffffffff804b1120 <ithread_loop>, arg=0xfffff80001c5aea0,
> > frame=0xfffffe00ce259f40) at /usr/src/sys/kern/kern_fork.c:1160
> > #35 <signal handler called>
> > #36 0x0000000000000b88 in ?? ()
> > Backtrace stopped: Cannot access memory at address 0xbc7
> > (kgdb)
> >
> >
> >
> >
> >
> >
>
> Can you submit a PR for this? GFP_KERNEL is an alias for M_WAITOK, which
> is
> verboten when intel_atomic_state_alloc() makes its call to kzalloc(), an
> alias for kmalloc().
>
>
>
Done, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274954
Thank you
> --
> Cheers,
> Cy Schubert <Cy.Schubert@cschubert.com>
> FreeBSD UNIX: <cy@FreeBSD.org> Web: https://FreeBSD.org
> NTP: <cy@nwtime.org> Web: https://nwtime.org
>
> e^(i*pi)+1=0
>
>
>
>
>
[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 7, 2023 at 6:33 AM Cy Schubert <<a href="mailto:Cy.Schubert@cschubert.com">Cy.Schubert@cschubert.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">In message <2806934.Tv9pZ1cZgq@moonset.home>, "Oleg V. Nauman" writes:<br>
> I am observing kernel panic when entering multiuser mode after sucessful <br>
> system boot. It happens when I load CURRENT kernel with INVARIANTS and drm <br>
> module loaded ( drm-515-kmod-5.15.118_1 in particular ) . drm module and kene<br>
> l <br>
> are in sync<br>
><br>
><br>
> FreeBSD moonset.home 15.0-CURRENT FreeBSD 15.0-CURRENT #3 main-n266267-<br>
> e116e040f309: Sun Nov 5 10:00:51 EET 2023 root@moonset.home:/usr/obj/usr<br>
> /<br>
> src/amd64.amd64/sys/moonset amd64<br>
><br>
> panic: sleepq_add: td 0xfffff8000203c000 to sleep on wchan 0xfffff800021d8648<br>
> <br>
> with sleeping prohibited<br>
> ...............<br>
> Reading symbols from /boot/kernel/kernel...<br>
> Reading symbols from /usr/lib/debug//boot/kernel/kernel.debug...<br>
><br>
> Unread portion of the kernel message buffer:<br>
> panic: malloc(M_WAITOK) with sleeping prohibited<br>
> cpuid = 0<br>
> time = 1699171621<br>
> .............<br>
> __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57<br>
> 57 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct <br>
> pcpu,<br>
> (kgdb) #0 __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57<br>
> #1 doadump (textdump=<optimized out>)<br>
> at /usr/src/sys/kern/kern_shutdown.c:405<br>
> #2 0xffffffff81e2ec53 in vt_kms_postswitch () from /boot/modules/drm.ko<br>
> #3 0xffffffff8043ad6e in vt_window_switch (vw=0xfffff800021d8640)<br>
> at /usr/src/sys/dev/vt/vt_core.c:595<br>
> #4 0xffffffff804ec583 in kern_reboot (howto=4)<br>
> at /usr/src/sys/kern/kern_shutdown.c:501<br>
> #5 0xffffffff804eccfa in vpanic (<br>
> fmt=0xffffffff808263fb "malloc(M_WAITOK) with sleeping prohibited",<br>
> ap=ap@entry=0xfffffe00ce259850) at /usr/src/sys/kern/kern_shutdown.c:970<br>
> #6 0xffffffff804ecb03 in panic (fmt=<unavailable>)<br>
> at /usr/src/sys/kern/kern_shutdown.c:894<br>
> #7 0xffffffff804c8a04 in malloc_dbg (vap=<optimized out>,<br>
> sizep=<optimized out>, mtp=<optimized out>, flags=<optimized out>)<br>
> at /usr/src/sys/kern/kern_malloc.c:540<br>
> #8 0xffffffff804c885c in malloc (size=<optimized out>,<br>
> mtp=0xffffffff81e931c0 <M_KMALLOC>, flags=<unavailable>)<br>
> at /usr/src/sys/kern/kern_malloc.c:641<br>
> #9 0xffffffff81c5a750 in intel_atomic_state_alloc ()<br>
> from /boot/modules/i915kms.ko<br>
> #10 0xffffffff81dfe404 in drm_client_modeset_commit_atomic ()<br>
> from /boot/modules/drm.ko<br>
> #11 0xffffffff81dfe614 in drm_client_modeset_commit_locked ()<br>
> from /boot/modules/drm.ko<br>
> #12 0xffffffff81dfe7a1 in drm_client_modeset_commit ()<br>
> from /boot/modules/drm.ko<br>
> #13 0xffffffff81e41ab3 in drm_fb_helper_restore_fbdev_mode_unlocked ()<br>
> from /boot/modules/drm.ko<br>
> #14 0xffffffff81e2ed91 in vt_kms_postswitch () from /boot/modules/drm.ko<br>
> #15 0xffffffff8043ac31 in vt_window_switch (vw=0xfffff80001d3a600,<br>
> vw@entry=0xffffffff80a47178 <vt_conswindow>)<br>
> at /usr/src/sys/dev/vt/vt_core.c:612<br>
> #16 0xffffffff8043be0f in vtterm_cngrab (tm=<unavailable>,<br>
> tm@entry=<error reading variable: value is not available>)<br>
> at /usr/src/sys/dev/vt/vt_core.c:1863<br>
> #17 0xffffffff804893f6 in cngrab () at /usr/src/sys/kern/kern_cons.c:385<br>
> #18 0xffffffff804ecc79 in vpanic (<br>
> fmt=0xffffffff808799a9 "%s: td %p to sleep on wchan %p with sleeping <br>
> prohibited", ap=ap@entry=0xfffffe00ce259c20)<br>
> at /usr/src/sys/kern/kern_shutdown.c:942<br>
> #19 0xffffffff804ecb03 in panic (fmt=<unavailable>)<br>
> at /usr/src/sys/kern/kern_shutdown.c:894<br>
> #20 0xffffffff805465b3 in sleepq_add (wchan=wchan@entry=0xfffff800021d8648,<br>
> lock=lock@entry=0xfffff80001823340,<br>
> wmesg=wmesg@entry=0xffffffff808b194e "tq_drain", flags=0,<br>
> flags@entry=<unavailable>, queue=queue@entry=0)<br>
> at /usr/src/sys/kern/subr_sleepqueue.c:326<br>
> #21 0xffffffff804f8efe in _sleep (ident=ident@entry=0xfffff800021d8648,<br>
> lock=lock@entry=0xfffff80001823340, priority=priority@entry=0,<br>
> wmesg=0xffffffff808b194e "tq_drain", sbt=sbt@entry=0, pr=pr@entry=0,<br>
> flags=256) at /usr/src/sys/kern/kern_synch.c:207<br>
> #22 0xffffffff8054cffb in TQ_SLEEP (tq=0xfffff80001823300,<br>
> p=0xfffff800021d8648, wm=<optimized out>)<br>
> at /usr/src/sys/kern/subr_taskqueue.c:124<br>
> #23 taskqueue_drain (queue=0xfffff80001823300, task=0xfffff800021d8648)<br>
> at /usr/src/sys/kern/subr_taskqueue.c:614<br>
> #24 0xffffffff81e2ed35 in vt_kms_postswitch () from /boot/modules/drm.ko<br>
> #25 0xffffffff8043ac31 in vt_window_switch (vw=0xfffff800021d8648,<br>
> vw@entry=0xfffff800038fb180) at /usr/src/sys/dev/vt/vt_core.c:612<br>
> #26 0xffffffff8043b3b2 in vt_late_window_switch (vw=0xfffff800038fb180)<br>
> at /usr/src/sys/dev/vt/vt_core.c:468<br>
> #27 vt_proc_window_switch (vw=0xfffff800038fb180)<br>
> at /usr/src/sys/dev/vt/vt_core.c:553<br>
> #28 0xffffffff8043e318 in vt_processkey (<br>
> kbd=0xffffffff80cef898 <default_kbd>, vd=0xffffffff80a472c8 <vt_consdev>,<br>
> c=<optimized out>) at /usr/src/sys/dev/vt/vt_core.c:903<br>
> #29 vt_kbdevent (kbd=0xffffffff80cef898 <default_kbd>, event=<optimized out>,<br>
> arg=0xffffffff80a472c8 <vt_consdev>) at /usr/src/sys/dev/vt/vt_core.c:101<br>
> 8<br>
> #30 0xffffffff8078ffcf in atkbd_intr (kbd=0xffffffff80cef898 <default_kbd>,<br>
> arg=<optimized out>) at /usr/src/sys/dev/atkbdc/atkbd.c:565<br>
> #31 0xffffffff804b1376 in intr_event_execute_handlers (ie=0xfffff800010ece00,<br>
> p=<optimized out>) at /usr/src/sys/kern/kern_intr.c:1205<br>
> #32 ithread_execute_handlers (ie=0xfffff800010ece00, p=<optimized out>)<br>
> at /usr/src/sys/kern/kern_intr.c:1218<br>
> #33 ithread_loop (arg=arg@entry=0xfffff80001c5aea0)<br>
> at /usr/src/sys/kern/kern_intr.c:1306<br>
> #34 0xffffffff804adae2 in fork_exit (<br>
> callout=0xffffffff804b1120 <ithread_loop>, arg=0xfffff80001c5aea0,<br>
> frame=0xfffffe00ce259f40) at /usr/src/sys/kern/kern_fork.c:1160<br>
> #35 <signal handler called><br>
> #36 0x0000000000000b88 in ?? ()<br>
> Backtrace stopped: Cannot access memory at address 0xbc7<br>
> (kgdb)<br>
><br>
><br>
><br>
><br>
><br>
><br>
<br>
Can you submit a PR for this? GFP_KERNEL is an alias for M_WAITOK, which is <br>
verboten when intel_atomic_state_alloc() makes its call to kzalloc(), an <br>
alias for kmalloc().<br>
<br><br></blockquote><div><br></div><div>Done, <a href="https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274954">https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274954</a></div><div> </div><div>Thank you</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-- <br>
Cheers,<br>
Cy Schubert <<a href="mailto:Cy.Schubert@cschubert.com" target="_blank">Cy.Schubert@cschubert.com</a>><br>
FreeBSD UNIX: <cy@FreeBSD.org> Web: <a href="https://FreeBSD.org" rel="noreferrer" target="_blank">https://FreeBSD.org</a><br>
NTP: <<a href="mailto:cy@nwtime.org" target="_blank">cy@nwtime.org</a>> Web: <a href="https://nwtime.org" rel="noreferrer" target="_blank">https://nwtime.org</a><br>
<br>
e^(i*pi)+1=0<br>
<br>
<br>
<br>
<br>
</blockquote></div></div>
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAC5YPTsz9zhG6=Rmobt6knamKJXG2DdNmb0MbyymBB=xyzeAzQ>
