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()));

It's 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

Note the comment where these are defined:

/*
  * XX64 need a comment here.. are these just default values, surely
  * we read the "cpuid" type information to figure this out.
  */
int     l2cache_sz = 0x80000;
int     l2cache_linesz = 0x40;
int     l2cache_assoc = 1;

Gavin
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to