-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trace-to-file feature #33
Comments
IT'S WORKING! I only have the instruction tracing part of it working right now, but it's working great! And WOW does it ever help speed things up! I'll try to get some more precise numbers for you, but as a quick test I did an auto-trace of a z/OS IPL for 10,000 instructions, and doing it the old fashioned/current way (where each executed instruction is displayed on the HMC as the guest is running) took about 21 seconds, whereas using my new Doing an instruction trace is still going to slow down the guest considerably even when tracing to a file, but with my new trace-to-file functionality at least now it doesn't slow it down as much. So yeah, I've made some good progress. Something else I still need to do too is design some additional selection options into the tracefile print utility (called I would also like to eventually do the same thing for I/O tracing too, but I think that can come later. But things are looking up! Let me know if any of you are interested in giving it a try and I'll upload the patch for you. It's quite large (138K). Thanks! |
Or should I create a fork and publish it there? Hmmmm... What do you think? |
Okay, here are some hard numbers from a quick test I just did: Testing parameters:
Results: -------------------------------------------------------------------------------- Test z/OS 2.5 IPL using native HMC panel: tf (trace to file): 20:03:49 HHC02370I Automatic tracing started at instrcount 2225211128 (BEG+0) 20:03:53 HHC02371I Automatic tracing stopped at instrcount 2225311128 (AMT+0) duration = 4 seconds instr rate = 25000/sec logfile size = 45K tracefile size = 50.0MB normal (trace to HMC): 20:10:36 HHC02370I Automatic tracing started at instrcount 2225211146 (BEG+18) 20:14:00 HHC02371I Automatic tracing stopped at instrcount 2225311146 (AMT+0) 20:14:00 IEE178I AUTOMATIC RECOVERY IS IN PROGRESS 20:14:00 NO OPERATOR ACTION IS REQUIRED. 20:14:00 PROCESSOR (0001) DETECTED AN EXCESSIVE DISABLED SPIN LOOP 20:14:00 WAITING FOR LOCK RELEASE FROM PROCESSOR (0005). 20:14:00 AUTOMATIC RECOVERY ACTION IS ABEND duration = 204 seconds (3 minutes, 24 seconds) instr rate = 490/sec (!!!!) logfile size = 109MB tf is OVER 50 TIMES faster! -------------------------------------------------------------------------------- Test z/OS 2.5 IPL using HercGUI: tf (trace to file): 20:33:23.443 HHC02370I Automatic tracing started at instrcount 2225211177 (BEG+49) 20:33:26.317 HHC02371I Automatic tracing stopped at instrcount 2225311177 (AMT+0) duration = 3 seconds instr rate = 33333/sec logfile size = 47K tracefile size = 49.6MB trace print size = 117MB normal (trace to HMC): 20:40:46.081 HHC02370I Automatic tracing started at instrcount 2225211214 (BEG+86) 20:41:17.062 HHC02371I Automatic tracing stopped at instrcount 2225311214 (AMT+0) duration = 31 seconds (*) instr rate = 3225/sec logfile size = 114MB tf is OVER 10 TIMES faster! (*) And tracing to the HMC is also over 6.5 times faster when HercGUI is used too! -------------------------------------------------------------------------------- I would consider that to be fairly impressive! Comments? Attachment: .zip file of all log files, trace file, and resulting tfprint of trace file = 26MB: Warning! Total UNZIPPED size of all files = approximately 342MB! |
FYI: There was a minor glitch (bug) in my |
UPDATE: I have virtually all of the instruction tracing to file and the Am currently working on trying to incorporate I/O device tracing into the Trace to File design as well. |
New 'tf' command to direct all instruction and I/O tracing to a disk file instead of immediately formatting and displaying on the console (which slows down Hercules execution to a CRAWL). Only the raw data is written to the trace file and a new 'tfprint' utility is provided to produce the actual trace report (identical to what would normally be displayed on the Hercules console). Closes issue #33
Closed by commit 598c467. Please give it a try and tell me what you think! Here's the help information for both the new 'tf' command as well as the new 'tfprint' utility:
|
Note: this issue is closely related to issue #32: "Instruction registers display is buggy/unreliable".
Instruction and I/O tracing is currently very slow (introduces a significant performance impact) due to, I believe, the fact that the current implementation always immediately formats and displays the trace information directly to the console while tracing is active (which is very inefficient not only because formatting a message itself is inefficient, but also because our entire message handling is itself incredibly inefficient, passing formatted messages through a pipe, etc).
I suspect the performance of instruction and I/O tracing would be dramatically improved if we would instead simply write the raw information to a disk file which could then be processed by an offline utility to selectively display the desired information.
The text was updated successfully, but these errors were encountered: