Skip to Main Content
IBM Z Hardware and Operating Systems Ideas Portal


This is the public portal for all IBM Z Hardware and Operating System related offerings. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Delivered
Workspace z/OS
Categories Ported Tools
Created by Guest
Created on Feb 10, 2023

Set a specific zlib for zEDC stream to use software instead of hardware via a thread-safe method

I need to be able to perform raw deflate/inflate with compression dictionaries. Currently, there is a limitation where the hardware accelerator does not support the zlib function inflateSetDictionary() when using raw inflate. So I would like to be able to programmatically switch to using software to perform raw inflate that requires a dictionary.

I see in the documentation that the environment variable _HZC_COMPRESSION_METHOD=software can be set to force zEDC to use software. However, I don’t want to turn off the hardware accelerator completely for all operations. I would like to still be able to perform standard deflate/inflate using the hardware accelerator.

I have looked into using setenv() to set the environment variable prior to calling inflateInit2(), and then use unsetenv() to unset the environment variable after inflateEnd(). Unfortunately, I can’t use this solution as my application is multithreaded, and setenv() is not thread-safe. There could be a race condition where Thread A sets _HZC_COMPRESSION_METHOD=software, and then Thread B unsets the environment variable before Thread A is able to call inflateInit2(). 

So I need to be able to initialize a specific stream to use software via a thread-safe function call, or some other method.

Idea priority High
  • Guest
    Reply
    |
    Apr 25, 2024
    This request has been delivered via APAR OA65661.
  • Guest
    Reply
    |
    Feb 13, 2023
    put this in candidate list for next release. Will discuss with PM about the plan when start development work for next release.