CHARON-VAX/CHARON-AXP / OpenVMS fails with "Fatal BUG CHECK: CPUSPINWAIT, CPU spinwait timer expired
" message
When running CHARON, there are two most typical reasons that can cause this problem:
The timeout which causes the bug check is managed by two internal VMS parameters and by one parameter which can be set though SYSGEN (modparams.dat).
Internal parameters, calculated automatically on OpenVMS startup, are CPU$L_TENUSEC
and CPU$L_UBDELAY
. They depend on hardware (in case of CHARON – on Intel) performance and are out of our control.
The third parameter we can manage is SGN$GL_SMP_SPINWAIT
or SGN$GL_SMP_LNGSPINWAIT
on older OpenVMS versions
VMS takes these 3 parameters, multiplies them, and uses the result to calculate the loop counter which will be used to measure the delay:
(SP) = SGN$GL_SMP_SPINWAIT * CPU$L_TENUSEC * CPU$L_UBDELAY |
A potential issue here is that all three source variables are LONG INT. The result (SP) is also a LONG INT. So, if the result of multiplication exceeds 2^32, it could actually result in a very small number.
We recommend reducing the value of |
We highly recommend not changing the value of |
.
Example / OpenVMS 7.3-2 using SYSGEN
|
You should also update the MODPARAMS.DAT
file and run AUTOGEN
to store the new value that must survive a reboot. Please refer to your OpenVMS version documentation.
.
Definitions (from HP OpenVMS Systems Documentation)
|