I have updated wspy to dump a “processtable.csv” file at the same time it dumps a “processtable.txt” file.
This gives me several advantages:
- I’ve separated the format of output from collecting instrumentation. Hence, I can run things once to collect the data and then display it in different forms. This addressed a problem where I kept thinking how to best decorate the process tree to strike a balance between too cluttered and not enough information. I can now save the information once in the tree and then display as needed
- I have created an ability to dump metrics in format different from a tree
- I have a tool that also helps me further investigate a problem where the build_gcc tree with 1 million processes has something going wrong.
The usage information for the new tool is:
mev@popayan:~/wspy$ ./process-csv -? ./process-csv: invalid option -- '?' fatal error: usage: ./process-csv [-m][-f filename][-F format][-p pid] -f sets input filename (default processtree.csv) -F is a string of format specifiers: c - core last run f - minor and major faults i - ipc of this process I - cummulative IPC for process tree m - On_CPU and On_Core metrics n - number of processes in tree p - counters for this process P - counters for the tree t - time: elapsed, start and finish u - user and system times v - virtual memory sizes -m provides summary metrics -p selects pid to print
One of the larger sections is the -F option which selectively includes and formats many different pieces of data.
Here is an example of the -m option to print metrics:
mev@popayan:~/wspy$ ./process-csv -f /home/mev/c-ray/3/processtree.csv -p 12476 -m c-ray - pid 12476 On_CPU 0.988 On_Core 7.901 IPC 1.438 Retire 0.740 (74.0%) FrontEnd 0.104 (10.4%) Spec 0.008 (0.8%) Backend 0.148 (14.8%) Elapsed 26.61 Procs 130 Minflt 2514 Majflt 0 Utime 210.25 (100.0%) Stime 0.00 (0.0%) Start 442452.65 Finish 442479.26