Discussion:
[hercules-390] Hercules Performance Degrades Over Time
lance@hayniemail.com [hercules-390]
2017-09-24 15:58:52 UTC
Permalink
I was hoping someone else has had this issue and can help me resolve it. I have an issue that when I first IPL, the total MIPS is what I expect. However, over time it goes down. I am not using MIPS to compare to real iron or anything like that, but just as a benchmark for my own system. When I first IPL, the total MIPS shows 496; however, once some time has passed (a few hours) it will drop to 81. I have tried disabling CPU scaling, I have change the Hercules config.


No matter what I do this pattern continues. This machine is dedicated to Hercules and nothing else is running on it. The host system is Ubuntu Server 16.04.3 LTS with 8 processors and 32GB of memory. Most of the memory is dedicated to Hercules and 4GB is left for the host. Using htop/uptime the serverload is almost none with load averages almost 0.


Here is a snippet of my configuration file:
HERCPRIO -15
TODPRIO -20
CPUPRIO 0
DEVPRIO -7
DEVTMAX 0
SRVPRIO 5


This is what my system reports when I first IPL:
----------------------------------------
PROC VERSION CPUID MODEL PCCA
NUMBER CODE ADDRESS
----------------------------------------
0 00 010497 UNKNOWN 00F5A008
1 00 110497 UNKNOWN 00F572A8
2 00 210497 UNKNOWN 00FB6DB8
3 00 310497 UNKNOWN 00FB6B70
4 00 410497 UNKNOWN 00FB84F8
5 00 510497 UNKNOWN 00FB80B8
6 00 610497 UNKNOWN 00F57060
7 00 710497 UNKNOWN 00F56DB8

8 PROCESSORS IN THIS COMPLEX

** TOTAL MIPS : 496.552259
** EQUIVALENT UNIPROCESSOR MIPS : 62.0690324
** MSU : 87


This is what it will look like after a few hours:
----------------------------------------
PROC VERSION CPUID MODEL PCCA
NUMBER CODE ADDRESS
----------------------------------------
0 00 010497 UNKNOWN 00FB80F0
1 00 110497 UNKNOWN 00FB8338
2 00 210497 UNKNOWN 00F5A008
3 00 310497 UNKNOWN 00F9F1B8
4 00 410497 UNKNOWN 00F572B0
5 00 510497 UNKNOWN 00F57068
6 00 610497 UNKNOWN 00FB6DB8
7 00 710497 UNKNOWN 00FB6B70

8 PROCESSORS IN THIS COMPLEX

** TOTAL MIPS : 81.3957336
** EQUIVALENT UNIPROCESSOR MIPS : 10.1744667
** MSU : 14
Jon Perryman jperryma@pacbell.net [hercules-390]
2017-09-24 17:14:43 UTC
Permalink
I'm making a guess because I don't use Hercules in 390 mode. MIPS can only be executed instructions (not instructions that possibly be executed). Unless you are running enough workload, I would expect it to go down. At IPL time, the machine is running a large workload initializing the machine, so it should be higher. I would be interested to hear the MIPS when you run a full workload keeping all processors busy. I suspect it would be higher than at IPL time.
Regards, Jon.

On Sunday, September 24, 2017 8:59 AM, "***@hayniemail.com [hercules-390]" <hercules-***@yahoogroups.com> wrote:


  I was hoping someone else has had this issue and can help me resolve it. I have an issue that when I first IPL, the total MIPS is what I expect. However, over time it goes down. I am not using MIPS to compare to real iron or anything like that, but just as a benchmark for my own system. When I first IPL, the total MIPS shows 496; however, once some time has passed (a few hours) it will drop to 81. I have tried disabling CPU scaling, I have change the Hercules config. 
