Problem with Instrate

classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Problem with Instrate

Hercules390 - General mailing list
Hi Everyone,

 

I got a problem with INSTRATE :

 

  - 14.32.21 JOB02331  $HASP373 INSTRATE STARTED - INIT 1    - CLASS A - SYS  

  -  SYS1                                                                    

  - 14.32.21 JOB02331  +INSTRATE STARTED                                      

  - 14.32.21 JOB02331  +  1 intel i7, z/os 1.10, 4.00                        

  - 14.32.21 JOB02331  +  Ranked by usage (general)                          

  - 14.32.21 JOB02331  +  Samples   =   9                                    

  - 14.32.21 JOB02331  +  Loops     =   1000000                              

  - 14.32.21 JOB02331  +  Replicate =   1                                    

  - 14.32.21 JOB02331  +  Tolerate% =  10                                    

  - 14.32.21 JOB02331  +  Pgm addr   = 00007000                              

  - 14.32.21 JOB02331  +  DATA  addr = 00007A38                              

  - 14.32.21 JOB02331  +  DATAB addr = 000083F8                              

  - 14.32.21 JOB02331  +  DATAP addr = 00007FF8                              

  - 14.32.21 JOB02331  +  Instruction addr =000090148                        

  - 14.32.21 JOB02331  +Description                        MIPS     nS Samples

  - 14.32.22 JOB02331  +BCTR Rx,Rloop (refference loop)   64.11     15      21

  - 14.32.25 JOB02331  +ELAPSED time exceeds 128 seconds                      

00- 14.32.27 JOB02331  IEF404I INSTRATE - ENDED - TIME=14.32.27              

    14.32.27 JOB02331  $HASP150 INSTRATE OUTGRP=2.1.1 ON PRT1     10,011 (10,

     011) RECORDS                                                            

 

The assumption ‘+ELAPSED time exceeds 128 seconds’ is a bit overstated!

 

You can see the dump, if needed, at : http://www.stben.net/hercules/INSTRATE.IBMUSER.j02331cA.pdf

 

Thanks for your help.

 

Bye,

Jean-Louis

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Problem with Instrate

Hercules390 - General mailing list
Wrong forum.

Try posting your question here instead:


  https://groups.yahoo.com/neo/groups/H390-MVS/info


--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: [hidden email]



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list
Hi David,

> Wrong forum.

I like very much your unmovable faith into the precision of hercules' timer.

Yours faithfully,
Jean-Louis

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Problem with Instrate

Hercules390 - General mailing list
 - - - In [hidden email], <jln@...> wrote:
> Hi David,
>> Wrong forum.
> I like very much your unmovable faith into the precision of hercules' timer.
> Yours faithfully,
> Jean-Louis

There was no report of a Hercules issue in a timer or other.
There was no Hercules release even mentioned.
There was no hardware even mentioned.
There was no P.C. operating system mentioned.
There was no mention of what you think your issue is.
People trying to guess what you are thinking about might not
get it right.

There was only a dump of an application program displaying
a strange message on the console and then taking a PIC 1

Since the issue as documented is not a VM or DOS/VS issue,
feel free to post on one of those forums.
You can also find thousands of other unrelated forums to
not document your issue on.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list
Hi Jean-Louis,

I like very much your unintelligible messages posted to the wrong forum.

Yours faithfully,
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list
Hi Jean-Louis Noel,


I am by no means an expert on these matters, so please forgive me my
ignorance, but :

The subject of your message states that you have a problem with Instrate.
However, it seems that from the body text of your message people cannot
tell what that problem is exactly. You reference the statement "+ELAPSED
time exceeds 128 seconds", which you seem to feel is wrong ?

Perhaps you could elaborate a little with telling what it is you are trying
to achieve, how you go about doing that, what you expect the results to be,
and what the actual results are ?



- Maarten



On Mon, Mar 6, 2017 at 2:55 PM, 'Jean-Louis Noel' [hidden email]
[hercules-390] <[hidden email]> wrote:

>
>
> Hi Everyone,
>
>
>
> I got a problem with INSTRATE :
>
>
>
>   - 14.32.21 JOB02331  $HASP373 INSTRATE STARTED - INIT 1    - CLASS A -
> SYS
>
>   -  SYS1
>
>
>   - 14.32.21 JOB02331  +INSTRATE STARTED
>
>
>   - 14.32.21 JOB02331  +  1 intel i7, z/os 1.10,
> 4.00
>
>   - 14.32.21 JOB02331  +  Ranked by usage (general)
>
>
>   - 14.32.21 JOB02331  +  Samples   =   9
>
>
>   - 14.32.21 JOB02331  +  Loops     =   1000000
>
>
>   - 14.32.21 JOB02331  +  Replicate =   1
>
>
>   - 14.32.21 JOB02331  +  Tolerate% =  10
>
>
>   - 14.32.21 JOB02331  +  Pgm addr   = 00007000
>
>
>   - 14.32.21 JOB02331  +  DATA  addr = 00007A38
>
>
>   - 14.32.21 JOB02331  +  DATAB addr = 000083F8
>
>
>   - 14.32.21 JOB02331  +  DATAP addr = 00007FF8
>
>
>   - 14.32.21 JOB02331  +  Instruction addr =000090148
>
>
>   - 14.32.21 JOB02331  +Description                        MIPS     nS
> Samples
>
>   - 14.32.22 JOB02331  +BCTR Rx,Rloop (refference loop)   64.11
> 15      21
>
>   - 14.32.25 JOB02331  +ELAPSED time exceeds 128
> seconds
>
> 00- 14.32.27 JOB02331  IEF404I INSTRATE - ENDED -
> TIME=14.32.27
>
>     14.32.27 JOB02331  $HASP150 INSTRATE OUTGRP=2.1.1 ON PRT1     10,011
> (10,
>
>      011) RECORDS
>
>
>
>
> The assumption ‘+ELAPSED time exceeds 128 seconds’ is a bit overstated!
>
>
>
> You can see the dump, if needed, at : http://www.stben.net/hercules/
> INSTRATE.IBMUSER.j02331cA.pdf
>
>
>
> Thanks for your help.
>
>
>
> Bye,
>
> Jean-Louis
>
>
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
Wow, wow wow,

When did the forum turn into a place which tells someone to go someplace else ?

The fellow who was attempting to find a problem in console.c (? may have that wrong it might have been 3270 emulation ) was literally chased out.

Jean, the problem with INSTRATE is it was written back when hercules and/or real IRON couldn't run very fast.  As processors got much faster there wasn't enough time between x number of loops for the timer to decrement so you get what to the program see as no movement of the clock.  It then reports the 128 seconds message.

If you ask it to do a lot more loops it may start giving results.  The quickly emulated instructions may be the hardest to get to work while the things like MVCL (?) may actually show results as is.

Bumping up the loop count a lot ( x 10 - x 100 or more ) may permit some results also.

All this is from memory and the last time I tinkered with it was years ago.

Phil
 

---In [hidden email], <hoes.maarten@...> wrote :

 Hi Jean-Louis Noel,


I am by no means an expert on these matters, so please forgive me my ignorance, but :

The subject of your message states that you have a problem with Instrate. However, it seems that from the body text of your message people cannot tell what that problem is exactly. You reference the statement "+ELAPSED time exceeds 128 seconds", which you seem to feel is wrong ?

Perhaps you could elaborate a little with telling what it is you are trying to achieve, how you go about doing that, what you expect the results to be, and what the actual results are ?



- Maarten



 
 On Mon, Mar 6, 2017 at 2:55 PM, 'Jean-Louis Noel' jln@... mailto:jln@... [hercules-390] <[hidden email] mailto:[hidden email]> wrote:
   
 Hi Everyone,
 
 I got a problem with INSTRATE :
 

   - 14.32.21 JOB02331  $HASP373 INSTRATE STARTED - INIT 1    - CLASS A - SYS  
   -  SYS1                                                                      
   - 14.32.21 JOB02331  +INSTRATE STARTED                                      
   - 14.32.21 JOB02331  +  1 intel i7, z/os 1.10, 4.00                        
   - 14.32.21 JOB02331  +  Ranked by usage (general)                            
   - 14.32.21 JOB02331  +  Samples   =   9                                      
   - 14.32.21 JOB02331  +  Loops     =   1000000                                
   - 14.32.21 JOB02331  +  Replicate =   1                                      
   - 14.32.21 JOB02331  +  Tolerate% =  10                                      
   - 14.32.21 JOB02331  +  Pgm addr   = 00007000                                
   - 14.32.21 JOB02331  +  DATA  addr = 00007A38                                
   - 14.32.21 JOB02331  +  DATAB addr = 000083F8                                
   - 14.32.21 JOB02331  +  DATAP addr = 00007FF8                                
   - 14.32.21 JOB02331  +  Instruction addr =000090148                        
   - 14.32.21 JOB02331  +Description                         MIPS     nS Samples
   - 14.32.22 JOB02331  +BCTR Rx,Rloop (refference loop)   64.11     15      21
   - 14.32.25 JOB02331  +ELAPSED time exceeds 128 seconds                      
 00- 14.32.27 JOB02331  IEF404I INSTRATE - ENDED - TIME=14.32.27              
     14.32.27 JOB02331  $HASP150 INSTRATE OUTGRP=2.1.1 ON PRT1     10,011 (10,
      011) RECORDS                                                              

 
 The assumption ‘+ELAPSED time exceeds 128 seconds’ is a bit overstated!
 
 You can see the dump, if needed, at : http://www.stben.net/hercules/ INSTRATE.IBMUSER.j02331cA.pdf http://www.stben.net/hercules/INSTRATE.IBMUSER.j02331cA.pdf
 
 Thanks for your help.
 
 Bye,
 Jean-Louis

 

 








Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list
Hi Maarten Phil,

> "+ELAPSED time exceeds 128 seconds", which you seem to feel is wrong ?

INSTRATE is a program from the files part of this group.
I just assembled it and run it and there was an abend.
If you compare the time printed by the system, to the left, since the
beginning and the abend
it shows 2 seconds and the program says that 128 seconds have passed.

> If you ask it to do a lot more loops it may start giving results.

Yes, I know now where the problem lies :
The program written by Gary Brabiner calibrates an empty loop.
And then it adds one instruction in that loop and tries to know the
time elapsed for executing that instruction by subtracting the time of the
empty loop.

But because Hercules is host OS dependent the time calibrated previously
is a too loose approximation and with a modern hardware the subtraction
can goes negative has the abend show.

What can be done? I don't know yet. But, perhaps Hercules could claim
exclusive usage of one core for each processor in config file or something
like that. It's only just guesses at this moment.

Last information it runs properly under zPDT and under a z machine.

- Jean-Louis

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
Jean-Louis wrote:

"What can be done? I don't know yet. But, perhaps Hercules could claim
 exclusive usage of one core for each processor in config file or something
 like that. It's only just guesses at this moment.
 
 Last information it runs properly under zPDT and under a z machine."

Don't believe defining only 1 CPU helps this problem.

If it runs unchanged properly on both z/PDT and Z machines, I would say It is a timer/clock problem in Hercules

Phil

ps - not to say Hercules timer/clock doesn't work properly, maybe it just isn't working properly for the demands of this job

pps - I'd like to have a copy of the results of the runs on those 2 platforms
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
Just remembered also that I had gone into the program to increase only the empty timer loop so it would have more accuracy, then reverting to specified number of loops for testing loops.

Set  loop value x 10 times or larger multiplier
Run empty timer loop executed much larger number of times than testing loops.
Set loop value back to original specified
Run testing loops

Phil
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list
Hi Phil,

> then reverting to specified number of loops for testing loops

Yes, it could work I'll try it.
Because who really care of the synchronicity? It's only a testing thing.
We are speaking in 1/100° of second here.

Thanks.
- Jean-Louis

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
Hi Jean-Louis,

It may be necessary to adjust Toleration percentage - a lot.

A couple of tests on AMD FX-8320. 8 CPU, Linux running 3.8j 1 CPU defined.  TOP shows 36 % of 1 CPU utilized while INSTRATE running.

Original INSTRATE with blank parm for general instructions.  Got past the reference loop but hung somewhere after 3 mins canceled.

