Gavin wrote:
> On 07/07/07 18:55, Dennis Clarke wrote:
> > after BFU of snv_68 :
> >
> > module /platform/i86pc/kernel//unix: text at [0xfe800000, 0xfe8d4a8b] data
> > at 0xfec00000
> > module /kernel/genunix: text at [0xfe8d4a90, 0xfead88ff] data at 0xfec4cdc0
> >
> > panic[cpu0]/thread=fec1f2e0: assertion failed: ((((l2cache_assoc ?
> > (l2cache_sz / l2cache_assoc) : 0x1000)) & (((l2cache_assoc ? (l2cache_sz /
> > l2cache_assoc) : 0x1000)) - 1)) == 0), file
> >
> > fec382d0 genunix:assfail+5a (fe8c936c, fe8c95ec,)
> > fec38300 unix:page_coloring_init+35a (20000, 40, a)
> > fec38358 unix:startup_memlist+3f5 (fec38384, fe954503,)
> > fec38360 unix:startup+1c (fe800010, fec34128,)
> > fec38384 genunix:main+5b ()
>
> That is this assert:
>
> ASSERT(ISP2(CPUSETSIZE()));
> checking that the number of distinct l2 sets is a power of 2:
>
> #define CPUSETSIZE() \
> (l2cache_assoc ? (l2cache_sz / l2cache_assoc) : MMU_PAGESIZE)
> #define ISP2(x) (((x) & ((x) - 1)) == 0)
>
> So could you boot under kmdb and at the time of panic
> (when you drop to the debugger) utter:
>
> l2cache_assoc/D
> l2cache_sz/X
> l2cache_linesz/D
Hmm, startup_memlist+3f5 passes these as parameters to page_coloring_init(),
so if we trust the parameters shown in the stack backtrace, we have
pagecolor_memsz =
page_coloring_init(l2cache_sz, l2cache_linesz, l2cache_assoc);
fec38300 unix:page_coloring_init+35a (20000, 40, a)
l2cache_sz == 0x20000,
l2cache_linesz == 0x40,
l2cache_assoc == 0xa
That should give us a CPUSETSIZE() of 0x20000 / 0xa == 0x3333,
which is not a power of 2.
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
[email protected]