Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Module registry #492

Merged
merged 1 commit into from
Oct 30, 2024
Merged

Module registry #492

merged 1 commit into from
Oct 30, 2024

Conversation

ifakhrutdinov
Copy link
Contributor

@ifakhrutdinov ifakhrutdinov commented Sep 26, 2024

Proposed changes

To address potential LPA shortages when multiple ZIS instances are running on the same LPAR, a new feature--the module registry--has been introduced.

The module registry is a set of data structures in common storage in which eligible modules are traced. An eligible module is a module marked with a special macro; the mark and the module names are then used to uniquely identify the module. Once ZIS and its plug-in modules are marked, they can be added to the registry and shared: if another ZIS instance needs to load an identical module to the LPA, it will reuse a previously registered (and loaded to the LPA) module instead. Sharing identical modules should dramatically decrease the LPA footprint.

This feature must not be used when an application wants to remove its modules from the LPA (e.g., ZIS does that in dev mode) because it will affect any other applications using the same modules.

This PR addresses Issue: #405

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)

PR Checklist

Please delete options that are not relevant.

  • If the changes in this PR are meant for the next release / mainline, this PR targets the "staging" branch.
  • My code follows the style guidelines of this project (see: Contributing guideline)
  • I have commented my code, particularly in hard-to-understand areas
  • New and existing unit tests pass locally with my changes
  • Relevant update to CHANGELOG.md
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works, or describe a test method below

Testing

  • Clone this repo and check out the source branch for this change;
  • Go to ./tests and run build_modreg.sh;
  • Make sure that the load library with the test module is APF-authorized;
  • Make sure a ZIS instance has been run since the latest IPL;
  • Use the JCL from ./tests/modregtest.c to run the test program;
  • The job must end with RC 0.

Further comments

@ifakhrutdinov ifakhrutdinov force-pushed the feature/module-registry branch 4 times, most recently from 07d8deb to cf5decf Compare September 27, 2024 10:37
@ifakhrutdinov ifakhrutdinov changed the title Module registry initial implementation Module registry Sep 27, 2024
@ifakhrutdinov ifakhrutdinov force-pushed the feature/module-registry branch 5 times, most recently from d17cf8b to 27435b0 Compare September 30, 2024 14:40
@ifakhrutdinov ifakhrutdinov force-pushed the feature/module-registry branch 2 times, most recently from 270327f to 99d16c9 Compare October 1, 2024 19:56
@ifakhrutdinov ifakhrutdinov self-assigned this Oct 1, 2024
@ifakhrutdinov ifakhrutdinov added the enhancement New feature or request label Oct 1, 2024
@ifakhrutdinov ifakhrutdinov marked this pull request as ready for review October 1, 2024 19:58
To address potential LPA shortages when multiple ZIS instances are
running on the same LPAR, a new feature--the module registry--has been
introduced.

The module registry is a set of data structures in common storage in
which eligible modules are traced. An eligible module is a module marked
with a special macro; the mark and the module names are then used to
uniquely identify the module. Once ZIS and its plug-in modules are
marked, they can be added to the registry and shared: if another ZIS
instance needs to load an identical module to the LPA, it will reuse
a previously registered (and loaded to the LPA) module instead. Sharing
identical modules should dramatically decrease the LPA footprint.

This feature must not be used when an application wants to remove its
modules from the LPA (e.g., ZIS does that in dev mode) because it will
affect any other applications using the same modules.

Fixes: #405

Signed-off-by: Irek Fakhrutdinov <ifakhrutdinov@rocketsoftware.com>
Copy link
Contributor

@JoeNemo JoeNemo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved.

@JoeNemo JoeNemo merged commit 3d7c04c into v3.x/staging Oct 30, 2024
9 checks passed
@ifakhrutdinov ifakhrutdinov deleted the feature/module-registry branch October 30, 2024 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants