This parameter specifies how kernel functions implemented within the SAP kernel in C or C++ are called in the VM container. It is important that the VM C/C++ runtime stacks required for each thread are configured as small as possible in order to save memory space. Depending on the function type, this may lead to problems (large fields on the stack, recursive functions.)
In the VM container there is a service stack that is configured larger, which can execute large functions without any problem. The disadvantage of this service stack is a relatively small loss in performance resulting from the need to switch stacks.
Since the switch to the service stack is only necessary for a few functions, all kernel functions have been classified into two types:
● Functions that can run directly on the VM stack.
● Functions that have to run on the service stack.
By default, the VM container uses this information to execute functions. If there are still problems, and if it is not possible to change the size of the stack because of the available memory, this behavior can be changed.
By default, the size of the service stack is 1 MB (32 bit platforms) or 2MB (64 bit platforms). The size can be changed with the profile parameter vmcj/option/Ss (see Memory Parameters).
Work area |
VM Container |
Function unit |
Character string |
Standard value |
USE_MARKUP |
Dynamically changeable |
Local and on all servers |
This can happen as follows:
USE_MARKUP: Call based on classification
INVOKE_ON_SERVICE_STACK: Call is always on the service stack
INVOKE_DIRECT: Call is always direct