No matter what I do this pattern continues. This machine is dedicated to Hercules and nothing else is running on it. The host system is Ubuntu Server 16.04.3 LTS with 8 processors and 32GB of memory. Most of the memory is dedicated to Hercules and 4GB is left for the host. Using htop/uptime the serverload is almost none with load averages almost 0.
Here is a snippet of my configuration file:HERCPRIO      -15TODPRIO       -20CPUPRIO       0DEVPRIO       -7DEVTMAX       0SRVPRIO       5
This is what my system reports when I first IPL:----------------------------------------                                   PROC   VERSION  CPUID   MODEL    PCCA                                    NUMBER    CODE                   ADDRESS                                  ----------------------------------------                   ! ;                 0       00     010497  UNKNOWN   00F5A008                                 1       00     110497  UNKNOWN   00F572A8                                 2       00     210497  UNKNOWN   00FB6DB8                                 3       00     310497  UNKNOWN   00FB6B70                                 4       00     410497  UNKNOWN   00FB84F8                                 5       00     510497  UNKNOWN   00FB80B8                                 6       00     610497  UNKNOWN   00F57060                                 7       00     710497  UNKNOWN   00F56DB8                                                                                                       &nbs! p; 8 PROCESSORS IN THIS COMPLEX                                                                                                                        ** TOTAL MIPS                   : 496.552259                              ** EQUIVALENT UNIPROCESSOR MIPS : 62.0690324                              ** MSU                          : 87  
This is what it will look like after a few hours:----------------------------------------                                   PROC   VERSION  CPUID   MODEL    PCCA                                    NUMBER    CODE                   ADDRESS                                  ----------------------------------------                                    0       00     010497  UNKNOWN   00FB80F0                                 1       00     110497  UNKNOWN   00FB8338                                 2       00     210497  UNKNOWN   00F5A008                                 3       00     310497  UNKNOWN   00F9F1B8                                 4       00     410497  UNKNOWN   00F572B0                                 5       00     510497  UNKNOWN   00F57068                                 6       00     610497  UNKNOWN   00FB6DB8                                 7       00     710497  UNKNOWN   00FB6B70                                                                                                         8 PROCESSORS IN THIS COMPLEX                                                              &nb! sp;                                                         ** TOTAL MIPS                   : 81.3957336                              ** EQUIVALENT UNIPROCESSOR MIPS : 10.1744667                              ** MSU                          : 14         
#yiv9410792368 #yiv9410792368 -- #yiv9410792368ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv9410792368 #yiv9410792368ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv9410792368 #yiv9410792368ygrp-mkp #yiv9410792368hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv9410792368 #yiv9410792368ygrp-mkp #yiv9410792368ads {margin-bottom:10px;}#yiv9410792368 #yiv9410792368ygrp-mkp .yiv9410792368ad {padding:0 0;}#yiv9410792368 #yiv9410792368ygrp-mkp .yiv9410792368ad p {margin:0;}#yiv9410792368 #yiv9410792368ygrp-mkp .yiv9410792368ad a {color:#0000ff;text-decoration:none;}#yiv9410792368 #yiv9410792368ygrp-sponsor #yiv9410792368ygrp-lc {font-family:Arial;}#yiv9410792368 #yiv9410792368ygrp-sponsor #yiv9410792368ygrp-lc #yiv9410792368hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv9410792368 #yiv9410792368ygrp-sponsor #yiv9410792368ygrp-lc .yiv9410792368ad {margin-bottom:10px;padding:0 0;}#yiv9410792368 #yiv9410792368actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv9410792368 #yiv9410792368activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv9410792368 #yiv9410792368activity span {font-weight:700;}#yiv9410792368 #yiv9410792368activity span:first-child {text-transform:uppercase;}#yiv9410792368 #yiv9410792368activity span a {color:#5085b6;text-decoration:none;}#yiv9410792368 #yiv9410792368activity span span {color:#ff7900;}#yiv9410792368 #yiv9410792368activity span .yiv9410792368underline {text-decoration:underline;}#yiv9410792368 .yiv9410792368attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv9410792368 .yiv9410792368attach div a {text-decoration:none;}#yiv9410792368 .yiv9410792368attach img {border:none;padding-right:5px;}#yiv9410792368 .yiv9410792368attach label {display:block;margin-bottom:5px;}#yiv9410792368 .yiv9410792368attach label a {text-decoration:none;}#yiv9410792368 blockquote {margin:0 0 0 4px;}#yiv9410792368 .yiv9410792368bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv9410792368 .yiv9410792368bold a {text-decoration:none;}#yiv9410792368 dd.yiv9410792368last p a {font-family:Verdana;font-weight:700;}#yiv9410792368 dd.yiv9410792368last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv9410792368 dd.yiv9410792368last p span.yiv9410792368yshortcuts {margin-right:0;}#yiv9410792368 div.yiv9410792368attach-table div div a {text-decoration:none;}#yiv9410792368 div.yiv9410792368attach-table {width:400px;}#yiv9410792368 div.yiv9410792368file-title a, #yiv9410792368 div.yiv9410792368file-title a:active, #yiv9410792368 div.yiv9410792368file-title a:hover, #yiv9410792368 div.yiv9410792368file-title a:visited {text-decoration:none;}#yiv9410792368 div.yiv9410792368photo-title a, #yiv9410792368 div.yiv9410792368photo-title a:active, #yiv9410792368 div.yiv9410792368photo-title a:hover, #yiv9410792368 div.yiv9410792368photo-title a:visited {text-decoration:none;}#yiv9410792368 div#yiv9410792368ygrp-mlmsg #yiv9410792368ygrp-msg p a span.yiv9410792368yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv9410792368 .yiv9410792368green {color:#628c2a;}#yiv9410792368 .yiv9410792368MsoNormal {margin:0 0 0 0;}#yiv9410792368 o {font-size:0;}#yiv9410792368 #yiv9410792368photos div {float:left;width:72px;}#yiv9410792368 #yiv9410792368photos div div {border:1px solid #666666;min-height:62px;overflow:hidden;width:62px;}#yiv9410792368 #yiv9410792368photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv9410792368 #yiv9410792368reco-category {font-size:77%;}#yiv9410792368 #yiv9410792368reco-desc {font-size:77%;}#yiv9410792368 .yiv9410792368replbq {margin:4px;}#yiv9410792368 #yiv9410792368ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv9410792368 #yiv9410792368ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv9410792368 #yiv9410792368ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv9410792368 #yiv9410792368ygrp-mlmsg select, #yiv9410792368 input, #yiv9410792368 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv9410792368 #yiv9410792368ygrp-mlmsg pre, #yiv9410792368 code {font:115% monospace;}#yiv9410792368 #yiv9410792368ygrp-mlmsg * {line-height:1.22em;}#yiv9410792368 #yiv9410792368ygrp-mlmsg #yiv9410792368logo {padding-bottom:10px;}#yiv9410792368 #yiv9410792368ygrp-msg p a {font-family:Verdana;}#yiv9410792368 #yiv9410792368ygrp-msg p#yiv9410792368attach-count span {color:#1E66AE;font-weight:700;}#yiv9410792368 #yiv9410792368ygrp-reco #yiv9410792368reco-head {color:#ff7900;font-weight:700;}#yiv9410792368 #yiv9410792368ygrp-reco {margin-bottom:20px;padding:0px;}#yiv9410792368 #yiv9410792368ygrp-sponsor #yiv9410792368ov li a {font-size:130%;text-decoration:none;}#yiv9410792368 #yiv9410792368ygrp-sponsor #yiv9410792368ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv9410792368 #yiv9410792368ygrp-sponsor #yiv9410792368ov ul {margin:0;padding:0 0 0 8px;}#yiv9410792368 #yiv9410792368ygrp-text {font-family:Georgia;}#yiv9410792368 #yiv9410792368ygrp-text p {margin:0 0 1em 0;}#yiv9410792368 #yiv9410792368ygrp-text tt {font-size:120%;}#yiv9410792368 #yiv9410792368ygrp-vital ul li:last-child {border-right:none !important;}#yiv9410792368
lance@hayniemail.com [hercules-390]
2017-09-24 17:20:29 UTC
Permalink
You know, when I wrote the script to give me MIPS I intended it to give me total MIPS as a capacity (how much to expect) not the current utilization. However, I never even thought about it being coded wrong and actually giving me what it is using vs total capacity.

