Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-16 Thread Farley, Peter x23353
<*Doh!*> Sorry, never mind.  I see other entries in the thread in this forum.

Apologies.

Peter

-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Farley, Peter x23353
Sent: Thursday, May 16, 2019 10:23 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

PMFJI here, but can you tell us where the rest of this conversation may be 
located?  I found only one message on IBM-MAIN with this subject, from April 
22, author Joe Reichmann. 

I would be interested to read the whole thread if I could find it.

Peter

-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Mike Hochee
Sent: Thursday, May 16, 2019 9:56 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

Hi Martin,


No, I cannot elaborate as I have no additional information, just a presumption. 
Thank you for the E163 reference.


Mike


From: IBM Mainframe Assembler List  on behalf 
of Martin Truebner 
Sent: Thursday, May 16, 2019 2:22 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

Mike,

>> Also, if IBM makes available some diagnostics about instruction cache 
>> flushes, like cause and location, this might be another option.

Can you elaborate on that "if"? Are you saying that there are ways to get more 
from the hardware than just the counter E163 (*).

I do agree that that counter (even in relation to counter B2) does not say 
much- but typical numbers for your load (i.e. heavy night load when certain 
programs run) vs. daily online load or numbers from other installations before 
and after attempts to eliminate the cause of E163.

Martin

(*) definition of that counter from the book:
Counter 163 – A directory write to the Level-1 Instruction cache directory 
where the returned cache line was sourced from an On-Chip Level-3 cache with 
intervention.

--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-16 Thread Gary Weinhold
Unless you can ensure all executions will also be under those 
conditions, you will also need to exercise all possible code paths in 
the program with every possible variation of input(s).


On 2019-05-15 5:57 p.m., Paul Gilmartin wrote:

More practical, mark your module REFR and run with REFRPROT in effect.

-- gil



Gary Weinhold 
Senior Application Architect 

DATAKINETICS | Data Performance & Optimization 


Phone   +1.613.523.5500 x216
Email:  weinh...@dkl.com

Visit us online at www.DKL.com 

E-mail Notification: The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system. 


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-16 Thread Farley, Peter x23353
PMFJI here, but can you tell us where the rest of this conversation may be 
located?  I found only one message on IBM-MAIN with this subject, from April 
22, author Joe Reichmann. 

I would be interested to read the whole thread if I could find it.

Peter

-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Mike Hochee
Sent: Thursday, May 16, 2019 9:56 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

Hi Martin,


No, I cannot elaborate as I have no additional information, just a presumption. 
Thank you for the E163 reference.


Mike


From: IBM Mainframe Assembler List  on behalf 
of Martin Truebner 
Sent: Thursday, May 16, 2019 2:22 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

Mike,

>> Also, if IBM makes available some diagnostics about instruction cache 
>> flushes, like cause and location, this might be another option.

Can you elaborate on that "if"? Are you saying that there are ways to get more 
from the hardware than just the counter E163 (*).

I do agree that that counter (even in relation to counter B2) does not say 
much- but typical numbers for your load (i.e. heavy night load when certain 
programs run) vs. daily online load or numbers from other installations before 
and after attempts to eliminate the cause of E163.

Martin

(*) definition of that counter from the book:
Counter 163 – A directory write to the Level-1 Instruction cache directory 
where the returned cache line was sourced from an On-Chip Level-3 cache with 
intervention.

--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-16 Thread Mike Hochee
Hi Martin,


No, I cannot elaborate as I have no additional information, just a presumption. 
Thank you for the E163 reference.


Mike


From: IBM Mainframe Assembler List  on behalf 
of Martin Truebner 
Sent: Thursday, May 16, 2019 2:22 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

Mike,

>> Also, if IBM makes available some diagnostics about instruction
>> cache flushes, like cause and location, this might be another option.

Can you elaborate on that "if"? Are you saying that there are ways to
get more from the hardware than just the counter E163 (*).

