Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software products. 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 Not under consideration
Categories Toolkit
Created by Guest
Created on Jun 13, 2019

Identify SIIS issue before moving to z13 / z14

It is known that Assembler code using "Store into Instruction Stream" (SIIS) does not perform as well starting on z13 hardware due to a change in cache structure. It would be beneficial to have an option in the HLASM Toolkit to identify code which uses SIIS.

The request is to provide some functionality which will both help clients identify the SIIS coding that exists and help IBM / Business Partners to plan for this scenario when sizing new servers.

Idea priority Medium
  • Guest
    Reply
    |
    Jun 17, 2019

    We have previously investigated this possibility (for example via new reentrancy checking options in HLASM or post-processing ADATA files to detect SIIS cases) but could not find any practical solution. Although certain cases (such as modifying the following instruction) might be easy to detect, we found that any simple method of checking based on the existing information known to HLASM would be likely either to produce too many false positives or to miss most genuine cases, and that was based only a small number of code examples. Also, any method of source analysis is unlikely to be able to distinguish between high-impact cases (where data is modified in a frequently-executed loop which also references the impacted instructions) and low-impact cases (for example where the data area is only modified as part of an initialisation process). It is quite possible that a much more sophisticated approach could give useful results, but we do not feel that the value of the results would be likely to justify the research and development effort.
    The original form of SIIS (that is, modifying instructions deliberately, for example to insert a length) has long been deprecated as it has always had a significant performance impact. The impact now tends to be caused not by deliberately modifying instructions but rather by modifying data which is within the same 256-bye cache line as instructions (including target instructions of Execute). This sort of problem can usually be spotted very easily by a reasonably skilled programmer looking at the source, or by running a hot-spot analyzer even on an older system which has less SIIS impact. The problem can often be fixed simply inserting a 256-byte dummy padding field between the instructions and the modified part of the data area. For a collection of programs written using the same local conventions, it may even be possible to systematically fix the whole collection using a similar approach.