RMI status

C. Jayachandran c.jayachandran at gmail.com
Thu Feb 11 17:15:39 UTC 2010


On Thu, Feb 11, 2010 at 9:08 PM, Randall Stewart <rrs at 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.


More information about the freebsd-mips mailing list