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
opensolaris-discuss@opensolaris.org

Reply via email to