Overrides for applications

Use the DFLTCC and DFLTCC_LEVEL_MASK environment variables to override the defaults for Java™ applications and, generally, for applications that use zlib or gzip in user space.

Ubuntu 22.04 LTS LPAR mode z/VM guest KVM guest

For Linux® containers, specify these environment variables with the command that instantiates the container. For example, if you manage your containers with podman, use the -e option of the podman run command.

Turning off acceleration

Set the DFLTCC environment variable to 0 to turn off on-chip compression and decompression with the Integrated Accelerator for zEDC.

The DFLTCC environment variable can take the following values:
1
turns on-chip acceleration on. This is the default.
0
turns on-chip acceleration off.

Configuring accelerated compression for any compression level

By default, software that requests compression level 1 uses the on-chip accelerator if it is enabled. Use the DFLTCC_LEVEL_MASK environment variable to configure on-chip acceleration for any combination of compression levels.

The values of the DFLTCC_LEVEL_MASK environment variable are 4-digit hexadecimal numbers in the range 0x0000 - 0x03ff. Of the ten corresponding binary digits that can be 1, each represents a compression level. The least significant bit represents an assumed level 0, the most significant bit represents level 9.

The following examples demonstrate how the mask works:
0x0000
The bits for all compression levels are off. No on-chip compression is performed. This setting has the same effect on compression as setting the DFLTCC environment variable to 0.
0x0001
The bit for the assumed compression level 0 is on and overrides the default behavior for level 0. Instead of transferring data into a compressed format without a size reduction, data is actually compressed, which can have unintended consequences.
Note: Do not set this bit unless you are a compression expert who understands the implications and wants to experiment with this setting.
0x0002
The bit for compression level 1 is on; all other bits are off. On-chip compression is performed only for software that requests compression level 1.

This is the default.

0x0006
The bits for compression level 1 and 2 are on; the other bits are off. On-chip compression is performed for software that requests compression level 1 or 2.
0x000e
The bits for compression level 1, 2, and 3 are on; the other bits are off. On-chip compression is performed for software that requests compression level 1, 2, or 3.
0x007e
The bits for compression level 1 - 6 are on; the bits for level 0, 7, 8, and 9 are off. On-chip compression is performed for software that requests a compression level in the range 1 - 6. Level 6 is the default for software that does not request a particular compression level.
0x01fe
The bits for compression level 1 - 8 are on; the bits for level 0 and 9 are off. On-chip compression is performed for software that requests a compression level in the range 1 - 8.
Note: On-chip compression with the Integrated Accelerator for zEDC is approximately equivalent to compression level 1. Forcing On-chip compression for software that requests a higher compression level can result in a larger compressed data volume than intended by the author of the software.
You can set the environment variable for all users, programs and system services of a Linux instance by writing the setting to /etc/environment.
# echo DFLTCC_LEVEL_MASK=0x1fe >> /etc/environment
The following examples take a more cautious approach by limiting the scope of the setting:
  • Use env to limit the setting to an individual command call:
    # env DFLTCC_LEVEL_MASK=0x2fe <command>
  • Use an entry in your ~/.bashrc for the scope of your bash sessions:
    # echo DFLTCC_LEVEL_MASK=0x1fe >> ~/.bashrc
  • Use a systemd unit override for a service <your_service> for the scope of that systemd service:
    # printf "[Service]\nEnvironment=DFLTCC_LEVEL_MASK=0x2fe\n" > \
    /etc/systemd/system/<your_service>.service.d/dfltcc.conf
  • Use an override in the global systemd configuration file for the scope of all systemd services:
    # printf "[Manager]\nDefaultEnvironment=DFLTCC_LEVEL_MASK=0x2fe\n" > \
    /etc/systemd/system.conf.d/dfltcc.conf