04.32.50 JOB   98  +  General instruction tests
04.32.50 JOB   98  +  Samples   =   9
04.32.50 JOB   98  +  Loops     =   1000000
04.32.50 JOB   98  +  Replicate =   1
04.32.50 JOB   98  +  Tolerate% =   2
04.32.50 JOB   98  +  Pgm addr   = 000A5000
04.32.50 JOB   98  +  DATA  addr = 000A5A38
04.32.50 JOB   98  +  DATAB addr = 000A63F8
04.32.50 JOB   98  +  DATAP addr = 000A5FF8
04.32.50 JOB   98  +  Instruction addr =000A70148
04.32.50 JOB   98  +Description                        MIPS     nS Samples
04.34.25 JOB   98  +BCT Rx,loop                       68.57     14    1361
04.35.08 JOB   98  +BCTR Rx,Rloop (refference loop)  121.77      8     609
HHC00008I /c herc01a
04.38.53           IEE301I HERC01A  CANCEL COMMAND ACCEPTED

Original INSTRATE  with blank parm and toleration adjusted to 30 %.  Got past reference loop but immediate abend.

04.41.58 JOB   99  +  General instruction tests
04.41.58 JOB   99  +  Samples   =   9
04.41.58 JOB   99  +  Loops     =   1000000
04.41.58 JOB   99  +  Replicate =   1
04.41.58 JOB   99  +  Tolerate% =  30
04.41.58 JOB   99  +  Pgm addr   = 000A5000
04.41.58 JOB   99  +  DATA  addr = 000A5A38
04.41.58 JOB   99  +  DATAB addr = 000A63F8
04.41.58 JOB   99  +  DATAP addr = 000A5FF8
04.41.58 JOB   99  +  Instruction addr =000A70148
04.41.58 JOB   99  +Description                        MIPS     nS Samples
04.41.59 JOB   99  +BCT Rx,loop                       66.39     15      15
04.42.01 JOB   99  +BCTR Rx,Rloop (refference loop)   74.96     13      19
04.42.01 JOB   99  +ELAPSED time exceeds 128 seconds

Sampling much better this time around as toleration loosened.  1st attempt may have hung up in sampling and not making it to 2 min abend.

Original INSTRATE with X parm original 2% toleration.  Working but didn't want MVC timings so canceled.

04.24.18 JOB   97  +  Testing Instructions
04.24.18 JOB   97  +  Samples   =   9
04.24.18 JOB   97  +  Loops     =   1000000
04.24.18 JOB   97  +  Replicate =   1
04.24.18 JOB   97  +  Tolerate% =   2
04.24.18 JOB   97  +  Pgm addr   = 000A5000
04.24.18 JOB   97  +  DATA  addr = 000A5A38
04.24.18 JOB   97  +  DATAB addr = 000A63F8
04.24.18 JOB   97  +  DATAP addr = 000A5FF8
04.24.18 JOB   97  +  Instruction addr =000A70148
04.24.18 JOB   97  +Description                        MIPS     nS Samples
04.24.52 JOB   97  +BCTR Rx,Rloop (refference loop)   75.96     13     499
04.25.07 JOB   97  +MVC DATA(1),DATA                  70.67     14     179
04.25.52 JOB   97  +MVC DATA(1),DATAB                 71.30     14     555


Like I stated, I did a good bit of tinkering with INSTRATE a while back.  The MIPS folder in this forum has a INSTRATE-DEBUG.txt job.  It has 30% toleration and maybe some other adjustments ( I can't remember what I uploaded vs what I tinkered with ).  Anyway it get further but also abends with 2 min.

04.18.49 JOB   96  +  Ranked by usage (general)
04.18.49 JOB   96  +  Samples   =   9
04.18.49 JOB   96  +  Loops     =   1000000
04.18.49 JOB   96  +  Replicate =   1
04.18.49 JOB   96  +  Tolerate% =  30
04.18.49 JOB   96  +  Pgm addr   = 000A5A38
04.18.49 JOB   96  +  DATA  addr = 000A6450
04.18.49 JOB   96  +  DATAB addr = 000A6E30
04.18.49 JOB   96  +  DATAP addr = 000A6A30
04.18.49 JOB   96  +  Instruction addr =000A7A4C8
04.18.49 JOB   96  +Description                        MIPS     nS Samples
04.18.52 JOB   96  +Dropping samples   4 and   1, error is  36%
04.18.53 JOB   96  +BCTR Rx,Rloop (refference loop)   74.41     13      11
04.18.57 JOB   96  +A R1,F1      Add           5A-RX  71.98     14       9
04.19.01 JOB   96  +AD R0,DEC1   Add Norm Long 6A-RX  36.87     27       9
04.19.05 JOB   96  +ADR F0,F4    Add Norm Long 2A-RR  64.76     15       9
04.19.09 JOB   96  +AE F0,F4     Add Norm Long 7A-RX  18.44     55       9
04.19.13 JOB   96  +AER F0,F4    Add Norm Shor 3A-RR  73.43     13       9
04.19.17 JOB   96  +AH R1,H1     Add Halfword  4A-RX  71.06     14       9
04.19.21 JOB   96  +Dropping samples   8 and   1, error is  32%
04.19.22 JOB   96  +AL R1,F1     Add Logical   5E-RX  67.54     15      11
04.19.26 JOB   96  +Dropping samples   6 and   8, error is  94%
04.19.27 JOB   96  +Dropping samples   3 and   7, error is 147%
04.19.27 JOB   96  +Dropping samples   8 and   6, error is 134%
04.19.28 JOB   96  +Dropping samples   9 and   2, error is 148%
04.19.29 JOB   96  +Dropping samples   6 and   3, error is  60%
04.19.30 JOB   96  +ELAPSED time exceeds 128 seconds

Running any of the INSTRATE programs on a slow system like my 300 MHz laptop doesn't fail and samples are 9 down the line instead of varying all over the place.

If this is a hercules clock problem -

Does someone have a test to see how quickly the clock is incremented ?

Is the clock updated upon each STCK ?  Should it be so that 2 consecutive STCK instructions don't get the same time ?  Don't know how precise the clock is or how often it is updated.

Presume the TIMER is different from the CLOCK.  Can it be used to check STCK elapsed time variances ?  ie issue STCK, when TIMER pops, STCK again, compare timer interval to difference in clock fetches, loop for long duration to see average of results ?  May be out in left field as my brain is about gone.

When incremented, is it by a chunk of time instead of a more granular interval ?

If it is INSTRATE's problem due to design (? IMO doubtful if it runs reliably on zPDT and Z Iron), can a simple addition of some fixed usecond be added to the test loop so that when the reference  loop is subtracted it doesn't turn negative ?

Phil

ps - from memory again, it runs on my P/390 without samples varying all over the place - I'll dig that test result out.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
---In [hidden email], <opplr@...> wrote :

> If it is INSTRATE's problem due to design
> (? IMO doubtful if it runs reliably on zPDT
> and Z Iron),

I don't know what the rules for clocks are.

> can a simple addition of some fixed
> usecond be added to the test loop
> so that when the reference  loop is
> subtracted it doesn't turn negative ?

If clock values are not guaranteed by
either z/Arch or Hercules, then the
program should be adjusted to see if
the elapsed is LESS than the reference
value, and if so, do NOT do the
subtraction, or perhaps set the elapsed
to 0 or 1.

BFN. Paul.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list
Hi Phil,

> It may be necessary to adjust Toleration percentage - a lot.
If you increase it samples will be varying all over the place as you said.

I used INSTRATE packed as jobs.zip under MIPs Testing from the list file
area.
I commented out the NOP testing and left everything else as provided and it
worked:

    - 11.22.31 JOB02564  $HASP373 INSTRATE STARTED - INIT 1    - CLASS A -
SYS
    -  SYS1
    - 11.22.31 JOB02564  +INSTRATE STARTED
    - 11.22.31 JOB02564  +    intel i7, z/os 1.10, 4.00
    - 11.22.31 JOB02564  +  General instruction tests
    - 11.22.31 JOB02564  +  Samples   =   9
    - 11.22.31 JOB02564  +  Loops     =   1000000
    - 11.22.31 JOB02564  +  Replicate =   1
    - 11.22.31 JOB02564  +  Tolerate% =  10
    - 11.22.31 JOB02564  +  Pgm addr   = 00007000
    - 11.22.31 JOB02564  +  DATA  addr = 00007A38
    - 11.22.31 JOB02564  +  DATAB addr = 000083F8
    - 11.22.31 JOB02564  +  DATAP addr = 00007FF8
    - 11.22.31 JOB02564  +  Instruction addr =000090148
    - 11.22.31 JOB02564  +Description                        MIPS     nS
Samples
    - 11.22.33 JOB02564  +BCT Rx,loop                       63.25     16
31
    - 11.22.34 JOB02564  +BCTR Rx,Rloop (refference loop)   62.79     16
9
    - 11.22.34 JOB02564  +Fetches:
    - 11.22.34 JOB02564  +LR R1,R0                          54.56     18
13
    - 11.22.35 JOB02564  +LTR R1,R0                         45.29     22
11
...
    - 11.24.13 JOB02564  +Miscellaneous:
    - 11.24.14 JOB02564  +Move 256 bytes by MVC             18.42     55
19
    - 11.24.20 JOB02564  +Move 256 bytes by MVCL            11.08     92
41
    - 11.24.27 JOB02564  +Clear 256 bytes by MVC             2.32    439
13
  00- 11.24.31 JOB02564  +Clear 256 bytes by MVCL           11.36     90
29
    - 11.24.31 JOB02564  +INSTRATE FINISHED
    - 11.24.31 JOB02564  IEF404I INSTRATE - ENDED - TIME=11.24.31

A bit later to check the confidence:
    - 12.59.57 JOB02587  $HASP373 INSTRATE STARTED - INIT 1    - CLASS A -
SYS
    -  SYS1
    - 12.59.57 JOB02587  +INSTRATE STARTED
    - 12.59.57 JOB02587  +    intel i7, z/os 1.10, 4.00
    - 12.59.57 JOB02587  +  General instruction tests
    - 12.59.57 JOB02587  +  Samples   =   9
    - 12.59.57 JOB02587  +  Loops     =   1000000
    - 12.59.57 JOB02587  +  Replicate =   1
    - 12.59.57 JOB02587  +  Tolerate% =  10
    - 12.59.57 JOB02587  +  Pgm addr   = 00007000
    - 12.59.57 JOB02587  +  DATA  addr = 00007A38
    - 12.59.57 JOB02587  +  DATAB addr = 000083F8
    - 12.59.57 JOB02587  +  DATAP addr = 00007FF8
    - 12.59.57 JOB02587  +  Instruction addr =000090148
    - 12.59.57 JOB02587  +Description                        MIPS     nS
Samples
    - 12.59.58 JOB02587  +BCT Rx,loop                       63.71     16
19
    - 12.59.59 JOB02587  +BCTR Rx,Rloop (refference loop)   62.32     16
11
    - 12.59.59 JOB02587  +Fetches:
    - 12.59.59 JOB02587  +LR R1,R0                          51.78     19
9
    - 13.00.01 JOB02587  +LTR R1,R0                         49.00     20
17
...
    - 13.01.33 JOB02587  +Miscellaneous:
    - 13.01.34 JOB02587  +Move 256 bytes by MVC             18.21     56
11
    - 13.01.39 JOB02587  +Move 256 bytes by MVCL            11.04     92
35
    - 13.01.47 JOB02587  +Clear 256 bytes by MVC             2.24    456
17
  00- 13.01.50 JOB02587  +Clear 256 bytes by MVCL           11.28     90
19
    - 13.01.50 JOB02587  +INSTRATE FINISHED
    - 13.01.50 JOB02587  IEF404I INSTRATE - ENDED - TIME=13.01.50

Now, it remains to understand what happens during the execution of a NOP
instruction by Hercules.
I can't remember how much time it takes for an iron to execute a NOP
operation.
I had it but those three rings binders are gone for ages now.

- Jean-Louis

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list


On 3/8/2017 1:24 PM, 'Jean-Louis Noel' [hidden email] [hercules-390] wrote:
<...>
> Now, it remains to understand what happens during the execution of a NOP
> instruction by Hercules.
> I can't remember how much time it takes for an iron to execute a NOP
> operation.
> I had it but those three rings binders are gone for ages now.
>
There is no 'NOP' instruction per se. NOP is implemented as a Branch
Never (BC 0,addr or BCR 0,Rx).

In S/370, The only "NOP" instruction which has a side effect is "BCR
15,0" (Always branch to the next instruction) which is used in
Multiprocessor setup to perform a CPU Serialization operation (Flush all
caches and return from the instruction when all CPUs have reached the
next instruction step), and a checkpoint synchronization (no effect on
hercules since a checkpoint synchronization is used for instruction
retry in case of machine check).

There is another variant with BCR 14,0 (The fast BCR Serialization only
facility).

In hercules, BC 0,xxx and BCR 0,x have a very short path length.
basically, the cpu execution code fetches the instruction, goes to the
decode routine and calls the branch instruction which returns
immediately when seeing the mask is 0 leading the CPU execution loop to
go directly to the next instruction. On a x86 processor, it takes around
10 instructions to do this. (The instructions are prefetched, the ILC
doesn't need updating because the instruction cannot generate an
interrupt[1], and instruction are only counted by batches of 7 in the
decode loop).

--Ivan

[1] Except when PER, instruction tracing or stepping is active, but then
another version of the loop is used.



[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
Nevertheless, the assembler provides the extended mnemonics NOP, NOPR,
and JNOP.  So I'd say there is a NOP instruction.

As far as the hardware is concerned there is neither BC nor NOP; it
understands only operation code x'47'.

On 03/08/2017 02:50 PM, Ivan Warren [hidden email] [hercules-390] wrote:
> There is no 'NOP' instruction per se. NOP is implemented as a Branch
> Never (BC 0,addr or BCR 0,Rx).


------------------------------------

------------------------------------

Community email addresses:
  Post message: [hidden email]
  Subscribe:    [hidden email]
  Unsubscribe:  [hidden email]
  List owner:   [hidden email]

Files and archives at:
  http://groups.yahoo.com/group/hercules-390

Get the latest version of Hercules from:
  http://www.hercules-390.org


------------------------------------

Yahoo Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/hercules-390/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/hercules-390/join
    (Yahoo! ID required)

<*> To change settings via email:
    [hidden email]
    [hidden email]

<*> To unsubscribe from this group, send an email to:
    [hidden email]

<*> Your use of Yahoo Groups is subject to:
    https://info.yahoo.com/legal/us/yahoo/utos/terms/

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list

 Well PrOps says two consecutive STCK instructions will give unique values. The wording is a bit vague in the case where the extended clock facility is not installed. The manual implies that the cpu will add random bits to the right hand side of the returned value in order to insure uniqueness.  It also mentions that the incrementing of the clock is comparable to the instruction execution rate of the cpu, but that seems improbable given the speed at which the clock updates.

---In [hidden email], <kerravon86@...> wrote :

 ---In [hidden email] mailto:[hidden email], <opplr@...> wrote :
 
 > If it is INSTRATE's problem due to design
 > (? IMO doubtful if it runs reliably on zPDT
 > and Z Iron),
 
 I don't know what the rules for clocks are.
 

 BFN. Paul.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list


On 03/08/2017 04:43 PM, [hidden email] [hercules-390] wrote:
> Well PrOps says two consecutive STCK instructions will give unique values.

Correct; even for the CPUs of a configuration.

If the CPU runs out of values to store, it stalls until the next clock
tick.  Hence STCKF.

STCKE is designed to take hand of this and also the year 2041 issue.
IBM is also aware that a thirty year lifespan for a system, while
perhaps unusual, is not unheard of (think 9020).
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
In reply to this post by Hercules390 - General mailing list

 Hercules is correct, insofar as STCK in a row. The result is:

D235B262 CCFFA003   First STCK
D235B262 CCFFB003   Second STCK

---In [hidden email], <williaj@...> wrote :

 
 Well PrOps says two consecutive STCK instructions will give unique values. The wording is a bit vague in the case where the extended clock facility is not installed. The manual implies that the cpu will add random bits to the right hand side of the returned value in order to insure uniqueness.  It also mentions that the incrementing of the clock is comparable to the instruction execution rate of the cpu, but that seems improbable given the speed at which the clock updates.

---In [hidden email], <kerravon86@...> wrote :

 ---In [hidden email] mailto:[hidden email], <opplr@...> wrote :
 
 > If it is INSTRATE's problem due to design
 > (? IMO doubtful if it runs reliably on zPDT
 > and Z Iron),
 
 I don't know what the rules for clocks are.
 

 BFN. Paul.



 
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem with Instrate

Hercules390 - General mailing list
On 03/08/2017 04:56 PM, [hidden email] [hercules-390] wrote:
> Hercules is correct, insofar as STCK in a row. The result is:
>
> D235B262 CCFFA003   First STCK
> D235B262 CCFFB003   Second STCK

That is rather hamfisted.  I assume the last digit is the CPU address
(in line with what real iron does/did), but Hecules is free to use the
bits beyond 51 for additional precision.  It could also make them into a
counter for the number of values stored within a microsecond (and with
that it does not need the CPU address to make the values
unique--particularly important if you define 128 CPUs).
12
Loading...