I enhanced Thierry Falissards "SUSEC" REXX Exec which is available from
http://www.os390-mvs.freesurf.fr/mipsmvs.htm
My version also takes into account the so called specialty engines (zIIP and zAAP).
Here is the code:
/* REXX */
CVT = STORAGE(10,4)
RMCT = STORAGE(D2X(C2D(CVT)+604),4)
SU = STORAGE(D2X(C2D(RMCT)+64),4)
SU = 16000000/C2D(SU)
SAY 'SU/SEC FACTOR IS' SU ,
'(1 CPU SECOND EQUALS' SU 'SERVICE UNITS)'
CVTPCCAT = STORAGE(D2X(C2D(CVT)+764),4)
SAY 'PCCA VECTOR TABLE AT' C2X(CVTPCCAT)
I = 0
P = 0
NUMIFA = 0
NUMZIIP = 0
SAY '----------------------------------------------------------------'
SAY ' PROC IFA ZIIP WLM VERSION CPUID MODEL RELATIVE PCCA '
SAY 'NUMBER CODE SPEED ADDRESS'
SAY '----------------------------------------------------------------'
Do While I < 64
PCCA = STORAGE(D2X(C2D(CVTPCCAT)+I*4),4)
IF PCCA ^= '00000000'X THEN DO
PCCAPCCA = STORAGE(D2X(C2D(PCCA)),4)
PCCAVC = STORAGE(D2X(C2D(PCCA)+4),2)
PCCACPID = STORAGE(D2X(C2D(PCCA)+6),6)
PCCAMDL = STORAGE(D2X(C2D(PCCA)+12),4)
PCCACPUA = X2D(C2X(STORAGE(D2X(C2D(PCCA)+16),2)))
PCCARSPR = X2D(C2X(STORAGE(D2X(C2D(PCCA)+52),4)))
PCCAATTR = STORAGE(D2X(C2D(PCCA)+376),1)
PCCARCFF = STORAGE(D2X(C2D(PCCA)+379),1) /* reconfig flags */
If Bitand(PCCAATTR,'01'x)='01'x Then Do /* IFA */
IFA = 'Y'
NUMIFA = NUMIFA + 1
End
Else
IFA = ' '
If Bitand(PCCAATTR,'04'x)='04'x Then Do /* zIIP */
ZIIP = 'Y'
NUMZIIP = NUMZIIP + 1
End
Else
ZIIP = ' '
If Bitand(PCCARCFF,'80'x)='80'x Then /* WLM on-/offline */
WLM = 'Y'
Else
WLM = ' '
IF PCCAPCCA = 'PCCA' THEN DO
SAY ' ' RIGHT(PCCACPUA,2) ' 'IFA' 'ZIIP' 'WLM' ' PCCAVC' ',
PCCACPID' '!!PCCAMDL ' ' RIGHT(PCCARSPR,8) ' ' C2X(PCCA)
P = P + 1
END
END
I = I + 1
END
IF P > 1 THEN PROCS = 'Processors'
ELSE PROCS = 'Processor'
SAY
SAY P PROCS 'in this complex'
MIPS = SU/48.5
SAY
SAY '** Total MIPS :' RIGHT(MIPS*P,12)
IF P > 1 THEN SAY ,
'** Equivalent Uniprocessor MIPS :' RIGHT(MIPS,12)
/* */
/* MSU EVALUATION */
/* */
MSU = SU*(P-NUMIFA-NUMZIIP)*3600/1000000
SAY FORMAT(MSU,,0) 'MSU (FOR PSLC PRICING -'
No comments:
Post a Comment