I do agree that that counter (even in relation to counter B2) does
not say much- but typical numbers for your load (i.e. heavy night
load when certain programs run) vs. daily online load or numbers from
other installations before and after attempts to eliminate the cause of
E163.

Martin

(*) definition of that counter from the book:
Counter 163 – A directory write to the Level-1
Instruction cache directory where the returned cache
line was sourced from an On-Chip Level-3 cache
with intervention.

--
Martin Trübner; everything around "PoOps of z/arch"

Teichstraße 39E
D-63225 Langen

F: +49 6103 71254
M: +49 171 850 7132
E: mar...@pi-sysprog.de


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-16 Thread Martin Truebner
Mike,

>> Also, if IBM makes available some diagnostics about instruction
>> cache flushes, like cause and location, this might be another option.

Can you elaborate on that "if"? Are you saying that there are ways to
get more from the hardware than just the counter E163 (*). 

I do agree that that counter (even in relation to counter B2) does
not say much- but typical numbers for your load (i.e. heavy night
load when certain programs run) vs. daily online load or numbers from
other installations before and after attempts to eliminate the cause of
E163. 

Martin

(*) definition of that counter from the book:
Counter 163 – A directory write to the Level-1
Instruction cache directory where the returned cache
line was sourced from an On-Chip Level-3 cache
with intervention.

-- 
Martin Trübner; everything around "PoOps of z/arch"

Teichstraße 39E 
D-63225 Langen  

F: +49 6103 71254  
M: +49 171 850 7132
E: mar...@pi-sysprog.de 


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-15 Thread Paul Gilmartin
On 2019-05-15, at 13:39:11, Tony Harminc wrote:
> 
> Very interesting. The Halting Problem and its nifty proof of
> non-computability is something everyone learns in the first CompSci course,
> but I have never given computability of self-modification any thought. Is
> there a similar nifty proof for this one? ...
>  
Make your program a subroutine of a main program that stores into itself
if that subroutine halts.  This makes self-modification equivalent to the
halting problem.

More practical, mark your module REFR and run with REFRPROT in effect.

-- gil


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-15 Thread Mike Hochee
You can add a routine that compares the executable portions of your csects 
against a pre-execution copy and call it periodically. This could be done from 
within your task or from another if you're not allowed to modify the program in 
question.


Also, if IBM makes available some diagnostics about instruction cache flushes, 
like cause and location, this might be another option.


HTH,

Mike


From: IBM Mainframe Assembler List  on behalf 
of Tony Harminc 
Sent: Wednesday, May 15, 2019 3:39 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

On Tue, 23 Apr 2019 at 10:36, Martin Ward  wrote:


> (Note that the thoretical problem of determining whether a particular
> program is self-modifying or not is, like the Halting Problem,
> non-computable. But in practice, all examples of self-modifying code
> we have encountered can be detected and translated.)
>

Very interesting. The Halting Problem and its nifty proof of
non-computability is something everyone learns in the first CompSci course,
but I have never given computability of self-modification any thought. Is
there a similar nifty proof for this one? Surely the problem is
fundamentally architecture and/or language specific. Many languages and
indeed some architectures simply do not allow self modification.

I suppose at a high level one could consider generating code during
execution to be self modification (of the program as a whole), and then it
begins to sound familiar...

Tony H.


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-05-15 Thread Tony Harminc
On Tue, 23 Apr 2019 at 10:36, Martin Ward  wrote:


> (Note that the thoretical problem of determining whether a particular
> program is self-modifying or not is, like the Halting Problem,
> non-computable. But in practice, all examples of self-modifying code
> we have encountered can be detected and translated.)
>

Very interesting. The Halting Problem and its nifty proof of
non-computability is something everyone learns in the first CompSci course,
but I have never given computability of self-modification any thought. Is
there a similar nifty proof for this one? Surely the problem is
fundamentally architecture and/or language specific. Many languages and
indeed some architectures simply do not allow self modification.

I suppose at a high level one could consider generating code during
execution to be self modification (of the program as a whole), and then it
begins to sound familiar...

Tony H.


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-23 Thread Martin Ward

