Date: Thu, 2 Jan 2020 14:58:16 +0100 From: Idwer Vollering <vidwer@gmail.com> To: Michael Tuexen <tuexen@freebsd.org> Cc: bob prohaska <fbsd@www.zefox.net>, freebsd-arm@freebsd.org, freebsd-current <freebsd-current@freebsd.org> Subject: Re: panic: vm_page_astate_fcmpset: invalid head requeue request on RPI3 Message-ID: <CAPp9OrkZ5UeaY32b%2BzzOXuf91UBEpRt-dMbVAH7_JWXG6gZ-7A@mail.gmail.com> In-Reply-To: <AE617FD7-3215-43FC-8D11-F1C4D1FC7B39@freebsd.org> References: <20200102001231.GA84583@www.zefox.net> <AE617FD7-3215-43FC-8D11-F1C4D1FC7B39@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This can happen on amd64, on r356262, too. $ kgdb /boot/kernel/kernel vmcore.0 GNU gdb (GDB) 8.3.1 [GDB v8.3.1 for FreeBSD] Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-portbld-freebsd13.0". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /boot/kernel/kernel... Reading symbols from /usr/lib/debug//boot/kernel/kernel.debug... Unread portion of the kernel message buffer: panic: vm_page_astate_fcmpset: invalid head requeue request for page 0xfffffe0001c8a7b8 cpuid = 2 time = 1577970641 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00567ff710 vpanic() at vpanic+0x17e/frame 0xfffffe00567ff770 panic() at panic+0x43/frame 0xfffffe00567ff7d0 _vm_page_pqstate_commit_dequeue() at _vm_page_pqstate_commit_dequeue+0x34f/frame 0xfffffe00567ff840 vm_page_pqstate_commit_dequeue() at vm_page_pqstate_commit_dequeue+0x96/frame 0xfffffe00567ff880 vm_page_pqstate_commit() at vm_page_pqstate_commit+0x46/frame 0xfffffe00567ff8b0 vm_pageout_laundry_worker() at vm_pageout_laundry_worker+0x5be/frame 0xfffffe00567ffb30 fork_exit() at fork_exit+0x80/frame 0xfffffe00567ffb70 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00567ffb70 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- KDB: enter: panic __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55 55 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu, (kgdb) bt #0 __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55 #1 doadump (textdump=0) at /usr/src/sys/kern/kern_shutdown.c:392 #2 0xffffffff8049bbba in db_dump (dummy=<optimized out>, dummy2=<unavailable>, dummy3=<unavailable>, dummy4=<unavailable>) at /usr/src/sys/ddb/db_command.c:575 #3 0xffffffff8049b97c in db_command (last_cmdp=<optimized out>, cmd_table=<optimized out>, dopager=1) at /usr/src/sys/ddb/db_command.c:482 #4 0xffffffff8049b6ed in db_command_loop () at /usr/src/sys/ddb/db_command.c:535 #5 0xffffffff8049e918 in db_trap (type=<optimized out>, code=<optimized out>) at /usr/src/sys/ddb/db_main.c:252 #6 0xffffffff80c15ab7 in kdb_trap (type=3, code=0, tf=<optimized out>) at /usr/src/sys/kern/subr_kdb.c:691 #7 0xffffffff8106a9d4 in trap (frame=0xfffffe00567ff640) at /usr/src/sys/amd64/amd64/trap.c:585 #8 <signal handler called> #9 kdb_enter (why=0xffffffff811f6c89 "panic", msg=<optimized out>) at /usr/src/sys/kern/subr_kdb.c:478 #10 0xffffffff80bca46a in vpanic (fmt=<optimized out>, ap=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:897 #11 0xffffffff80bca203 in panic (fmt=0xffffffff81c7b008 <cnputs_mtx> "\260\266\033\201\377\377\377\377") at /usr/src/sys/kern/kern_shutdown.c:835 #12 0xffffffff80f2bb8f in _vm_page_pqstate_commit_dequeue (pq=<optimized out>, m=0xfffffe0001c8a7b8, old=0xfffffe00567ff900, new=...) at /usr/src/sys/vm/vm_page.h:790 #13 0xffffffff80f27d76 in vm_page_pqstate_commit_dequeue (m=0xfffffe0001c8a7b8, old=0xfffffe00567ff900, new=...) at /usr/src/sys/vm/vm_page.c:3369 #14 0xffffffff80f27c06 in vm_page_pqstate_commit (m=0xfffffe0001c8a7b8, old=0x80, new=...) at /usr/src/sys/vm/vm_page.c:3446 #15 0xffffffff80f2e82e in vm_pageout_launder (vmd=<optimized out>, launder=982, in_shortfall=<optimized out>) at /usr/src/sys/vm/vm_pageout.c:839 #16 vm_pageout_laundry_worker (arg=<optimized out>) at /usr/src/sys/vm/vm_pageout.c:1101 #17 0xffffffff80b87650 in fork_exit (callout=0xffffffff80f2e270 <vm_pageout_laundry_worker>, arg=0x0, frame=0xfffffe00567ffb80) at /usr/src/sys/kern/kern_fork.c:1058 #18 <signal handler called> (kgdb) up #1 doadump (textdump=0) at /usr/src/sys/kern/kern_shutdown.c:392 392 dumptid = curthread->td_tid; (kgdb) #2 0xffffffff8049bbba in db_dump (dummy=<optimized out>, dummy2=<unavailable>, dummy3=<unavailable>, dummy4=<unavailable>) at /usr/src/sys/ddb/db_command.c:575 575 error = doadump(false); (kgdb) #3 0xffffffff8049b97c in db_command (last_cmdp=<optimized out>, cmd_table=<optimized out>, dopager=1) at /usr/src/sys/ddb/db_command.c:482 482 (*cmd->fcn)(addr, have_addr, count, modif); (kgdb) #4 0xffffffff8049b6ed in db_command_loop () at /usr/src/sys/ddb/db_command.c:535 535 db_command(&db_last_command, &db_cmd_table, /* dopager */ 1); (kgdb) #5 0xffffffff8049e918 in db_trap (type=<optimized out>, code=<optimized out>) at /usr/src/sys/ddb/db_main.c:252 252 db_command_loop(); (kgdb) #6 0xffffffff80c15ab7 in kdb_trap (type=3, code=0, tf=<optimized out>) at /usr/src/sys/kern/subr_kdb.c:691 691 handled = be->dbbe_trap(type, code); (kgdb) #7 0xffffffff8106a9d4 in trap (frame=0xfffffe00567ff640) at /usr/src/sys/amd64/amd64/trap.c:585 585 if (kdb_trap(type, dr6, frame)) (kgdb) #8 <signal handler called> (kgdb) #9 kdb_enter (why=0xffffffff811f6c89 "panic", msg=<optimized out>) at /usr/src/sys/kern/subr_kdb.c:478 478 kdb_why = KDB_WHY_UNSET; (kgdb) #10 0xffffffff80bca46a in vpanic (fmt=<optimized out>, ap=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:897 897 kdb_enter(KDB_WHY_PANIC, "panic"); (kgdb) #11 0xffffffff80bca203 in panic (fmt=0xffffffff81c7b008 <cnputs_mtx> "\260\266\033\201\377\377\377\377") at /usr/src/sys/kern/kern_shutdown.c:835 835 vpanic(fmt, ap); (kgdb) #12 0xffffffff80f2bb8f in _vm_page_pqstate_commit_dequeue (pq=<optimized out>, m=0xfffffe0001c8a7b8, old=0xfffffe00567ff900, new=...) at /usr/src/sys/vm/vm_page.h:790 790 KASSERT((new.flags & PGA_ENQUEUED) == 0 || new.queue != PQ_NONE, (kgdb) #13 0xffffffff80f27d76 in vm_page_pqstate_commit_dequeue (m=0xfffffe0001c8a7b8, old=0xfffffe00567ff900, new=...) at /usr/src/sys/vm/vm_page.c:3369 3369 ret = _vm_page_pqstate_commit_dequeue(pq, m, old, new); (kgdb) #14 0xffffffff80f27c06 in vm_page_pqstate_commit (m=0xfffffe0001c8a7b8, old=0x80, new=...) at /usr/src/sys/vm/vm_page.c:3446 3446 if (!vm_page_pqstate_commit_dequeue(m, old, new)) (kgdb) #15 0xffffffff80f2e82e in vm_pageout_launder (vmd=<optimized out>, launder=982, in_shortfall=<optimized out>) at /usr/src/sys/vm/vm_pageout.c:839 839 if (!vm_page_pqstate_commit(m, &old, new)) (kgdb) #16 vm_pageout_laundry_worker (arg=<optimized out>) at /usr/src/sys/vm/vm_pageout.c:1101 1101 target -= min(vm_pageout_launder(vmd, launder, (kgdb) #17 0xffffffff80b87650 in fork_exit (callout=0xffffffff80f2e270 <vm_pageout_laundry_worker>, arg=0x0, frame=0xfffffe00567ffb80) at /usr/src/sys/kern/kern_fork.c:1058 1058 callout(arg, frame); (kgdb) #18 <signal handler called> (kgdb) Initial frame selected; you cannot go up. Op do 2 jan. 2020 om 12:03 schreef Michael Tuexen <tuexen@freebsd.org>: > > > On 2. Jan 2020, at 01:12, bob prohaska <fbsd@www.zefox.net> wrote: > > > > While playing at compiling www/chromium using > > FreeBSD 13.0-CURRENT (GENERIC) #2 r356165: Mon Dec 30 09:59:03 PST 2019 > > the machine crashed, reporting > > panic: vm_page_astate_fcmpset: invalid head requeue request for page 0xfffffd0031880490 > This problem is NOT arm specific. I've seen it on an amd64 system running syzkaller: > http://212.201.121.91:10000/crash?id=00704eb865e893ffda473a4859e062eef512cbde > > Best regards > Michael > > > > cpuid = 2 > > time = 1577921727 > > KDB: stack backtrace: > > db_trace_self() at db_trace_self_wrapper+0x28 > > pc = 0xffff000000735c5c lr = 0xffff000000106814 > > sp = 0xffff0000521ec240 fp = 0xffff0000521ec450 > > > > db_trace_self_wrapper() at vpanic+0x18c > > pc = 0xffff000000106814 lr = 0xffff000000408d90 > > sp = 0xffff0000521ec460 fp = 0xffff0000521ec510 > > > > vpanic() at panic+0x44 > > pc = 0xffff000000408d90 lr = 0xffff000000408b40 > > sp = 0xffff0000521ec520 fp = 0xffff0000521ec5a0 > > > > panic() at _vm_page_pqstate_commit_dequeue+0x340 > > pc = 0xffff000000408b40 lr = 0xffff0000006ed840 > > sp = 0xffff0000521ec5b0 fp = 0xffff0000521ec5f0 > > > > _vm_page_pqstate_commit_dequeue() at vm_page_pqstate_commit_dequeue+0xb8 > > pc = 0xffff0000006ed840 lr = 0xffff0000006e954c > > sp = 0xffff0000521ec600 fp = 0xffff0000521ec640 > > > > vm_page_pqstate_commit_dequeue() at vm_page_pqstate_commit+0x50 > > pc = 0xffff0000006e954c lr = 0xffff0000006e93ac > > sp = 0xffff0000521ec650 fp = 0xffff0000521ec670 > > > > vm_page_pqstate_commit() at vm_pageout_laundry_worker+0x5e4 > > pc = 0xffff0000006e93ac lr = 0xffff0000006f02c0 > > sp = 0xffff0000521ec680 fp = 0xffff0000521ec940 > > > > vm_pageout_laundry_worker() at fork_exit+0x7c > > pc = 0xffff0000006f02c0 lr = 0xffff0000003c7fdc > > sp = 0xffff0000521ec950 fp = 0xffff0000521ec980 > > > > fork_exit() at fork_trampoline+0x10 > > pc = 0xffff0000003c7fdc lr = 0xffff00000075230c > > sp = 0xffff0000521ec990 fp = 0x0000000000000000 > > > > KDB: enter: panic > > [ thread pid 21 tid 100071 ] > > Stopped at 0 > > db> bt > > Tracing pid 21 tid 100071 td 0xfffffd0001078560 > > db_trace_self() at db_stack_trace+0xf8 > > pc = 0xffff000000735c5c lr = 0xffff000000103c58 > > sp = 0xffff0000521ebe10 fp = 0xffff0000521ebe40 > > > > db_stack_trace() at db_command+0x228 > > pc = 0xffff000000103c58 lr = 0xffff0000001038d0 > > sp = 0xffff0000521ebe50 fp = 0xffff0000521ebf30 > > > > db_command() at db_command_loop+0x58 > > pc = 0xffff0000001038d0 lr = 0xffff000000103678 > > sp = 0xffff0000521ebf40 fp = 0xffff0000521ebf60 > > > > db_command_loop() at db_trap+0xf4 > > pc = 0xffff000000103678 lr = 0xffff00000010697c > > sp = 0xffff0000521ebf70 fp = 0xffff0000521ec190 > > > > db_trap() at kdb_trap+0x1d8 > > pc = 0xffff00000010697c lr = 0xffff0000004510d0 > > sp = 0xffff0000521ec1a0 fp = 0xffff0000521ec250 > > > > kdb_trap() at do_el1h_sync+0xf4 > > pc = 0xffff0000004510d0 lr = 0xffff000000752588 > > sp = 0xffff0000521ec260 fp = 0xffff0000521ec290 > > > > do_el1h_sync() at handle_el1h_sync+0x78 > > pc = 0xffff000000752588 lr = 0xffff000000738078 > > sp = 0xffff0000521ec2a0 fp = 0xffff0000521ec3b0 > > > > handle_el1h_sync() at kdb_enter+0x34 > > pc = 0xffff000000738078 lr = 0xffff00000045071c > > sp = 0xffff0000521ec3c0 fp = 0xffff0000521ec450 > > > > kdb_enter() at vpanic+0x1a8 > > pc = 0xffff00000045071c lr = 0xffff000000408dac > > sp = 0xffff0000521ec460 fp = 0xffff0000521ec510 > > > > vpanic() at panic+0x44 > > pc = 0xffff000000408dac lr = 0xffff000000408b40 > > sp = 0xffff0000521ec520 fp = 0xffff0000521ec5a0 > > > > panic() at _vm_page_pqstate_commit_dequeue+0x340 > > pc = 0xffff000000408b40 lr = 0xffff0000006ed840 > > sp = 0xffff0000521ec5b0 fp = 0xffff0000521ec5f0 > > > > _vm_page_pqstate_commit_dequeue() at vm_page_pqstate_commit_dequeue+0xb8 > > pc = 0xffff0000006ed840 lr = 0xffff0000006e954c > > sp = 0xffff0000521ec600 fp = 0xffff0000521ec640 > > > > vm_page_pqstate_commit_dequeue() at vm_page_pqstate_commit+0x50 > > pc = 0xffff0000006e954c lr = 0xffff0000006e93ac > > sp = 0xffff0000521ec650 fp = 0xffff0000521ec670 > > > > vm_page_pqstate_commit() at vm_pageout_laundry_worker+0x5e4 > > pc = 0xffff0000006e93ac lr = 0xffff0000006f02c0 > > sp = 0xffff0000521ec680 fp = 0xffff0000521ec940 > > > > vm_pageout_laundry_worker() at fork_exit+0x7c > > pc = 0xffff0000006f02c0 lr = 0xffff0000003c7fdc > > sp = 0xffff0000521ec950 fp = 0xffff0000521ec980 > > > > fork_exit() at fork_trampoline+0x10 > > pc = 0xffff0000003c7fdc lr = 0xffff00000075230c > > sp = 0xffff0000521ec990 fp = 0x0000000000000000 > > > > db> > > > > Thanks for reading, if there's anything to try please let me know. > > > > bob prohaska > > > > _______________________________________________ > > freebsd-arm@freebsd.org mailing list > > https://lists.freebsd.org/mailman/listinfo/freebsd-arm > > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org" > > _______________________________________________ > 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?CAPp9OrkZ5UeaY32b%2BzzOXuf91UBEpRt-dMbVAH7_JWXG6gZ-7A>