OpenSolaris

Printable Version Enter a New Search
Bug ID 6540634
Synopsis sparc sn1 brand fail on platforms where NCPU > 31
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:brandz
Keywords
Responsible Engineer Edward Pilatowicz
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_64
Fixed In snv_64
Release Fixed solaris_nevada(snv_64) , solaris_10u5(s10u5_01) (Bug ID:2151495)
Related Bugs 6539890
Submit Date 29-March-2007
Last Update Date 14-May-2007
Description
if you try to boot the sn1 brand on a sparc plaform where NCPU > 31, things will
go south very quickly.  the reason is that the brand module trap code uses the
CPU_ADDR macro, which relies on the CPU_INDEX macro, which is dependant upon
CPU_MASK.  CPU_MASK can vary between platforms and on large platforms (like
starcat) it can be well above 31.  this causes the brand trap code to wander
off into the weeds and the machine panics.  either a seperate brand module
needs to be delivered for each platform, or the code that's dependant upon
NCPUs needs to be moved out of the brand module.
rather than delivering a seperate brand modulde for every platform, the fix
for this bug involves removing the use of the CPU macros from the brand
module and instead looking up the address of the current cpu structure in the
trap table code and passing it to the brand callback module as a parameter
(stored in %g2).
Work Around
N/A
Comments
N/A