On 22/04/19 22:38, Joseph Reichman wrote:

To be more clear this goes back to the original problem of tracing a
14 cesct huge piece of code I am wondering if I can identify what
instructions are modified


Software Migrations Ltd. (the company I work for) offers a migration
service to convert assembler code into functionally equivalent,
structured, efficient and maintainable C or COBOL code.
The process is totally automated but custimisable for each project.

Therefore we have to be able to detect and translate any
self-modifying code in the listing, wherever possible. We have seen some
quite dramatic improvements in performance when migrating assembler
code which does a lot of instruction modification!

(Note that the thoretical problem of determining whether a particular
program is self-modifying or not is, like the Halting Problem,
non-computable. But in practice, all examples of self-modifying code
we have encountered can be detected and translated.)

Let me know if you would like to pursue this option.

--
Martin

Dr Martin Ward | Email: mar...@gkc.org.uk | http://www.gkc.org.uk
G.K.Chesterton site: http://www.gkc.org.uk/gkc | Erdos number: 4


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-23 Thread Martin Truebner
Joseph,

if you want a 99 percent method- try removing the base for the code
(only have base registers for the data areas) --- and have IEABRC in
the very beginning.

That way you will catch most modifications to code, but not the
indirect refs as shown by Keven.

PS: you do not need to make the code really run able, just doing
as above to identify most of the cases where the hardware counter
E163 would increase.  

-- 
Martin Trübner; everything around "PoOps of z/arch"

Teichstraße 39E 
D-63225 Langen  

F: +49 6103 71254  
M: +49 171 850 7132
E: mar...@pi-sysprog.de 


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-22 Thread Joseph Reichman
Sysadata type 44 will catch most 




> On Apr 22, 2019, at 5:54 PM, Paul Gilmartin 
> <0014e0e4a59b-dmarc-requ...@listserv.uga.edu> wrote:
> 
>> On 2019-04-22, at 15:38:03, Joseph Reichman wrote:
>> 
>> To be more clear this goes back to the original problem of tracing a 14 
>> cesct huge piece of code I am wondering if I can identify what instructions 
>> are modified
>> 
> There's the empirical approach: Save a copy as REFR; run it; see what breaks.
> (Not 100% effective.)
> (Can you turn REFRPROT on?)
> 
> -- gil


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-22 Thread Paul Gilmartin
On 2019-04-22, at 15:38:03, Joseph Reichman wrote:

> To be more clear this goes back to the original problem of tracing a 14 cesct 
> huge piece of code I am wondering if I can identify what instructions are 
> modified
>  
There's the empirical approach: Save a copy as REFR; run it; see what breaks.
(Not 100% effective.)
(Can you turn REFRPROT on?)

-- gil


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-22 Thread Joseph Reichman
Yes





> On Apr 22, 2019, at 5:25 PM, Robert Netzlof  wrote:
> 
>> On 4/22/19, Keven  wrote:
>> 
>> There’s almost no
>> reason to use self-modifying code that makes sense anymore...
> 
> My impression was that the original poster was hoping to use the
> assembler's facilities to root out instances of self-modifying code in
> existing programs.
> 
> -- 
> Bob Netzlof a/k/a Sweet Old Bob


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-22 Thread Joseph Reichman
To be more clear this goes back to the original problem of tracing a 14 cesct 
huge piece of code I am wondering if I can identify what instructions are 
modified

Thanks 


-Original Message-
From: IBM Mainframe Assembler List  On Behalf 
Of Keven
Sent: Monday, April 22, 2019 5:18 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

  
  
  

Using RSECT instead of CSECT would result in your example being flagged 
as non-reentrant (self modifying) but it wouldn’t catch any indirect 
modification such as:LAR5,LABELMVI  0(R5),0LABEL DS 
  0H B. THERE The example would also cause the instruction 
cache line to be flushed which isn’t great.There’s almost no reason to use 
self-modifying code that makes sense anymore...
Keven





  




