A fix is available
APAR status
Closed as program error.
Error description
HyperPAV Alias serialization will be improved.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All z/VM users of system attached HyperPAV * * Alias devices. * **************************************************************** * PROBLEM DESCRIPTION: * **************************************************************** * RECOMMENDATION: APPLY PTF * **************************************************************** There are three problems addressed by this APAR: - 1- ABENDPAJ003 occurs using HyperPAV Alias devices for paging. Currently there is nothing preventing a system attached hyperPAV Alias from being detached from the system while it is actively executing paging I/O on behalf of a HyperPAV base. The I/O will still execute but subsequent processing for system HyperPAV Alias processing is incomplete because the alias is no longer attached to the system. - 2- The CUIBK counter, CUIPGAL, indicating the amount of system attached HyperPAV Aliases currently in use by paging I/O is higher than the CUIBK counter, CUISYSAL, that indicates the total amount of system attached HyperPAV Aliases in the system. - 3- ABENDIQM002 occurs when an I/O is started on a HyperPAV Alias device that is already active. After a HyperPAV Alias device is done executing I/O on behalf of a HyperPAV Base device and the HyperPAV Alias free queue is empty, HCPIQMDQ calls HCPHPVFB to find a HyperPAV Base with queued I/O that this alias can be used for. During this process the HyperPAV Alias's RDEV lock is released and reobtained. If a base is found with I/O to transfer to the alias device the RDEV lock for the alias is reobtained and some sanity checks are made (still a HyperPAV alias, still system attached and not associated with a HyperPAV Base device) and if all pass, then control is passed back to HCPIQMDQ and the I/O is started on the HyperPAV Alias device. In this case, the Alias had an MIH IORBK (IRA = HCPIOSIG) on RDEVAIOR and a subsequent SSCH was issued for the HyperPAV Base I/O that was transferred to it causing an ABENDIQM002.
Problem conclusion
Here are the three solutions associated with this APAR: - 1- HCPHPVAA was modified to add one to RDEVLCNT in any HyperPAV alias where the field is zero after being copied from the assoicated HyperPAV base device. This will prevent a detach from system while the alias is executing paging I/O on behalf of a base device and allow subsequent processing to execute appropriately. Also, HCPPAVSW was updated to call HCPPAJRP for HyperPAV Paging I/O to allow an I/O that failed on a HyperPAV Alias device to be retried on the associated HyperPAV Base device correctly. - 2- Serialization was tightened up in two different entry points in HCPHPV to resolve this problem. First in HCPHPVAA (assign alias from the free pool), the RDEVLOCK is now obtained before examining an alias RDEV on the queue with some validity checks. This way if the device is a candidate, it is already locked down and status can't change. In the past, validity checks were done without the lock and when the alias was deemed valid, THEN the RDEVLOCK would be obtained (allowing for some other process (like DETACH) to change the status of the alias). Second, in HCPHPVRF (remove an alias from the free queue) there was a violation of the locking heirarchy. The alias RDEV lock was already held when the HPPLOCK is being acquired. This was changed to release the RDEV lock, acquire the HPPLOCK, and reacquire the alias RDEV lock so that locking heirarchy is followed to avoid deadlock. - 3- HCPHPVFB was modified to check RDEVAIOR after the RDEV lock is reobtained for the HyperPAV Alias. If RDEVAIOR is non-zero, then HCPHPVFB will exit with the HyperPAV Alias not doing any I/O for a HyperPAV Base. This will prevent the ABENDIQM002.
Temporary fix
********* * HIPER * ********* FOR RELEASE VM/ESA CP/ESA R640 : PREREQ: NONE CO-REQ: NONE IF-REQ: NONE
Comments
APAR Information
APAR number
VM66066
Reported component name
VM CP
Reported component ID
568411202
Reported release
640
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-08-24
Closed date
2017-09-12
Last modified date
2018-04-11
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UM35218
Modules/Macros
HCPHPV HCPPAV
Fix information
Fixed component name
VM CP
Fixed component ID
568411202
Applicable component levels
R640 PSY UM35218
UP17/09/13 P 1702 ¢
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:
11 April 2018