Re: What is the proper way to look at ...
Hello,
Does the EE editor perform the update and saving of changes?? If no, are there plans for EE to do updates and saving of changes?
Thank you.
toggle quoted message
Show quoted text
Bertram, I guess what you are asking needed a weeks training course followed by lots of practice on return. I remember a very frustrating week in the IBM training Center in ST. Johns Wood, London building CP and CMS in a second level machine on a very underpowered 43xx. Very slow. ? Well many many reasons the updated source isn¡¯t stored anywhere so to view current source you need to apply the updates. => don¡¯t ask for this to change as my answer will be rude and offensive => just live with it. ? For CP ¡°VMSETUP CP¡± access the disks with the source. Then apply the updates e.g. ? update dmkcfc assemble * dmkhrc (ctl??????????????????????????????????????????????????????????????????????????????????????????????? UPDATING 'DMKCFC ASSEMBLE I1'.?????????????????? ??????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R08928DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R09413DK H1'.?????????? ??????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R10076DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R10847DK H1'.?? ??????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R12101DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R12794DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R13360DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R13648DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R13704DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R12658DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC010DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC013DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC018DK F1'.?????????????????????????????????????????????????????????????????????????????????????????????? ??????? APPLYING 'DMKCFC HRC019DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC021DK F1'.?????????????????????????????????????????????????????????????????????????????????????? ??????????????? APPLYING 'DMKCFC HRC026DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC030DK F1'.?????????????????????????????????????????????????????????????????????????????? ??????????????????????? APPLYING 'DMKCFC HRC043DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC107DK F1'.?????????????????????????????????????????????????????????????????????? ??????????????????????????????? APPLYING 'DMKCFC HRC068DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? Ready; T=0.06/0.15 08:23:43??????????????????????????? ? Which leaves us with a $DMKCFC ASSEMBLE on our ¡°A¡± disk containing the modified source. This also has comments with the module name in inserted/modified likes. So searching for ¡°HRC010DK will show the lines modified. How did I know DMKCFC was one of the modules patched for HCP, well HRCMODS MEMO F contains a list of modifications. It tells me HCP is modification HRC010DK and the HRC010DK MEMO F has the details. I could also just do ¡°LIST * HRC010DK *¡± and it would show the change files for HCP. As I knew HCP was all new code I didn¡¯t bother updating the source I simply looked at the updates. ? To save changes -? I¡¯ll answer separately. ? When you say ¡°build without TEX what¡± are you asking. All the original TEXT files are on the disks. You can build a base VM system by releasing the disks with the mods and rebuilding CMS and CP with the IBM control files. Its not terribly useful to do this as most things simply won¡¯t work. ? As Joe says there is a lot of detail in MAINT MEMO. In fact memo files contain much of the docs so doing ? VMSETUP CP (or CMS) FSLIST * MEMO * ? May help. ? Dave ? ? ? Hello, What is the command (or proper method) to look at the VM/CE source?? I mean the based code with the updates?? How do I save changes I make in base delta form? (Base new update?) Is the a method for rebuilding VM/CE from scratch (without using the supplied TEX files)? I apologize for missing this information.
|
Re: What is the proper way to look at ...
Bertram, I guess what you are asking needed a weeks training course followed by lots of practice on return. I remember a very frustrating week in the IBM training Center in ST. Johns Wood, London building CP and CMS in a second level machine on a very underpowered 43xx. Very slow. ? Well many many reasons the updated source isn¡¯t stored anywhere so to view current source you need to apply the updates. => don¡¯t ask for this to change as my answer will be rude and offensive => just live with it. ? For CP ¡°VMSETUP CP¡± access the disks with the source. Then apply the updates e.g. ? update dmkcfc assemble * dmkhrc (ctl??????????????????????????????????????????????????????????????????????????????????????????????? UPDATING 'DMKCFC ASSEMBLE I1'.?????????????????? ??????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R08928DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R09413DK H1'.?????????? ??????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R10076DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R10847DK H1'.?? ??????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R12101DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R12794DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R13360DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R13648DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R13704DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC R12658DK H1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC010DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC013DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC018DK F1'.?????????????????????????????????????????????????????????????????????????????????????????????? ??????? APPLYING 'DMKCFC HRC019DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC021DK F1'.?????????????????????????????????????????????????????????????????????????????????????? ??????????????? APPLYING 'DMKCFC HRC026DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC030DK F1'.?????????????????????????????????????????????????????????????????????????????? ??????????????????????? APPLYING 'DMKCFC HRC043DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? APPLYING 'DMKCFC HRC107DK F1'.?????????????????????????????????????????????????????????????????????? ??????????????????????????????? APPLYING 'DMKCFC HRC068DK F1'.????????????????????????????????????????????????????????????????????????????????????????????????????? Ready; T=0.06/0.15 08:23:43??????????????????????????? ? Which leaves us with a $DMKCFC ASSEMBLE on our ¡°A¡± disk containing the modified source. This also has comments with the module name in inserted/modified likes. So searching for ¡°HRC010DK will show the lines modified. How did I know DMKCFC was one of the modules patched for HCP, well HRCMODS MEMO F contains a list of modifications. It tells me HCP is modification HRC010DK and the HRC010DK MEMO F has the details. I could also just do ¡°LIST * HRC010DK *¡± and it would show the change files for HCP. As I knew HCP was all new code I didn¡¯t bother updating the source I simply looked at the updates. ? To save changes -? I¡¯ll answer separately. ? When you say ¡°build without TEX what¡± are you asking. All the original TEXT files are on the disks. You can build a base VM system by releasing the disks with the mods and rebuilding CMS and CP with the IBM control files. Its not terribly useful to do this as most things simply won¡¯t work. ? As Joe says there is a lot of detail in MAINT MEMO. In fact memo files contain much of the docs so doing ? VMSETUP CP (or CMS) FSLIST * MEMO * ? May help. ? Dave ? ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Bertram Moshier Sent: 06 December 2022 04:44 To: [email protected] Subject: [h390-vm] What is the proper way to look at ...? Hello, What is the command (or proper method) to look at the VM/CE source?? I mean the based code with the updates?? How do I save changes I make in base delta form? (Base new update?) Is the a method for rebuilding VM/CE from scratch (without using the supplied TEX files)? I apologize for missing this information.
|
Re: What is the proper way to look at ...
All of that should be detailed in MAINT MEMO which should be on MAINTs A disk.
Joe
|
What is the proper way to look at ...
Hello,
What is the command (or proper method) to look at the VM/CE source?? I mean the based code with the updates??
How do I save changes I make in base delta form? (Base new update?)
Is the a method for rebuilding VM/CE from scratch (without using the supplied TEX files)?
I apologize for missing this information.
Thank you.
|
On Mon, Dec 5, 2022 at 07:30 PM, Mark A. Stevens wrote:
If you also looked at the source for HCP it already checks it's running under Hercules or as a level-2 VM.
Which for those of us a bit behind the know, see ...
Which as I read more of the code, realized I'm still NOT in the know :-( Sorry for the incorrect information. ?... Mark S.
|
On Sat, Dec 3, 2022 at 11:29 PM, Dave Wade wrote:
If you also looked at the source for HCP it already checks it's running under Hercules or as a level-2 VM.
Which for those of us a bit behind the know, see ... Run: vmsetup cp then: l DMKSCH * *DMKSCH?? AUXHRC?? F1DMKSCH?? HRC066DK F1DMKSCH?? TXTHRC?? F1DMKSCH?? TEXT???? G1DMKSCH?? AUXR60?? H1DMKSCH?? R08518DK H1DMKSCH?? R10074DK H1DMKSCH?? R10081DK H1DMKSCH?? R12052DK H1DMKSCH?? ASSEMBLE I1DMKSCH?? UPDTAP?? I1?... Mark S.
|
I think changes to Hercules should go the Hercules-30 list please¡ ? Dave ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Aaron Finerman Sent: 04 December 2022 17:16 To: [email protected] Subject: Re: [h390-vm] Can a VM machine ...? Hercules should make better use of Diagnose 0, which it supports. At least, it should provide the correct release number. There are many bits available that could be mapped into Hercules features and configuration options.?? If you run under VM, the data could be easily accessed by the application if you provide an additional 40 bytes to the Diagnose 0 buffer length and set your CPU version code to FF in Hercules configuration.?? ? On Sat, 2022-12-03 at 15:10 -0800, David Durand wrote: ? Hi, IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check. It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron. The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command. In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off.
I'm not going to push this much farther, as it's just an idea, but your description does not necessarily match what the real machines would do, because the state of a machine after a diagnose command is issued is dependent on the exact model (and even the field revision state) of that machine. This would be true even if though there are some "standard" diagnose functions some later models.
It's an operating system's responsibility to know?before issuing a diagnose, that it will not cause a problem. The 1987 version of the 370-XA Prince of Ops, and earlier 370 versions indicates that the Model and Version fields of the data returned by STIDP would be used to make that determination: DIAGNOSE, unlike other instructions, does not follow the rule that programming errors are distinguished from equipment errors. Improper use of DIAGNOSE may result in false machine-check indications or may cause actual?machine malfunctions to be ignored. It may also alter other aspects of system operation, including instruction execution and channel- program operation, to an extent that the operation does not comply with that specified in this publication. As a result of the improper use of DIAGNOSE, the system may be left in such a condition that the power-on reset or initial-microprogram-loading (IML) function must be performed. Since the function performed by DIAGNOSE may differ from model to model and between versions of a model, the program should avoid issuing DIAGNOSE unless the program recognizes both the model number and version code stored by STORE CPU 10.?
So handling the exception is Hercules-specific, and has nothing to do with a "real" 370. So whatever we do is an?
I took a look at the source, and it seems that the Hercules options defined in feat370.h includes FEATURE_HERCULES_DIAGCALLS. This means that it should generally be possible to check to check if DIAG 008 is enabled in the configuration by the use of other Hercules-specific diagnose calls. So it's certainly reasonable to argue that this crash can be handled in CP, and therefore should be.
There are no Hercules-specific diagnose calls that could be queried for this information. ? There are some Hercules-specific diagnose calls, but not a "query" mechanism, per se. ? I agree that a patch to the HCP command to check that it's running under Hercules would be a good idea. I also think there's an argument that a Hercules console message for illegal DIAGNOSE instructions could be helpful in the presumably rare case where an OS performs a DIAGNOSE instruction incorrectly, and it does seem easy to implement.
|
Hercules should make better use of Diagnose 0, which it supports. At least, it should provide the correct release number. There are many bits available that could be mapped into Hercules features and configuration options.?? If you run under VM, the data could be easily accessed by the application if you provide an additional 40 bytes to the Diagnose 0 buffer length and set your CPU version code to FF in Hercules configuration.?? Best regards, ?
toggle quoted message
Show quoted text
On Sat, 2022-12-03 at 15:10 -0800, David Durand wrote:
Hi,
?
IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check.
?
It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron.
?
The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command.
?
In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off.
?
Thank you
I'm not going to push this much farther, as it's just an idea, but your description does not necessarily match what the real machines would do, because the state of a machine after a diagnose command is issued is dependent on the exact model (and even the field revision state) of that machine. This would be true even if though there are some "standard" diagnose functions some later models. It's an operating system's responsibility to know? before issuing a diagnose, that it will not cause a problem. The 1987 version of the 370-XA Prince of Ops, and earlier 370 versions indicates that the Model and Version fields of the data returned by STIDP would be used to make that determination:
DIAGNOSE, unlike other instructions, does not follow the rule that programming errors are distinguished from equipment errors. Improper use of DIAGNOSE may result in false machine-check indications or may cause actual?machine malfunctions to be ignored. It may also alter other aspects of system operation, including instruction execution and channel- program operation, to an extent that the operation does not comply with that specified in this publication. As a result of the improper use of DIAGNOSE, the system may be left in such a condition that the power-on reset or initial-microprogram-loading (IML) function must be performed. Since the function performed by DIAGNOSE may differ from model to model and between versions of a model, the program should avoid issuing DIAGNOSE unless the program recognizes both the model number and version code stored by STORE CPU 10.?
So handling the exception is Hercules-specific, and has nothing to do with a "real" 370. So whatever we do is an? I took a look at the source, and it seems that the Hercules options defined in feat370.h includes FEATURE_HERCULES_DIAGCALLS. This means that it should generally be possible to check to check if DIAG 008 is enabled in the configuration by the use of other Hercules-specific diagnose calls. So it's certainly reasonable to argue that this crash can be handled in CP, and therefore should be.
There are no Hercules-specific diagnose calls that could be queried for this information. ? There are some Hercules-specific diagnose calls, but not a "query" mechanism, per se. ?
I agree that a patch to the HCP command to check that it's running under Hercules would be a good idea. I also think there's an argument that a Hercules console message for illegal DIAGNOSE instructions could be helpful in the presumably rare case where an OS performs a DIAGNOSE instruction incorrectly, and it does seem easy to implement.
|
On Sat, 2022-12-03 at 15:10 -0800, David Durand wrote:
Hi,
?
IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check.
?
It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron.
?
The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command.
?
In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off.
?
Thank you
I'm not going to push this much farther, as it's just an idea, but your description does not necessarily match what the real machines would do, because the state of a machine after a diagnose command is issued is dependent on the exact model (and even the field revision state) of that machine. This would be true even if though there are some "standard" diagnose functions some later models. It's an operating system's responsibility to know? before issuing a diagnose, that it will not cause a problem. The 1987 version of the 370-XA Prince of Ops, and earlier 370 versions indicates that the Model and Version fields of the data returned by STIDP would be used to make that determination:
DIAGNOSE, unlike other instructions, does not follow the rule that programming errors are distinguished from equipment errors. Improper use of DIAGNOSE may result in false machine-check indications or may cause actual?machine malfunctions to be ignored. It may also alter other aspects of system operation, including instruction execution and channel- program operation, to an extent that the operation does not comply with that specified in this publication. As a result of the improper use of DIAGNOSE, the system may be left in such a condition that the power-on reset or initial-microprogram-loading (IML) function must be performed. Since the function performed by DIAGNOSE may differ from model to model and between versions of a model, the program should avoid issuing DIAGNOSE unless the program recognizes both the model number and version code stored by STORE CPU 10.?
So handling the exception is Hercules-specific, and has nothing to do with a "real" 370. So whatever we do is an? I took a look at the source, and it seems that the Hercules options defined in feat370.h includes FEATURE_HERCULES_DIAGCALLS. This means that it should generally be possible to check to check if DIAG 008 is enabled in the configuration by the use of other Hercules-specific diagnose calls. So it's certainly reasonable to argue that this crash can be handled in CP, and therefore should be.
There are no Hercules-specific diagnose calls that could be queried for this information. ? There are some Hercules-specific diagnose calls, but not a "query" mechanism, per se. ?
I agree that a patch to the HCP command to check that it's running under Hercules would be a good idea. I also think there's an argument that a Hercules console message for illegal DIAGNOSE instructions could be helpful in the presumably rare case where an OS performs a DIAGNOSE instruction incorrectly, and it does seem easy to implement.
|
toggle quoted message
Show quoted text
-----Original Message----- From: [email protected] <[email protected]> On Behalf Of Fish Fish Sent: 04 December 2022 00:03 To: [email protected] Subject: Re: [h390-vm] Can a VM machine ...
David Durand wrote:
[...]
I agree that a patch to the HCP command to check that it's running under Hercules would be a good idea. FWIW, I agree. This is as expressed, a bad idea. The HCP command has existed for much longer than Hercules. Its original purpose was to allow a second level machine to issue commands at the first level. It checks its running under either Hercules or Level-2. When its running at Level-2 you can not get this problem as any command that¡¯s not permitted simply returns an error.
I also think there's an argument that a Hercules console message for illegal DIAGNOSE instructions could be helpful in the presumably rare case where an OS performs a DIAGNOSE instruction incorrectly, and it does seem easy to implement. We already have that:
HHC00801I Processor CP00: Specification exception interruption code 0006 ilc 4 HHC02269I GR00=00000000 GR01=00000000 GR02=00000280 GR03=00000000 HHC02269I GR04=00000008 GR05=00000000 GR06=00000000 GR07=00000000 HHC02269I GR08=00000000 GR09=00000000 GR10=00000000 GR11=00000000 HHC02269I GR12=00000000 GR13=00000000 GR14=00000000 GR15=00000000 HHC02324I PSW=000C000000000208 INST=83240008 DIAG 2,4,8(0) diagnose HHC02326I R:00000008:K:06=00000000 00000000 00000000 00000000 ................
If you're not seeing the above messages on your Hercules console, then it's probably because you're using the wrong OSTAILOR setting (such as the stupid and NOT recommended OSTAILOR QUIET setting, which we've discussed to death on this forum before).
-- "Fish" (David B. Trout) Software Development Laboratories
mail: fish@...
Dave
|
If you also looked at the source for HCP it already checks it's running under Hercules or as a level-2 VM.
Dave
toggle quoted message
Show quoted text
Hi,
?
IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check.
?
It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron.
?
The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command.
?
In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off.
?
Thank you
I'm not going to push this much farther, as it's just an idea, but your description does not necessarily match what the real machines would do, because the state of a machine after a diagnose command is issued is dependent on the exact model (and even the field revision state) of that machine. This would be true even if though there are some "standard" diagnose functions some later models. It's an operating system's responsibility to know? before issuing a diagnose, that it will not cause a problem. The 1987 version of the 370-XA Prince of Ops, and earlier 370 versions indicates that the Model and Version fields of the data returned by STIDP would be used to make that determination:
DIAGNOSE, unlike other instructions, does not follow the rule that programming errors are distinguished from equipment errors. Improper use of DIAGNOSE may result in false machine-check indications or may cause actual?machine malfunctions to be ignored. It may also alter other aspects of system operation, including instruction execution and channel- program operation, to an extent that the operation does not comply with that specified in this publication. As a result of the improper use of DIAGNOSE, the system may be left in such a condition that the power-on reset or initial-microprogram-loading (IML) function must be performed. Since the function performed by DIAGNOSE may differ from model to model and between versions of a model, the program should avoid issuing DIAGNOSE unless the program recognizes both the model number and version code stored by STORE CPU 10.?
So handling the exception is Hercules-specific, and has nothing to do with a "real" 370. So whatever we do is an? I took a look at the source, and it seems that the Hercules options defined in feat370.h includes FEATURE_HERCULES_DIAGCALLS. This means that it should generally be possible to check to check if DIAG 008 is enabled in the configuration by the use of other Hercules-specific diagnose calls. So it's certainly reasonable to argue that this crash can be handled in CP, and therefore should be. I agree that a patch to the HCP command to check that it's running under Hercules would be a good idea. I also think there's an argument that a Hercules console message for illegal DIAGNOSE instructions could be helpful in the presumably rare case where an OS performs a DIAGNOSE instruction incorrectly, and it does seem easy to implement.
|
David Durand wrote: [...] I agree that a patch to the HCP command to check that it's running under Hercules would be a good idea. FWIW, I agree. I also think there's an argument that a Hercules console message for illegal DIAGNOSE instructions could be helpful in the presumably rare case where an OS performs a DIAGNOSE instruction incorrectly, and it does seem easy to implement. We already have that: HHC00801I Processor CP00: Specification exception interruption code 0006 ilc 4 HHC02269I GR00=00000000 GR01=00000000 GR02=00000280 GR03=00000000 HHC02269I GR04=00000008 GR05=00000000 GR06=00000000 GR07=00000000 HHC02269I GR08=00000000 GR09=00000000 GR10=00000000 GR11=00000000 HHC02269I GR12=00000000 GR13=00000000 GR14=00000000 GR15=00000000 HHC02324I PSW=000C000000000208 INST=83240008 DIAG 2,4,8(0) diagnose HHC02326I R:00000008:K:06=00000000 00000000 00000000 00000000 ................ If you're not seeing the above messages on your Hercules console, then it's probably because you're using the wrong OSTAILOR setting (such as the stupid and NOT recommended OSTAILOR QUIET setting, which we've discussed to death on this forum before). -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@...
|
Hi,
?
IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check.
?
It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron.
?
The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command.
?
In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off.
?
Thank you
I'm not going to push this much farther, as it's just an idea, but your description does not necessarily match what the real machines would do, because the state of a machine after a diagnose command is issued is dependent on the exact model (and even the field revision state) of that machine. This would be true even if though there are some "standard" diagnose functions some later models. It's an operating system's responsibility to know? before issuing a diagnose, that it will not cause a problem. The 1987 version of the 370-XA Prince of Ops, and earlier 370 versions indicates that the Model and Version fields of the data returned by STIDP would be used to make that determination:
DIAGNOSE, unlike other instructions, does not follow the rule that programming errors are distinguished from equipment errors. Improper use of DIAGNOSE may result in false machine-check indications or may cause actual?machine malfunctions to be ignored. It may also alter other aspects of system operation, including instruction execution and channel- program operation, to an extent that the operation does not comply with that specified in this publication. As a result of the improper use of DIAGNOSE, the system may be left in such a condition that the power-on reset or initial-microprogram-loading (IML) function must be performed. Since the function performed by DIAGNOSE may differ from model to model and between versions of a model, the program should avoid issuing DIAGNOSE unless the program recognizes both the model number and version code stored by STORE CPU 10.?
So handling the exception is Hercules-specific, and has nothing to do with a "real" 370. So whatever we do is an? I took a look at the source, and it seems that the Hercules options defined in feat370.h includes FEATURE_HERCULES_DIAGCALLS. This means that it should generally be possible to check to check if DIAG 008 is enabled in the configuration by the use of other Hercules-specific diagnose calls. So it's certainly reasonable to argue that this crash can be handled in CP, and therefore should be. I agree that a patch to the HCP command to check that it's running under Hercules would be a good idea. I also think there's an argument that a Hercules console message for illegal DIAGNOSE instructions could be helpful in the presumably rare case where an OS performs a DIAGNOSE instruction incorrectly, and it does seem easy to implement.
|
Re: How to clear EREP using CPEREP and sometimes I wish for printed manual again
On Fri, Oct 28, 2022 at 01:18 PM, Bertram Moshier wrote:
I think I got the clear of CPEREP working.? I did:
I wrote a simple EXEC to do steps 1-2B. See below. type cperep01 exec a ? &CONTROL CMSFILEDEF ACCDEV DISK CPEREP REPORT A&STACK CLEAR&STACKCPEREP&EXITI Hope This Helps ?... Mark S.
|
Bertram, Its not available to general users. There are lots of things non-general users can do to break VM. I normally assume some one logged into OPERATOR or MAIIN knows what they are doing. Dave ?
toggle quoted message
Show quoted text
From: [email protected] <[email protected]> On Behalf Of Bertram Moshier Sent: 02 December 2022 20:12 To: [email protected] Subject: Re: [h390-vm] Can a VM machine ...? Hi, IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check. It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron. The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command. In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off. ? David Durand? wrote: > Fish wrote:
[...] > > I believe the DIAG8CMD option already covers that. > > But instead of a "request ignored" message, you get > > an Operation Exception Program Interrupt. (Or is it > > a Specification Exception? I forget!) > >? Previous thread indicates Operation Exception.
<nit> A program interrupt code 006 is a specification exception. </nit>
-- "Fish" (David B. Trout) Software Development Laboratories
mail: fish@...
|
Anyone can open an issue about the HCP command behavior when the Hercules setting causes a VMCE abend at:
toggle quoted message
Show quoted text
Hi,
IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check.
It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron.
The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command.
In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off.
Thank you.
David Durand? wrote:
> Fish wrote:
[...]
> > I believe the DIAG8CMD option already covers that.
> > But instead of a "request ignored" message, you get
> > an Operation Exception Program Interrupt. (Or is it
> > a Specification Exception? I forget!)
>
>? Previous thread indicates Operation Exception.
<nit>
A program interrupt code 006 is a specification exception.
</nit>
--
"Fish" (David B. Trout)
Software Development Laboratories
mail: fish@...
|
Hi,
IMHO, it isn't Hercules responsibility to handle the DIAG8CMD OFF beyond a program check.
It is the responsibility of the OS issuing the DIAG to Hercules.? Why?? It is how it would work with real iron.
The OS should capture the check and reflect it back to the user who attempted to issue the Hercules command.
In the case of VM/CE the return would be an error message and return code stating Herclues has DIAG8CMD off.
Thank you.
toggle quoted message
Show quoted text
David Durand? wrote:
> Fish wrote:
[...]
> > I believe the DIAG8CMD option already covers that.
> > But instead of a "request ignored" message, you get
> > an Operation Exception Program Interrupt. (Or is it
> > a Specification Exception? I forget!)
>
>? Previous thread indicates Operation Exception.
<nit>
A program interrupt code 006 is a specification exception.
</nit>
--
"Fish" (David B. Trout)
Software Development Laboratories
mail: fish@...
|
David Durand wrote: Fish wrote: [...] I believe the DIAG8CMD option already covers that. But instead of a "request ignored" message, you get an Operation Exception Program Interrupt. (Or is it a Specification Exception? I forget!) Previous thread indicates Operation Exception.
<nit> A program interrupt code 006 is a specification exception. </nit> -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@...
|
David Durand wrote: Fish wrote:
David Durand wrote:
and I suspect that there are very few (if any) surviving programs where DIAG is used for anything other than communicating with CP. I'm not so sure. I suspect they're probably are. Hercules for instance supports two different "Power Off" diagnose instructions: one for the 9221 and the other for 4361 and 937X (e.g. 9371). Cool! I've just never seen doc about that. * "New 4361 standard features" " * Programmable Power-Off -- enables the user to turn off the processor under program control." In fact, I seem to remember that VM itself (I can't remember which version specific of VM it was) supported it, as I recall, via an optional "poweroff" option to its "shutdown" command (e.g. "shutdown poweroff", or something close to that; it's been YEARS, folks!). I'm not sure IBM actually documented anywhere (i.e. in any manual anywhere) how to actually programmatically do so however. But I suspect if you search VM's source code you'll probably find it somewhere. If you were referring to Hercules documentation, then you're right. As far as I know it's not documented anywhere. Probably because it's not actually a "Hercules thing" to be documented, but is rather more of an "IBM specific mainframe model" type thing that Hercules just happens to conveniently support. If it helps any, the actual Hercules source code that handle the two techniques is in the "diagnose.c" source member: * * [...] Depending on what assumptions are made by the implementation of HCP, it might make sense to alter registers to reflect failure. Since the architecture allows anything, and requires nothing, the Hercules behavior of DIAG could be defined in a way that would not break HCP, if present.
I guess I'm coming to this party late. What exactly is the problem (issue) again? The complaint was from Olaf:
From: Rhialto rhialto@... On Mon 28 Nov 2022 at 18:41:21 -0000, Dave Wade wrote: > Its already there. HCP command.
There is just one thing wrong with it: if it is not allowed in the hercules config file (with DIAG8CMD ENABLE), VM crashes:
/hcp test /19:54:55 HHC00009I RRR...RING...GGG! / / / /19:54:55 DMKDMP908I SYSTEM FAILURE; CODE PRG006 PROCESSOR 00 / HHC00009I RRR...RING...GGG! / / HHC00009I RRR...RING...GGG! / / /VM/370 System Restart /
Okay, I guess now comes the time for me to ask the incredibly obvious question: WHY is it that the DIAG8CMD (and SHCMDOPT) statements can't simply be added to the Hercules configuration file?? It just occurred to me that the community edition out-of-box experience would be better if instead of crashing VM, the Hercules console said something like:
DIAG8CMD DISABLED. Hecules command ignored, command was: test I'm guessing it was because the Hercules developers felt doing so wouldn't be architecturally compliant? Invalid or illegal or undefined (pseudo-undefined??) (i.e. unsupported) instructions are, architecturally, *suppose* to cause a Program Interrupt. HOWEVER... That being said, the DIAG instruction *could*, technically, be considered a special case. AFAIK, each model is free to handle the Diagnose instruction in its own way (in any manner it sees fit, appropriate to its particular model), so I believe, *technically*, Hercules certainly *could* be changed to simply issue an error or warning message instead, instead of blowing up (program checking) like it's currently doing. I suppose that, *technically*, that wouldn't be violating the architecture (rules). But I think this is *definitely* something that needs to be discussed with the other developers (and the rest of the Hercules community) before being implemented. It could even point to manual or config more explicitly. Emulation is no worse, but there's no chance that running an exec that uses HCP would crash CP. Your idea has merit I think. If you and/or the rest of the community are serious about such a change, I suggest creating a new GitHub Issue for it so we developers along with the rest of the community can discuss it before implementing it: * I'm not able to find a lot of mainframe time right now, though I am reading the list, and it seemed like a reasonable idea. As I said, on the face of it, if does seem to me to be a not unreasonable request. (I'm somewhat reluctant to call it reasonable, but at the same time it doesn't seem entirely Unreasonable either.) -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@...
|
Instead of guessing what is going on has anyone looked at the dump that was produced?
Laddie Hanus
toggle quoted message
Show quoted text
On Friday, December 2, 2022, 12:35 AM, David Durand <david.durand@...> wrote:
David Durand wrote:
> and I suspect that there are very few (if any) surviving programs
> where DIAG is used for anything other than communicating with CP.
I'm not so sure. I suspect they're probably are. Hercules for instance supports two different "Power Off" diagnose instructions: one for the 9221 and the other for 4361 and 937X (e.g. 9371).
Cool! I've just never seen doc about that. ?
> Given that, I think an argument could be made that Hercules can
> just as well print a message on the console when DIAG is executed
> in supervisor state, rather than signalling an exception. This
> would amount to treating Hercules as a new model,
Hercules is ALREADY a "new model". Hercules is a Hercules model mainframe. It's its own unique model of mainframe, unlike any other.
yep.?
> and defining DIAG for that model in a "harmless", potentially
> helpful way. The Hercules console function has to be optional
> for security reasons, but? if the conditions are met for the
> CP DIAGNOSE '008' case, the option could choose between printing
> a message (DISABLED HERCULES CONSOLE REQUEST IGNORED: 'command',
> and the current extension.
I believe the DIAG8CMD option already covers that. But instead of a "request ignored" message, you get an Operation Exception Program Interrupt. (Or is it a Specification Exception? I forget!)
?Previous thread indicates Operation Exception.
> Depending on what assumptions are made by the implementation of
> HCP, it might make sense to alter registers to reflect failure.
> Since the architecture allows anything, and requires nothing,
> the Hercules behavior of DIAG could be defined in a way that
> would not break HCP, if present.
I guess I'm coming to this party late. What exactly is the problem (issue) again?
The complaint was from Olaf From:
On Mon 28 Nov 2022 at 18:41:21 -0000, Dave Wade wrote: > Its already there. HCP command.
There is just one thing wrong with it: if it is not allowed in the hercules config file (with DIAG8CMD ENABLE), VM crashes:
/hcp test? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /19:54:55? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HHC00009I RRR...RING...GGG!? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /19:54:55 DMKDMP908I SYSTEM FAILURE; CODE PRG006 PROCESSOR 00? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HHC00009I RRR...RING...GGG!? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HHC00009I RRR...RING...GGG!? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /VM/370 System Restart? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /?
It just occurred to me that the community edition out-of-box experience?would be better if instead of crashing VM, the Hercules console said something like:? DIAG8CMD DISABLED. Hecules?command ignored, command was: test
It could even point to manual or config more explicitly. Emulation is no worse, but there's no chance that running an exec that uses HCP would crash CP.
I'm not able to find a lot of mainframe?time right now, though I am reading the list, and it seemed like a reasonable idea. I don't know that I will be able?to manage a pull request any time soon, or whether people would like the idea.
? -- David
|