On Mon, Apr 22, 2019 at 10:06 AM -0500, "Joseph Reichman" 
 wrote:










Had second thoughts and thought this forum to be more appropriate 

Thanks 


J

Begin forwarded message:

> From: Joseph Reichman
> Date: April 22, 2019 at 9:25:10 AM EDT
> To: ibm-m...@listserv.ua.edu
> Subject: Sysadata symbol and literal cross reference record type x’44’
> 
> Hi
> 
> For programs that have self modifying code Adata record type 44 can 
> prove to be a valuable tool in identifying them as the reference flag has a 
> ‘M’
> 
> However I wonder if there is a easy way to identify code that is being 
> modified by location counter I.E MVI *+5,X’00’ and the following instruction 
> is for example B   AROUND
> 
> 
> Thanks


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-22 Thread Joseph Reichman
I am trying to determine what instructions are self modifying using sysadata 
wondering if there is any way to determine that



-Original Message-
From: IBM Mainframe Assembler List  On Behalf 
Of Keven
Sent: Monday, April 22, 2019 5:18 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Sysadata symbol and literal cross reference record type x’44’ 
re-post from IBMMAIN

  
  
  

Using RSECT instead of CSECT would result in your example being flagged 
as non-reentrant (self modifying) but it wouldn’t catch any indirect 
modification such as:LAR5,LABELMVI  0(R5),0LABEL DS 
  0H B. THERE The example would also cause the instruction 
cache line to be flushed which isn’t great.There’s almost no reason to use 
self-modifying code that makes sense anymore...
Keven





  




On Mon, Apr 22, 2019 at 10:06 AM -0500, "Joseph Reichman" 
 wrote:










Had second thoughts and thought this forum to be more appropriate 

Thanks 


J

Begin forwarded message:

> From: Joseph Reichman
> Date: April 22, 2019 at 9:25:10 AM EDT
> To: ibm-m...@listserv.ua.edu
> Subject: Sysadata symbol and literal cross reference record type x’44’
> 
> Hi
> 
> For programs that have self modifying code Adata record type 44 can 
> prove to be a valuable tool in identifying them as the reference flag has a 
> ‘M’
> 
> However I wonder if there is a easy way to identify code that is being 
> modified by location counter I.E MVI *+5,X’00’ and the following instruction 
> is for example B   AROUND
> 
> 
> Thanks


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-22 Thread Robert Netzlof
On 4/22/19, Keven  wrote:

> There’s almost no
> reason to use self-modifying code that makes sense anymore...

My impression was that the original poster was hoping to use the
assembler's facilities to root out instances of self-modifying code in
existing programs.

-- 
Bob Netzlof a/k/a Sweet Old Bob


Re: Sysadata symbol and literal cross reference record type x’44’ re-post from IBMMAIN

2019-04-22 Thread Keven
  
  
  

Using RSECT instead of CSECT would result in your example being flagged 
as non-reentrant (self modifying) but it wouldn’t catch any indirect 
modification such as:    LA    R5,LABEL    MVI  0(R5),0LABEL DS 
  0H B. THERE The example would also cause the instruction 
cache line to be flushed which isn’t great.There’s almost no reason to use 
self-modifying code that makes sense anymore...
Keven





  




On Mon, Apr 22, 2019 at 10:06 AM -0500, "Joseph Reichman" 
 wrote:










Had second thoughts and thought this forum to be more appropriate 

Thanks 


J

Begin forwarded message:

> From: Joseph Reichman 
> Date: April 22, 2019 at 9:25:10 AM EDT
> To: ibm-m...@listserv.ua.edu
> Subject: Sysadata symbol and literal cross reference record type x’44’
> 
> Hi
> 
> For programs that have self modifying code 
> Adata record type 44 can prove to be a valuable tool in identifying them as 
> the reference flag has a ‘M’ 
> 
> However I wonder if there is a easy way to identify code that is being 
> modified by location counter I.E MVI *+5,X’00’ and the following instruction 
> is for example B   AROUND
> 
> 
> Thanks