Ill look over my script and see what it says.
Jon Perryman jperryma@pacbell.net [hercules-390]
2017-09-25 02:11:11 UTC
Permalink
I doubt that you will get any relevant capacity MIPS. To get that value, you would need to run a workload to get the potential capacity. You could probably approximate it by multiplying each CPU %busy by mips used for each CPU. Maybe CBTTAPE.ORG has something that can give you these numbers.
Good luck. Jon.
On Sunday, September 24, 2017 10:20 AM, "***@hayniemail.com [hercules-390]" <hercules-***@yahoogroups.com> wrote:
  You know, when I wrote the script to give me MIPS I intended it to give me total MIPS as a capacity (how much to expect) not the current utilization. However, I never even thought about it being coded wrong and actually giving me what it is using vs total capacity. #yiv8296628409 #yiv8296628409 -- #yiv8296628409ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv8296628409 #yiv8296628409ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv8296628409 #yiv8296628409ygrp-mkp #yiv8296628409hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv8296628409 #yiv8296628409ygrp-mkp #yiv8296628409ads {margin-bottom:10px;}#yiv8296628409 #yiv8296628409ygrp-mkp .yiv8296628409ad {padding:0 0;}#yiv8296628409 #yiv8296628409ygrp-mkp .yiv8296628409ad p {margin:0;}#yiv8296628409 #yiv8296628409ygrp-mkp .yiv8296628409ad a {color:#0000ff;text-decoration:none;}#yiv8296628409 #yiv8296628409ygrp-sponsor #yiv8296628409ygrp-lc {font-family:Arial;}#yiv8296628409 #yiv8296628409ygrp-sponsor #yiv8296628409ygrp-lc #yiv8296628409hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv8296628409 #yiv8296628409ygrp-sponsor #yiv8296628409ygrp-lc .yiv8296628409ad {margin-bottom:10px;padding:0 0;}#yiv8296628409 #yiv8296628409actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv8296628409 #yiv8296628409activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv8296628409 #yiv8296628409activity span {font-weight:700;}#yiv8296628409 #yiv8296628409activity span:first-child {text-transform:uppercase;}#yiv8296628409 #yiv8296628409activity span a {color:#5085b6;text-decoration:none;}#yiv8296628409 #yiv8296628409activity span span {color:#ff7900;}#yiv8296628409 #yiv8296628409activity span .yiv8296628409underline {text-decoration:underline;}#yiv8296628409 .yiv8296628409attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv8296628409 .yiv8296628409attach div a {text-decoration:none;}#yiv8296628409 .yiv8296628409attach img {border:none;padding-right:5px;}#yiv8296628409 .yiv8296628409attach label {display:block;margin-bottom:5px;}#yiv8296628409 .yiv8296628409attach label a {text-decoration:none;}#yiv8296628409 blockquote {margin:0 0 0 4px;}#yiv8296628409 .yiv8296628409bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv8296628409 .yiv8296628409bold a {text-decoration:none;}#yiv8296628409 dd.yiv8296628409last p a {font-family:Verdana;font-weight:700;}#yiv8296628409 dd.yiv8296628409last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv8296628409 dd.yiv8296628409last p span.yiv8296628409yshortcuts {margin-right:0;}#yiv8296628409 div.yiv8296628409attach-table div div a {text-decoration:none;}#yiv8296628409 div.yiv8296628409attach-table {width:400px;}#yiv8296628409 div.yiv8296628409file-title a, #yiv8296628409 div.yiv8296628409file-title a:active, #yiv8296628409 div.yiv8296628409file-title a:hover, #yiv8296628409 div.yiv8296628409file-title a:visited {text-decoration:none;}#yiv8296628409 div.yiv8296628409photo-title a, #yiv8296628409 div.yiv8296628409photo-title a:active, #yiv8296628409 div.yiv8296628409photo-title a:hover, #yiv8296628409 div.yiv8296628409photo-title a:visited {text-decoration:none;}#yiv8296628409 div#yiv8296628409ygrp-mlmsg #yiv8296628409ygrp-msg p a span.yiv8296628409yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv8296628409 .yiv8296628409green {color:#628c2a;}#yiv8296628409 .yiv8296628409MsoNormal {margin:0 0 0 0;}#yiv8296628409 o {font-size:0;}#yiv8296628409 #yiv8296628409photos div {float:left;width:72px;}#yiv8296628409 #yiv8296628409photos div div {border:1px solid #666666;min-height:62px;overflow:hidden;width:62px;}#yiv8296628409 #yiv8296628409photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv8296628409 #yiv8296628409reco-category {font-size:77%;}#yiv8296628409 #yiv8296628409reco-desc {font-size:77%;}#yiv8296628409 .yiv8296628409replbq {margin:4px;}#yiv8296628409 #yiv8296628409ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv8296628409 #yiv8296628409ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv8296628409 #yiv8296628409ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv8296628409 #yiv8296628409ygrp-mlmsg select, #yiv8296628409 input, #yiv8296628409 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv8296628409 #yiv8296628409ygrp-mlmsg pre, #yiv8296628409 code {font:115% monospace;}#yiv8296628409 #yiv8296628409ygrp-mlmsg * {line-height:1.22em;}#yiv8296628409 #yiv8296628409ygrp-mlmsg #yiv8296628409logo {padding-bottom:10px;}#yiv8296628409 #yiv8296628409ygrp-msg p a {font-family:Verdana;}#yiv8296628409 #yiv8296628409ygrp-msg p#yiv8296628409attach-count span {color:#1E66AE;font-weight:700;}#yiv8296628409 #yiv8296628409ygrp-reco #yiv8296628409reco-head {color:#ff7900;font-weight:700;}#yiv8296628409 #yiv8296628409ygrp-reco {margin-bottom:20px;padding:0px;}#yiv8296628409 #yiv8296628409ygrp-sponsor #yiv8296628409ov li a {font-size:130%;text-decoration:none;}#yiv8296628409 #yiv8296628409ygrp-sponsor #yiv8296628409ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv8296628409 #yiv8296628409ygrp-sponsor #yiv8296628409ov ul {margin:0;padding:0 0 0 8px;}#yiv8296628409 #yiv8296628409ygrp-text {font-family:Georgia;}#yiv8296628409 #yiv8296628409ygrp-text p {margin:0 0 1em 0;}#yiv8296628409 #yiv8296628409ygrp-text tt {font-size:120%;}#yiv8296628409 #yiv8296628409ygrp-vital ul li:last-child {border-right:none !important;}#yiv8296628409
