of storage which crosses the boundary between two pages with different
storage keys. This restriction applies not only toSS instructions,
such asMVC and ZAP, but also to RS instructions, such as STft, and to RX instructions, such as ST and STD, which may have nonaligned addresses on
theSystea/370. An exception is the eVCL instruction which can be
restarted after crossing a page boundary because the registers are
updated when the paging exception occurs.
This restriction also applies toI/O instructions. If the key
specified in theCCW is zero, then the data area for input may not cross
the boundary between two pages with different storage keys. It can be seen that this system is most inefficient when
"storage-key thrashing" occurs --when the virtualmachine with a VPK of
ojumps around, storing into pages with different VSK's. ERROR CODES FROft DeSFREE, DeSFRES, AND DftSFRET ! nonzero ccde, return f=o: or indicates that the request could not be satisfied. Register 15 contains
this return code, indicating which error has occurred. The codes below
apply to theDMSFRES, DMSFREE and DftSFRET macros.
Code,-- 2
3ErI2I DMSFREE -- Insufficient storage space is available to satisfy the
request fer free storage. In the case of a variable request,
even theminimum request could not be satisfied. DftSFREE or DMSFRET User storage pointers destroyed. DMSFREE or DMSFRET Nucleus storage pointers destroyed. 4 DMSFREE An invalid size was requested. This error exit is
taken if the requested size is not greater than zero. In the
case of variable requests, this errorexit is taken if the minimum request is greater than the maximum request. However,
the error is not detected ifDftSPREE is able to satisfy the maximum request.
5DMSFRET An invalid size was passed to the DMSFRET macro. This
error exit is taken if the specified length is net positive.
6DMSFRET -- The block of storage which is teing released was never
allocated byDMSFREE. Such an error is detected if one of the
following errors is found:
a. The block is not entirely inside either the free storage area
inlow storage or the user program area between FREELOWE and FREEUPPR. b. The block crosses
allocated for user
type storage.
a page-boundary which separates a page
storagefrom a page allocated for nucleus
c. The block overlaps another block already on the free storage
chain.
7DMSFRET -- The address given for the block being released is not
a doubleword boundary.
8DMSFRES -- An illegal request code was passed to the DMSPRES routine. Because all request codes are generated by the macro, this error code should never appear.
2-110IBM VM/370 System Logic and Program Determination--Volume 2
storage keys. This restriction applies not only to
such as
the
restarted after crossing a page boundary because the registers are
updated when the paging exception occurs.
This restriction also applies to
specified in the
the boundary between two pages with different storage keys.
"storage-key thrashing" occurs --when the virtual
o
this return code, indicating which error has occurred. The codes below
apply to the
Code
3
request fer free storage. In the case of a variable request,
even the
taken if the requested size is not greater than zero. In the
case of variable requests, this error
the error is not detected if
5
error exit is taken if the specified length is net positive.
6
allocated by
following errors is found:
a. The block is not entirely inside either the free storage area
in
allocated for user
type storage.
a page-boundary which separates a page
storage
c. The block overlaps another block already on the free storage
chain.
7
a doubleword boundary.
8
2-110