A fix is available
APAR status
Closed as program error.
Error description
Perfkit FCX100 CPU Load and Transactions Report has excessive CPU values due to errors in Monitor D0R2 field SYTPRP_PFXTOTWT. The values reported in Domain 0, Record 2 SYTPRP_PFXTOTWT occasionally regress, reporting less cumulative wait time than the prior record.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Customers using Monitor or Perfkit * **************************************************************** * PROBLEM DESCRIPTION: * **************************************************************** * RECOMMENDATION: APPLY PTF * **************************************************************** Perfkit FCX100 CPU Load and Transactions Screen reports CPU values that are excessive when values reported in Monitor Domain 0, Record 2 SYTPRP_PFXTOTWT regress, reporting less cumulative wait time than was reported in the prior record. This may occur when a processor appears to be in wait state when Monitor records the value SYTPRP_PFXTOTWT, but exits wait before Monitor completes its calculations. APAR VM66105 changed the algorithm for SYTPRP_PFXTOTWT value reporting to improve accuracy. The accuracy problem was due to the fact that the wait state timer is only updated when a processor exits wait state. If the processor was in wait state for an entire Monitor interval, then SYTPRP_PFXTOTWT would not increase for that interval, but would jump ahead by a large mount when the processor eventually exited wait state. APAR VM66105 corrected that problem by having Monitor adjust the reported value by calculating the elapsed time since the processor entered wait state. The problem occurs when Monitor sees the processor as in wait state just as that processor is exiting wait state. Monitor calculates a delta to add to SYTPRP_PFXTOTWT which is larger than the delta that the waking processor wait timer actually changed. In the next interval Monitor sees the processor is not in wait state and reports an unmodified wait timer value in SYTPRP_PFXTOTWT which indicates less cumulative wait time than it reported in the previous interval. SYTPRP_PFXTOTWT is reported in CPU Timer format so that the value decreases as wait time increases. In the case of the reported problem the SYTPRP_PFXTOTWT value increased in the next interval which corresponds to less cumulative wait time. In customer supplied data and experiments to recreate the problem, the amount of regression was in the range of a few milliseconds. Although this may seem insignificant, the calculation of the difference between the values from two intervals ends up as a negative value. Perfkit should never get a negative value so it is unprepared for that case and the value is treated as a very large unsigned number instead.
Problem conclusion
The smallest possible Monitor interval is 6 seconds. As noted earlier, the amount of regression in the wait time value is very small. If the error was even as large as 10 milliseconds then the error would be roughly 0.16%. To prevent the SYTPRP_PFXTOTWT value from regressing, Monitor will remember the value that was reported for the prior interval to determine whether an adjustment is needed when it next reports SYTPRP_PFXTOTWT. Code changes were made to: HCPPLSBK COPY - added PLSTOTWT for Monitor to remember what was reported in SYTPRP_PFXTOTWT for each processor. - added PLSTOTWTLO to use to track the largest amount of regression in SYTPRP_PFXTOTWT values. HCPMNY PLX - uses PLSTOTWT and PLSTOTWTLO this way: a. PLSTOTWT = 0 indicates it has not been used and needs to be initialized so set PLSTOTWT to newly calculated SYTPRP_PFXTOTWT. b. PLSTOTWT < newly calculated SYTPRP_PFXTOTWT. Monitor reported more total wait time last interval. Set SYTPRP_PFXTOTWT = PLSTOTWT. to report the same value in this interval. Also calculate the amount of regression avoided. If that value is larger than the current PLSTOTWTLO value then set PLSTOTWTLO to the newly calculated difference. c. PLSTOTWT > newly calculated SYTPRP_PFXTOTWT then the processor has been in wait state longer than was last reported. Therefore set PLSTOTWT to newly calculated SYTPRP_PFXTOTWT to remember the new value.
Temporary fix
FOR RELEASE VM/ESA CP/ESA R640 : PREREQ: VM66105 CO-REQ: NONE IF-REQ: NONE FOR RELEASE VM/ESA CP/ESA R710 : PREREQ: NONE CO-REQ: NONE IF-REQ: NONE
Comments
APAR Information
APAR number
VM65686
Reported component name
PERF TOOLKIT
Reported component ID
568411218
Reported release
640
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-09-11
Closed date
2018-10-09
Last modified date
2019-03-22
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UM35191 UM35270
Modules/Macros
HCPMNY HCPPLSBK
Fix information
Fixed component name
VM CP
Fixed component ID
568411202
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG27M","label":"APARs - z\/VM environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"640","Edition":"","Line of Business":{"code":"LOB16","label":"Mainframe HW"}}]
Document Information
Modified date:
22 March 2019