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]