Re: svn commit: r360233 - in head: contrib/jemalloc . . . : This partially breaks a 2-socket 32-bit powerpc (old PowerMac G4) based on head -r360311
Mark Millard via freebsd-ppc <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.ppc |
|---|---|
| Message-ID | <[email protected]> |
On 2020-Jun-16, at 19:32, Justin Hibbits <[email protected]> wrote: > (Removing hackers and current, too many cross-lists already, and those > interested in reading this are probably already on ppc@) > > Mark, > > Can you try this updated patch? Again, I've only compiled it, I > haven't tested it, so it may also explode. However, it more closely > mimics exactly what moea64 does. Sure . . . But no luck. Same crash, same backtrace related information, other than the "in page" figure and the "time" figure: panic: vm_page_free_prep: mapping flags set in page 0xd0300fc0 cpuid = 0 time = 1592362496 KDB: stack backtrace: 0xd2dc4340: at kdb_backtrace+0x64 0xd2dc43a0: at vpanic+0x208 0xd2dc4410: at panic+0x64 0xd2dc4450: at vm_page_free_prep+0x348 0xd2dc4470: at vm_page_free_toq+0x3c 0xd2dc4490: at vm_page_free+0x20 0xd2dc44a0: at vm_object_collapse+0x4ac 0xd2dc4510: at vm_object_deallocate+0x430 0xd2dc4550: at vm_map_process_deferred+0xec 0xd2dc4570: at vm_map_remove+0x12c 0xd2dc4590: at exec_new_vmspace+0x20c 0xd2dc45f0: at exec_elf32_imgact+0xa70 0xd2dc46a0: at kern_execve+0x600 0xd2dc4910: at sys_execve+0x84 0xd2dc4970: at trap+0x748 0xd2dc4a10: at powerpc_interrupt+0x178 0xd2dc4a40: user SC trap by 0x100d71f8: srr1=0xf032 r1=0xffffd810 cr=0x82000280 xer=0 ctr=0x10173810 frame=0xd2dc4a48 KDB: enter: panic /wrkdirs/usr/ports/devel/gdb/work-py37/gdb-9.1/gdb/inferior.c:283: internal-error: struct inferior *find_inferior_pid(int): Assertion `pid != 0' failed. FYI . . . (m->a.flags & (PGA_EXECUTABLE | PGA_WRITEABLE)) == 0 is failing when (m->oflags & VPO_UNMANAGED) == 0 holds in vm_page_free_prep. See the last KASSERT in the code quoted below. Does this suggest the lack of someplace not clearing some flags in m->a.flags that should be doing so? static bool vm_page_free_prep(vm_page_t m) { /* * Synchronize with threads that have dropped a reference to this * page. */ atomic_thread_fence_acq(); #if defined(DIAGNOSTIC) && defined(PHYS_TO_DMAP) if (PMAP_HAS_DMAP && (m->flags & PG_ZERO) != 0) { uint64_t *p; int i; p = (uint64_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); for (i = 0; i < PAGE_SIZE / sizeof(uint64_t); i++, p++) KASSERT(*p == 0, ("vm_page_free_prep %p PG_ZERO %d %jx", m, i, (uintmax_t)*p)); } #endif if ((m->oflags & VPO_UNMANAGED) == 0) { KASSERT(!pmap_page_is_mapped(m), ("vm_page_free_prep: freeing mapped page %p", m)); KASSERT((m->a.flags & (PGA_EXECUTABLE | PGA_WRITEABLE)) == 0, ("vm_page_free_prep: mapping flags set in page %p", m)); } else { . . . === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ppc To unsubscribe, send any mail to "[email protected]"