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