lance@hayniemail.com [hercules-390]
2017-09-25 02:27:57 UTC
Permalink
Thank you Joe, I appreciate the insight. I tried writing a quick program to get the Hercules CPU's to max out but I couldn't get them all to get to 100%.
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-04-24 20:59:14 UTC
Permalink
I'm doing some test with hyperion, the master branch
which may be obtained through git.

It compiles fine and run, but I've this bad habit
of using shell commands ("sh" emulator command)
from the hercules console.

In the standard hercules-3.13 the output goes
to the console, while with the current master
version of hyperion I can't get any output.

The command get executed (a simple "sh > /tmp/test"
create the "test" output), but I can't see any
output on the console.

I'm working under Linux Gentoo and a previous version
of hyperion:master (downloaded 25 July 2017) was working
correctly configured this way:

.../../hyperion/configure --disable-external-gui --enable-capabilities
--enable-optimization='-O2 -march=native -m128bit-long-double
-minline-stringops-dynamically -fomit-frame-pointer'
--prefix=/home/peppe/hypgit/hyp380-0

The key point, at that time, was "--disable-external-gui",
without this flag, again, no output. With external gui
disabled, the output reach the console as under hercules-3.13.

Any idea?

Thanks, Peppe.
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-04-25 10:55:44 UTC
Permalink
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
I'm doing some test with hyperion, the master branch
which may be obtained through git.
It compiles fine and run, but I've this bad habit
of using shell commands ("sh" emulator command)
from the hercules console.
In the standard hercules-3.13 the output goes
to the console, while with the current master
version of hyperion I can't get any output.
The command get executed (a simple "sh > /tmp/test"
create the "test" output), but I can't see any
output on the console.
I'm working under Linux Gentoo and a previous version
of hyperion:master (downloaded 25 July 2017) was working
.../../hyperion/configure --disable-external-gui --enable-capabilities
--enable-optimization='-O2 -march=native -m128bit-long-double
-minline-stringops-dynamically -fomit-frame-pointer'
--prefix=/home/peppe/hypgit/hyp380-0
The key point, at that time, was "--disable-external-gui",
without this flag, again, no output. With external gui
disabled, the output reach the console as under hercules-3.13.
Any idea?
Thanks, Peppe.
Apologies, the "--disable-external-gui" has no effect,
a mistake checking different versions of the emulator ;-(

But the problem is there. the "sh" command doesn't show
any output on console, in the couple of versions I've
on board, one of them the current
"Commit a7223eb5bf486b15d53898fb614c83e774b76ef9"
master version.

Comparing the hyperion code with the hercules-3.13 current
code, I found that, in logger.c, the hyperion:logger_thread() doesn't
dup2() STDOUT_FILENO on logger_syslogfd[LOG_WRITE].

hercules-3.13:logger.c does, just at the beginning of logger_thread():

#if !defined( _MSVC_ )
/* Redirect stdout to the logger */
if(dup2(logger_syslogfd[LOG_WRITE],STDOUT_FILENO) == -1)
{
if(logger_hrdcpy)
fprintf(logger_hrdcpy, _("HHCLG001E Error redirecting stdout:
%s\n"), strerror(errno));
exit(1);
}
#endif /* !defined( _MSVC_ ) */

while hyperion don't, for what I can see grepping sources.

If I change hyperion:logger.c adding this fragment of hercules-3.13 code,
just after:


/* ZZ FIXME: We must empty the read pipe before we terminate */
/* (Couldn't we just loop waiting for a 'select(,&readset,,,timeout)'
to return zero?? Or use the 'poll' function similarly?? - Fish) */

the "sh" hyperion command display "results on the Hercules console":

HHC01603I sh pwd
/zfs/zvm/nmoseley/batch380.dyn75

The "help sh" hyperion command reports:

HHC01603I Format: "sh command [args...]" where 'command' is any valid shell
HHC01603I command. The entered command and any arguments are passed as-is to the
HHC01603I shell for processing and the results are displayed on the Hercules console.

so ... it may be a bug?

Peppe.
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2018-05-01 09:43:18 UTC
Permalink
Peppe wrote:

[...]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Comparing the hyperion code with the hercules-3.13 current
code, I found that, in logger.c, the hyperion:logger_thread()
doesn't dup2() STDOUT_FILENO on logger_syslogfd[LOG_WRITE].
#if !defined( _MSVC_ )
/* Redirect stdout to the logger */
if(dup2(logger_syslogfd[LOG_WRITE],STDOUT_FILENO) == -1)
{
if(logger_hrdcpy)
%s\n"), strerror(errno));
exit(1);
}
#endif /* !defined( _MSVC_ ) */
while hyperion don't, for what I can see grepping sources.
[...]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
so ... it may be a bug?
Peppe.
It's definitely a bug. Thank you for reporting this Peppe. Please do me a favor and create a new github issue (bug report) for this:

https://github.com/Fish-Git/hyperion/issues


and I will try to get it fixed as soon as I can.

Thanks!
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-01 11:46:21 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
[...]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Comparing the hyperion code with the hercules-3.13 current
code, I found that, in logger.c, the hyperion:logger_thread()
doesn't dup2() STDOUT_FILENO on logger_syslogfd[LOG_WRITE].
#if !defined( _MSVC_ )
/* Redirect stdout to the logger */
if(dup2(logger_syslogfd[LOG_WRITE],STDOUT_FILENO) == -1)
{
if(logger_hrdcpy)
%s\n"), strerror(errno));
exit(1);
}
#endif /* !defined( _MSVC_ ) */
while hyperion don't, for what I can see grepping sources.
[...]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
so ... it may be a bug?
Peppe.
https://github.com/Fish-Git/hyperion/issues
and I will try to get it fixed as soon as I can.
Thanks!
I already did, but apparently on the wrong github project:

https://github.com/hercules-390/hyperion

Damn, how many hyperion github projects exists?

But the problems seems the same.

I'll open the issue on YOUR github as soon as possible.

Thanks for the answer and for the advice about the correct
hyperion github URL.

Peppe.
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2018-05-01 12:46:34 UTC
Permalink
[...]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
It's definitely a bug. Thank you for reporting this Peppe.
Please do me a favor and create a new github issue (bug
https://github.com/Fish-Git/hyperion/issues
and I will try to get it fixed as soon as I can.
https://github.com/hercules-390/hyperion
What's the issue number?
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Damn, how many hyperion github projects exists?
At least three that I know of:


Roger's original 3.x series at:
https://github.com/rbowler/spinhawk


The original Hyperion 4.0 project at:
https://github.com/hercules-390/hyperion


My own SDL Hyperion 4.0 fork at:
https://github.com/Fish-Git/hyperion
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
But the problems seems the same.
They ARE the same. My repo is a fork of the original Hyperion 4.0, created (forked) in November 2016 and the bug was introduced (by me! Sorry!) in May 2016. So the exact same bug exists in both repositories.
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
I'll open the issue on YOUR github as soon as possible.
Thanks.
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Thanks for the answer and for the advice about the correct
hyperion github URL.
Well, which github hyperion project/URL is considered the "correct" is debatable. It depends largely on which one you are a "fan" of I guess. <shrug>

But yes, I would very much appreciate you creating a github issue to my SDL Hyperion too. Thanks!
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Ivan Warren ivan@vmfacility.fr [hercules-390]
2018-05-01 13:13:06 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
https://github.com/rbowler/spinhawk
https://github.com/hercules-390/hyperion
https://github.com/Fish-Git/hyperion
Looking under github there are at least 20 or 30 forks...

--Ivan



[Non-text portions of this message have been removed]
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-01 16:48:53 UTC
Permalink
Post by Ivan Warren ***@vmfacility.fr [hercules-390]
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
https://github.com/rbowler/spinhawk
https://github.com/hercules-390/hyperion
https://github.com/Fish-Git/hyperion
Looking under github there are at least 20 or 30 forks...
--Ivan
Well, I've to admit I've a copy in my personal
github (free version, doesn't allow private projects).

But it is not a branch, actually it is just a personal
copy, for personal purpouses.

By the way, a general question, a doubt.

Am I allowed to put a personal copy of spinhawk
or hyperion on my personal github, open to the
world, open for the github policy and not for
my choice?

Peppe.

[Non-text portions of this message have been removed]
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2018-05-02 00:03:41 UTC
Permalink
Ivan Warren wrote:

[...]
Post by Ivan Warren ***@vmfacility.fr [hercules-390]
Looking under github there are at least 20 or 30 forks...
I suspect most of those forks aren't true forks (with "true" meaning "being actively developed").

I suspect most of them are either just people dabbling with building Hercules on their own or were created by those who wanted to research a problem and submit a patch or "merge request" to fix a problem in one of the other "official" (or MORE "official") forks/repositories.

Bottom line: as far as I know the three github repositories I listed are the only "active" forks of the Hercules project that I am personally aware of.. If there are others they are being rather low key.
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-02 08:16:21 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
[...]
Post by Ivan Warren ***@vmfacility.fr [hercules-390]
Looking under github there are at least 20 or 30 forks...
I suspect most of those forks aren't true forks (with "true" meaning "being actively developed").
I suspect most of them are either just people dabbling with building
Hercules on their own or were created by those who wanted to research a
problem and submit a patch or "merge request" to fix a problem in one of
the other "official" (or MORE "official") forks/repositories.
I've one branch, David, just for personal developing, I didn't
understand, at that time, this may have create confusione. Apologies.

And I've a question about this.

Given a "free" github repo can't mark a project "private",
even if it is only for personal developing, is cloning
over github spinawk or hyperion allowed?

If not, we have solved the issue, I'll delete my copy
of hyperion390 on github (the only one I've, old, 2016).

If yes, what the best way to do it?

A standard "README.MD" would be enough?

In this case, may I ask to the list spinhawk and hyperion developers
what should be written in the README.MD to make clear is a "personal
working copy" and not an official branch (and maybe listing the
official branches)?

It would help users to recognize the "correct sites", isn't?

Peppe.
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2018-05-02 17:07:35 UTC
Permalink
Giuseppe Vitillaro (Peppe) asked:

[...]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
And I've a question about this.
Given a "free" github repo can't mark a project "private",
even if it is only for personal developing, is cloning
over github spinawk or hyperion allowed?
As far as I know, yes!

But I must quickly add that IANAL (I Am Not A Lawyer) either, of course.
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
If not, we have solved the issue, I'll delete my copy
of hyperion390 on github (the only one I've, old, 2016).
If there's no need (reason) for it, then yes, removing it from github would probably be best.
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
If yes, what the best way to do it?
A standard "README.MD" would be enough?
I would suggest doing two things: 1) mentioning in the Description(*) of the repository that it is just a specialized test repository (used to research a problem you were having) and NOT any type of official repository, and 2) mentioning the same thing in your "README.MD" too. Doing both would make it very clear and obvious.


(*) The description of your clone when you created your repository on GitHub. You can easily edit the description by clicking the 'Edit' button next to the description on the main web page of your repository. For my own repository (https://github.com/Fish-Git/hyperion) it appears on the right side of the screen at the top of the page just below the tabs. Note: you won't see the 'Edit' button when you visit my repository because you are not the owner of my repository. But if you visit the URL of your own repository (the clone you made), then you should see an 'Edit' button. Just edit the description to say this is a personal test repository, etc, and mention the same thing in the README.MD too. That should be good enough.
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
In this case, may I ask to the list spinhawk and hyperion
developers what should be written in the README.MD to make
clear is a "personal working copy" and not an official branch
(and maybe listing the official branches)?
What should be written? Exactly what you wrote above! :)
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
It would help users to recognize the "correct sites", isn't?
Yep. Agreed.
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-02 17:14:09 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
If not, we have solved the issue, I'll delete my copy
of hyperion390 on github (the only one I've, old, 2016).
If there's no need (reason) for it, then yes, removing it from github
would probably be best.
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
If yes, what the best way to do it?
A standard "README.MD" would be enough?
I would suggest doing two things: 1) mentioning in the Description(*) of
the repository that it is just a specialized test repository (used to
research a problem you were having) and NOT any type of official
repository, and 2) mentioning the same thing in your "README.MD" too.
Doing both would make it very clear and obvious.
(*) The description of your clone when you created your repository on
GitHub. You can easily edit the description by clicking the 'Edit'
button next to the description on the main web page of your repository.
For my own repository (https://github.com/Fish-Git/hyperion) it appears
on the right side of the screen at the top of the page just below the
tabs. Note: you won't see the 'Edit' button when you visit my
repository because you are not the owner of my repository. But if you
visit the URL of your own repository (the clone you made), then you
should see an 'Edit' button. Just edit the description to say this is a
personal test repository, etc, and mention the same thing in the
README.MD too. That should be good enough.
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
In this case, may I ask to the list spinhawk and hyperion
developers what should be written in the README.MD to make
clear is a "personal working copy" and not an official branch
(and maybe listing the official branches)?
What should be written? Exactly what you wrote above! :)
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
It would help users to recognize the "correct sites", isn't?
Yep. Agreed.
---

Thanks for the nice answer. I'll delete my current hyperion
repo from github as soon as I've verified I've not any "pending"
directory linked to this site on my tree. I shouldn't ;-)

If I'll need again to push a spinhawk/hyperion personal version
to my personal github "box" I'll try to make clear it is
"just for my eyes", as you suggested, and show the list
of the official branches for users who eventually will come
to my pages.

Peppe.
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-02 17:23:59 UTC
Permalink
I'm playing with spinhawk, and hyperion by the way,
HDL dynamic loader to define the J.Winter dyn75/tcpip
instruction for my beloved MVS3.8j.

I know it works under the modified version of the
hercules emulator distributed with TK4- (thanks
so much Juergen, a wonderful job), but I've now
a personal SYSGEN, which run under the standard
emulators, where I wish to run the J. Winter FTPD.

I can't with the dyn75/TCPIP /*75*/ instruction and
I thought to implement it as a "dynamically loadable
instruction", following the guidelines in README.HDL.

It works without a glich under hyperion, without
any change for hyperion-390, with minor changes
to dyn75.c for hyperion-Fish.

Now the dyn75/tcpip instruction may be loaded,
if even needed, simply executing "ldmod dyn75"
BEFORE IPL under hyperion. The TK4- FTPD works without
a glitch!

Unfortunately I had an issue with the reference
hercules-3.14 spinhawk (and github master version).

I opened the issue

https://github.com/rbowler/spinhawk/issues/79

on the spinhawk github repo (I hope this is the correct
one), I'll append here, for the list eyes.

I also wonder if the J.Winter dyn75/tcpip code can't
be kept into the spinhawk/hyperion trees. As an HDL
instruction it can't do any damage to any user who
is not aware of its purpouses, while it may be very
useful for MVS3.8j users.

Peppe.

-----------------------------------------------------------------------
https://github.com/rbowler/spinhawk/issues/79

Dynamic loader, instructions do not get actually loaded. #79

I'm currently testing J. Winter dyn75 (75/TCPIP instruction for MVS3.8j)
under hercules-3.13.

On both the github master and the reference hercules-3.13.tar.gz
distribution, new dynamically loadable instructions get compiled and
linked correctly and loaded into the optable, as "lsmod" show, with the
"ldmod" command.

Unfortunately, although correctly loaded, they never get actually
executed, as a simple test with the reference TESTINS.C/BARF instruction
show.

I did some debugging and I found that the function
"set_opcode_pointers()", in cpu.c, is called ONLY at emulator
initialization time, from cpu.c:1989 and never called again.

So the set_opcode_pointers() in opcode.c is not called to initialize the
"regs->s370_opcode_table" runtime real table AFTER the "ldmod" command
load a new instruction and the instruction is NEVER actually seen at
execution time.

A simple change in ipl.c:

`@@ -408,6 +408,9 @@ int i; /* Array subscript */
ARCH_DEP(store_int_timer_nolock) (regs);
#endif

/* Initialize opcode table pointers */
set_opcode_pointers (regs);
if(regs->host && regs->guestregs)
{
ARCH_DEP(cpu_reset)(regs->guestregs);`

allow to reload the reg->opcode_table just BEFORE an IPL (which seems the
right, safe time to perform this action) and with this simple patch
dynamically loadable instructions get executed correctly.

I now have the J. Winter dyn75/tcpip instructions correcly loaded (with
"ldmod dyn75") and executed from MVS3.8J (personal SYSGEN), as a test with
the TK4- J.Winter FTPD show.

Also the TESTINS.C begin to work correctly after applying this patch to
ipl.c.

Regards, Orfheo (AKA Peppe/G. Vitillaro on hercules main group).
Harold Grovesteen h.grovsteen@tx.rr.com [hercules-390]
2018-05-02 18:38:35 UTC
Permalink
On Wed, 2018-05-02 at 19:23 +0200, Giuseppe Vitillaro
 
With regards to dyn75, this is a copy of the license agreement I
downloaded in the past.  I believe this answers your questions
concerning incorporation

Harold Grovesteen

dyn75 was written by Jason Paul Winter and may be obtained
from http://www.mountaindesigns.com/jcc/

It is distributed under the terms of the below BSD-like
licence, which allows it to be included in projects such
as Hercules and Hercules/380 (both under the QPL licence)
without taking away the rights of others to use it in
BSD-licenced projects, and obviously as copyright holder
I can still use it in my commercial projects (such as JCC).

Copyright (c) 2003-2010, Jason Paul Winter
All rights reserved.

Redistribution and use in source and binary forms, with 
or without modification, are permitted provided that 
the following conditions are met:

Redistributions of source code must retain the above 
copyright notice, this list of conditions and the 
following disclaimer.

Redistributions in binary form must reproduce the above 
copyright notice, this list of conditions and the following 
disclaimer in the documentation and/or other materials 
provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 
DAMAGE.
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-02 19:36:47 UTC
Permalink
Post by Harold Grovesteen ***@tx.rr.com [hercules-390]
On Wed, 2018-05-02 at 19:23 +0200, Giuseppe Vitillaro
 
With regards to dyn75, this is a copy of the license agreement I
downloaded in the past.  I believe this answers your questions
concerning incorporation
Harold Grovesteen
Understood, the answer is NO.

Well, fair.

For me would be enough if my issue with spinhawk dynamic
loader may be fixed, in a way or another.

I know how to get dyn75 working under hercules as a
static or dynamic instruction, but I would be really
glad if dynamic loading of instructions works as
specified in the README.HDL in the standard versions
of the 3.x and 4.x emulators.

It is definitely a better solution, isn't?

Peppe.

[Non-text portions of this message have been removed]
kerravon86@yahoo.com.au [hercules-390]
2018-05-04 12:03:21 UTC
Permalink
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Post by Harold Grovesteen ***@tx.rr.com [hercules-390]
With regards to dyn75, this is a copy of the license agreement I
downloaded in the past. I believe this answers your questions
concerning incorporation
Understood, the answer is NO.
I don't know how you came to that conclusion.
The BSD license allows it to be incorporated
into QPL as far as I can see.

I was actually involved in this. ie I emailed Jason
Winter and asked him to clarify the copyright. He
replied back and asked me to ask in this group
what licenses he could use so that it was still
compatible with QPL, and I believe Jay Maynard
replied and said that BSD was the only one that
came to mind. I reported that back to Jason and
he was happy to go with the LESS-restrictive BSD
license. I was the one who then created the new
dyn75 bundle and I was under the impression
that Harold was going to go ahead and put that
into mainstream Hercules. This is the first time I
have seen anyone complain that BSD license is
holding things back.

BSD and public domain code should both be able
to be incorporated into QPL, as far as I know.

BFN. Paul.
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-04 16:57:04 UTC
Permalink
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Post by Harold Grovesteen ***@tx.rr.com [hercules-390]
With regards to dyn75, this is a copy of the license agreement I
downloaded in the past. I believe this answers your questions
concerning incorporation
Understood, the answer is NO.
I don't know how you came to that conclusion.
The BSD license allows it to be incorporated
into QPL as far as I can see.

I was actually involved in this. ie I emailed Jason
Winter and asked him to clarify the copyright. He
replied back and asked me to ask in this group
what licenses he could use so that it was still
compatible with QPL, and I believe Jay Maynard
replied and said that BSD was the only one that
came to mind. I reported that back to Jason and
he was happy to go with the LESS-restrictive BSD
license. I was the one who then created the new
dyn75 bundle and I was under the impression
that Harold was going to go ahead and put that
into mainstream Hercules. This is the first time I
have seen anyone complain that BSD license is
holding things back.

BSD and public domain code should both be able
to be incorporated into QPL, as far as I know.

BFN. Paul.

---

Well, Paul, I always, as a first guess,
came to the "worst possible" conclusion,
it is really "rare" to find me on the
"optimistic" side of the "force" ;-)

After such an assumption, only good news
may come, isn't? ;-)

I would be really glad to see the Jason
work "incorporated" into an hercules GIT
official tree.

It is so important for our beloved OS/VS2!

Anyone may add to the Paul comment in this
direction? May we still contact Jason about
this? His site is not anymore available,
unfortunately.

Peppe.

Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-01 16:18:09 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
[...]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
It's definitely a bug. Thank you for reporting this Peppe.
Please do me a favor and create a new github issue (bug
https://github.com/Fish-Git/hyperion/issues
and I will try to get it fixed as soon as I can.
https://github.com/hercules-390/hyperion
What's the issue number?
https://github.com/hercules-390/hyperion/issues/262

is the issue and I added a comment on the logger.c
file entry.

Don't worry I'll open an issue on your branch
tomorrow, where I'll describe the problem.

I'm glad it looks as a bug to your eyes, shell
output on console is really great for any
"automation" process, especially on a UNIX
system.

I just implemented a simple tape library
for MVS3.8j which answer to MVS tape mount
requests automatically, looking for existing
tape, by label, on a "tapetab" file.

Works like a charm, but I badly need shell
commands output on the console to be intercepted
by HAO and I need grep capture groups implemented
in HAO. Hyperion already have them ;-).

Peppe.
Giuseppe Vitillaro giuseppe@vitillaro.org [hercules-390]
2018-05-02 16:45:06 UTC
Permalink
Post by '\'Fish\' (David B. Trout)' ***@gmail.com [hercules-390]
Post by Giuseppe Vitillaro ***@vitillaro.org [hercules-390]
I'll open the issue on YOUR github as soon as possible.
Thanks.
And here is my issue on github, David:

https://github.com/Fish-Git/hyperion/issues/95
Shell commands output, logger.c #95

Apologies for the delay, I had some very busy day lately.

Peppe.
Loading...