To decrease the ZIS LPA footprint, ZIS will use the module registry for its plug-in modules. When not in dev mode, ZIS will use the module registry API for adding plug-in modules to the LPA, and if a module is already registered, ZIS will reuse the existing LPA info. In dev mode, ZIS will load its own copy of plug-in modules to the LPA, just as it does now.
[x] I have commented my code, particularly in hard-to-understand areas
[x] New and existing unit tests pass locally with my changes
[x] Relevant update to CHANGELOG.md
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works, or describe a test method below
Testing
Adding a module to the registry
Upgrade your ZIS;
Start the ZIS instance with dynamic linkage on;
Check that SYSPRINT has the following messages:
ZWES0258I Module status: new instance added to registry (10D80000) (the address in the brackets will likely be different, and the same true for the other messages in this testing strategy text);
ZWES0022I Module KAYSISDL status: new instance added to registry (110B1000);
Proposed changes
To decrease the ZIS LPA footprint, ZIS will use the module registry for its plug-in modules. When not in dev mode, ZIS will use the module registry API for adding plug-in modules to the LPA, and if a module is already registered, ZIS will reuse the existing LPA info. In dev mode, ZIS will load its own copy of plug-in modules to the LPA, just as it does now.
This PR depends upon the following PRs: https://github.com/zowe/zowe-common-c/pull/492
Type of change
Please delete options that are not relevant.
PR Checklist
Please delete options that are not relevant.
Testing
Adding a module to the registry
ZWES0258I Module status: new instance added to registry (10D80000)
(the address in the brackets will likely be different, and the same true for the other messages in this testing strategy text);ZWES0022I Module KAYSISDL status: new instance added to registry (110B1000)
;ZWES0258I Module status: previously added/loaded instance reused (10D80000)
;ZWES0022I Module KAYSISDL status: previously added/loaded instance reused (110B1000)
.Module sharing
For the next test, you'll need another ZIS instance upgraded to the same level as the original instance.
ZWES0258I Module status: instance reused from registry (10D80000)
;ZWES0022I Module KAYSISDL status: instance reused from registry (110B1000)
;ZWES0258I Module status: previously added/loaded instance reused (10D80000)
;ZWES0022I Module KAYSISDL status: previously added/loaded instance reused (110B1000)
.Non-eligible module
For this test, you will need a plug-in module which does not use the new feature; i.e., the plug-in does not use the
MODREG_MARK_MODULE
macro.S zisstc,,,COLD,REUSASID=YES
);ZWES0023I Module <name of your plug-in module> not eligible for registry, proceeding with LPA ADD
;ZWES0022I Module <name of your plug-in module> status: own instance loaded to LPA (10BD1000)
.Non-LPA module
For this test, you will need a plug-in module which does not use the LPA.
ZWES0022I Module <name of your plug-in module> status: private storage instance used
.Registry disablement via the new parameter
ZWES.MODULE_REGISTRY=NO
to the PARMLIB member of your ZIS;S zisstc,,,COLD,REUSASID=YES
);ZWES0258I Module status: own instance loaded to LPA (10BD1000)
;ZWES0022I Module KAYSISDL status: own instance loaded to LPA (10B49000)
.Registry disablement via the dev option
ZWES.MODULE_REGISTRY=NO
and addZWES.DEV_MODE.LPA=YES
to the PARMLIB member of your ZIS;S zisstc,,,COLD,REUSASID=YES
);ZWES0258I Module status: own instance loaded to LPA (10BD1000)
;ZWES0022I Module KAYSISDL status: own instance loaded to LPA (10B49000)
.