The GenWQE accelerated zlib

Red Hat Enterprise Linux 9.2 LPAR mode z/VM guest

The GenWQE accelerated zlib can replace a zlib software library.

For data compression and decompression tasks, Red Hat® Enterprise Linux® 9.2 includes software libraries. The zlib library, which provides the zlib API, is one of the most commonly used libraries for data compression and decompression. For information about zlib, see www.zlib.net.

Because the GenWQE accelerated zlib offers the zlib API, applications can use it instead of the default zlib software library. The GenWQE hardware-accelerated zlib is designed to enhance performance by offloading tasks to a hardware accelerator.
Figure 1. GenWQE accelerated zlib
This graphic depicts the GenWQE that components as described in the text that follows.

Applications

You can make the user space components of the GenWQE hardware-accelerated zlib available to applications that request data compression functions through the zlib API. Red Hat Enterprise Linux 9.2 provides these user space components with the genwqe-zlib RPM.

A second RPM, genwqe-tools, provides tools that use the GenWQE hardware-accelerated zlib.

IBM® Java™ version 7.1 or later includes components of the GenWQE hardware-accelerated zlib. Through these components, it can directly address the GenWQE device nodes. With the required environment variables in place, it uses hardware-acceleration if it is available.

Hardware-accelerated zlib

The hardware-accelerated zlib is a zlib implementation that acts as a wrapper for two included libraries:
libzHW
a hardware library that prepares requests for processing by the hardware accelerator. The hardware library is intended to handle the bulk of the requests.

This library also manages data buffers for optimized hardware compression.

libz
a software implementation of the zlib interface. Because it provides the same interface as its wrapper library, it can handle any requests unmodified.
The hardware-accelerated zlib arbitrates between the two included libraries. It uses the software library as a backup if no hardware accelerator is available. It also evaluates the expected performance gain against the extra processing for channeling requests to the accelerator. For small or fragmented data, software processing might be advantageous, especially for decompression. The evaluation takes available resources, such as buffer space, into account.

Card library

The card library, libcard, mediates between the hardware-accelerated zlib library and the GenWQE device driver. It provides recovery features and can move jobs between available accelerators.

Device driver

The GenWQE device driver is the kernel part of GenWQE. It serializes requests to an accelerator in form of device driver control blocks (DDCBs), and it enables multi-process and multi-thread usage.