Why does Broadcom recommend the region size for the TPX proc be set to 0M?
Component: TPX For Z/Os
REGION=0M is for the creation of TPX's Address Space and is for allocation of that Virtual Storage (above and below the 16M Line) available to that Address Space.
The reason why it's recommended to change the REGION size to 0M in TPX proc is because based on the product design, TPX manages the storage internally. By setting REGION=0M, there is no storage limitations below the 16Mb line.
Note that during TPX region initialization, it allocates the virtual storage above and below the line and divides it to system storage (required storage to run the product), SLOT, DSA, etc. Any remaining storage will be returned back to the system. We do limited paging if needed like MVS GETMAIN, but release it after finishing. If the region runs out of storage, like SLOT, DSA, etc. the product will not work properly and it needs to be diagnosed for possible tuning in the TPX configuration.
Also, we have Health-check alerts and LOG messages to monitor the DSA and SLOT storage usage for overload and overflow to keep the product running healthy.
In addition, the recommended REGION=0M in TPXPROC has been implemented by many of our customers and we have not received issues because of it.
Please review the Performance and Maintenance Best Practices in TPX.
At startup TPX issues a conditional GETMAIN asking the operating system how much storage is available below the line. Assuming the operating system returns: available storage is 8.5 MB.
If TPX would do a GETMAIN now for 8.5 MB, there would be no storage left and any GETMAIN from e.g. operating system components would fail with S80A, S878 abends.
But instead, what TPX does, it checks the 'System Storage' set in SMRT ‘option 2 - Storage Parameters’ value and subtracts this from the 8.5 MB available.
If 'System Storage' is set to 2048K, TPX does a GETMAIN only for 6.5 MB for its modules, slots and DSA below the line. The 2 MB left remains under the control of the operating system to satisfy GETMAIN requests below the line.
TPX itself does not do any explicit GETMAIN here unless you need to do a VTADD. For every VT added with VTADD, TPX will request about 150 bytes (actually 144) above the 16M line through a GETMAIN.