Date: Thu, 11 Feb 2010 22:45:37 +0530 From: "C. Jayachandran" <c.jayachandran@gmail.com> To: Randall Stewart <rrs@lakerest.net> Cc: Jayachandran C <jayachandranc@netlogicmicro.com>, Harrison Zou <hzou@netlogicmicro.com>, Warner Losh <imp@freebsd.org>, freebsd-mips@freebsd.org Subject: Re: RMI status Message-ID: <98a59be81002110915l2fa64189g28f13f8ad39c9584@mail.gmail.com> In-Reply-To: <A718B150-C815-414E-947D-9FD94830DD7D@lakerest.net> References: <5709963B-3F83-44FE-991F-A3227A2052DC@lakerest.net> <98a59be81002110655y60ab4e8cj473f4b6ecf6f5ae4@mail.gmail.com> <A718B150-C815-414E-947D-9FD94830DD7D@lakerest.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 11, 2010 at 9:08 PM, Randall Stewart <rrs@lakerest.net> wrote: >> >> I usually try buildworld with '-j16' to stress the system, I got the >> crash after a few hours of buildworld. Anyway I will update to the >> latest trunk, remove my local changes and see if I get the same issue. >> If I can get it to crash consistently on my setup, I'll do some more >> work on this. > > Ahh.. I don't use a -jN since there is only one core > currently... That would use more memory... maybe running > the kernel out of memory below the magic 512Meg mark. If that > happens things will break... > I think you are right - I added the following patch (probably whitespace damaged) to trap this case and it certainly seems to get pages above 256M before it crashed(on XLR the default bootloader maps physmem from 0-256M after that is IO and flash mapping). Index: sys/mips/mips/pmap.c =================================================================== --- sys/mips/mips/pmap.c (revision 203767) +++ sys/mips/mips/pmap.c (working copy) @@ -1049,6 +1049,9 @@ pmap->pm_segtab = (pd_entry_t *) MIPS_PHYS_TO_CACHED(VM_PAGE_TO_PHYS(ptdpg)); + if (VM_PAGE_TO_PHYS(ptdpg) > 0x10000000) + printf("PM segtab pa=%lx va=%lx\n", (u_long)VM_PAGE_TO_PHYS(ptdpg), + (u_long)pmap->pm_segtab); if ((ptdpg->flags & PG_ZERO) == 0) bzero(pmap->pm_segtab, PAGE_SIZE); @@ -1116,6 +1119,8 @@ ptepa = VM_PAGE_TO_PHYS(m); pteva = MIPS_PHYS_TO_CACHED(ptepa); + if (ptepa > 0x10000000) + printf("Bad page allocated ptepa=%lx pteva %lx\n", (u_long)ptepa, (u_long)pteva); pmap->pm_segtab[ptepindex] = (pd_entry_t)pteva; /* got the following prints: Bad page allocated ptepa=3f401000 pteva bf401000 Bad page allocated ptepa=3f402000 pteva bf402000 Bad page allocated ptepa=3f403000 pteva bf403000 PM segtab pa=3f404000 va=bf404000 Bad page allocated ptepa=3f405000 pteva bf405000 Bad page allocated ptepa=3f406000 pteva bf406000 Bad page allocated ptepa=3f407000 pteva bf407000 Bad page allocated ptepa=3f408000 pteva bf408000 Bad page allocated ptepa=3f409000 pteva bf409000 PM segtab pa=3f40a000 va=bf40a000 Bad page allocated ptepa=3f40b000 pteva bf40b000 Bad page allocated ptepa=3f40c000 pteva bf40c000 Bad page allocated ptepa=3f40d000 pteva bf40d000 Bad page allocated ptepa=3f40e000 pteva bf40e000 I am checking things again to see I haven't missed anything. JC.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?98a59be81002110915l2fa64189g28f13f8ad39c9584>