Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Early crash on SB2000 (panic: init: no memory)



Hi,

Martin suggested that I try allocating enough space for a few extra entries
after the OF_getproplen() call in pmap_read_memlist(), and set the number
of entries from the following call to OF_getprop().  I tried this with 2
extra entries added, and this part works OK (length 6, space for 8, read 7).
However, the entries that I get are:

  memlist start 1ffea0000 size 2000
  memlist start 1ffe8c000 size 4000
  memlist start 1ffdb0000 size a0000
  memlist start 1ffc00000 size 1a0000
  memlist start 1fec00000 size 3fe000
  memlist start 1fe008000 size 7f8000
  memlist start 0 size 1ffea0000

and then a panic:

  Failed to find page with physical address 0x1fe800000
  panic: kernel diagnostic assertion "lcv != -1" failed: file 
"/usr/src/sys/uvm/uvm_page.c", line 2026

I'm guessing that this is a symptom of the overlapping entries above (the
last overlaps all but the first).  For comparison, the same kernel booted
over the network shows:

  memlist start 1ffe8c000 size 16000
  memlist start 1ffe70000 size a000
  memlist start 1ffdb0000 size a0000
  memlist start 1ffc00000 size 1a0000
  memlist start 1fec00000 size 3fe000
  memlist start 1fe008000 size 7f8000
  memlist start 0 size 1fe000000

Is it possible that we're doing something that causes the overlapping entries
in some circumstances, or is there a firmware bug that we tickle?

The next step will be to remove the smaller of any overlapping entries in
pmap_bootstrap(), after the inlined bubble sort (pmap.c:820) and see if
that fixes the panic.  However, maybe there is some better way of dealing
with this?

Thanks,

J

-- 
   NetBSD: simple; works; documented    /        Sailing at Newbiggin
        http://www.netbsd.org/        /   http://www.newbigginsailingclub.org/


Home | Main Index | Thread Index | Old Index