High private storage can be allocated below the user region boundary as long as the high private storage resides above all allocated low private storage.
As a result of rule 2, several problems could occur. First, a caller might be unable to obtain low private storage even though low private storage is available because an area of high private storage is in the way and the available storage is above it. Figure 1 illustrates the problem.
To reduce the possibility of being unable to obtain low private storage, try to obtain storage areas for long-term use first so that they will be allocated at the top (high private storage) or bottom (low private storage) of the private area, preventing long-term allocations from fragmenting private storage. You should also release any storage when it is no longer needed.
Another problem could occur due to the allocation of large amounts of high private storage. The amount of low private storage could be reduced to the point that the system cannot provide a user region of the specified size when it attempts to a start a new step. If this situation occurs, the step is ended abnormally.