In a message dated 6/6/2007 11:41:09 A.M. Central Daylight Time,  
[EMAIL PROTECTED] writes:

>>Schramm, Rob wrote:
>> When I change the size of the  System Trace Table (i.e. TRACE ST,512K),
>> where is the storage  taken from?
>Common Name:          Master Trace Table Mapping  Macro
 
Alas, the Master Trace Table is not synonymous with the System Trace Table,  
which was the original question.  The Master Trace Table is populated with  
messages that appear on consoles.  The System Trace Table is populated with  
entries describing various hardware events, and the format of its various  
entries are documented in the Principles of Operation.  Certain hardware  
events, 
like Branch or Program Call, automatically create an entry in the  processor's 
Trace Table, but entries are also added via the processor TRACE  instruction 
for events like I/O and SVC interrupts.  Whenever an entry is  put into the 
processor's Trace Table, the address of the entry to be used is  fetched from 
that 
processor's Control Register 12, the entry is built, then  Control Register 
12 is updated by the length of the entry just built.
 
How big is this processor trace table?  From reading the PoOps, I  deduce 
that it must be 4K, since a trace table exception interrupt is created if  the 
next available trace table entry address would be in the next higher 4K of  
storage.  I am guessing that when this interrupt occurs, the program  interrupt 
SLIH moves the contents of this 4K into a much large System Trace  Table, which 
is a wrap-around table, and then resets Control Register 12 to  point to the 
beginning of the 4K storage block containing the hardware Trace  Table for that 
particular processor.  The large System Trace Table is the  one that shows up 
in a formatted dump.
 
So from where is the storage obtained?  The hardware trace table is  only 4K 
for each processor.  It is obtained during NIP, I would assume the  real and 
virtual addresses are saved somewhere (probably in the PSA or PCCA  for that 
processor), and its real address is put into CR12.  This 4K block  could be 
gotten from anywhere in central storage, as B. Dissen answered.   The System 
Trace 
Tables for each processor do not need to be accessed via a  real address from 
CR12, so I assume it is accessed totally via virtual  addressing.  It can be 
anywhere, and Rob Schramm says it comes from the  Trace Address Space's 
private storage.  So it is not from ECSA.  I  would expect that the System 
Trace 
Tables are all long-term page-fixed for  performance reasons, meaning the 
larger 
they are then the less real storage is  available for the dynamic paging 
workload.
 
There are other tracing facilities operating inside z/OS; e.g., the Monitor  
Call trace facility (commonly misnamed GTF, as GTF is but one possible 
software  exploiter of the hardware' Monitor Call trace facility), which is 
invoked 
via  the Monitor Call instruction which, if tracing is enabled for the type of 
event  being traced, causes a program interrupt which ultimately enters GTF 
modules to  trace that event.  Using a program interrupt to effect a trace 
entry 
 involves much more overhead than the processor TRACE instruction.
 
Then there are component traces. Do not confuse or conflate the various  
distinct tracing functions.
 
Bill  Fairchild
Plainfield, IL



************************************** See what's free at http://www.aol.com.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to