OProfile manual John Levon <levon@movementarian.org> Copyright © 2000-2004 Victoria University of Manchester, John Levon and others Table of Contents 1. Introduction 1. Applications of OProfile 2. System requirements 3. Internet resources 4. Installation 5. Uninstalling OProfile 2. Overview 1. Getting started 2. Tools summary 3. Controlling the profiler 1. Using opcontrol 1.1. Examples 1.2. Specifying performance counter events 2. Using oprof_start 3. Configuration details 3.1. Hardware performance counters 3.2. OProfile in RTC mode 3.3. OProfile in timer interrupt mode 3.4. Pentium 4 support 3.5. Intel Itanium 2 support 3.6. PowerPC64 support 3.7. Dangerous counter settings 4. Obtaining results 1. Profile specifications 1.1. Examples 1.2. Profile specification parameters 1.3. Locating and managing binary images 1.4. What to do when you don't get any results 2. Image summaries and symbol summaries (opreport) 2.1. Merging separate profiles 2.2. Side-by-side multiple results 2.3. Callgraph output 2.4. Differential profiles with opreport 2.5. Anonymous executable mappings 2.6. Options for opreport 3. Outputting annotated source (opannotate) 3.1. Locating source files 3.2. Usage of opannotate 4. gprof-compatible output (opgprof) 4.1. Usage of opgprof 5. Archiving measurements (oparchive) 5.1. Usage of oparchive 6. Converting sample database files (opimport) 6.1. Usage of opimport 5. Interpreting profiling results 1. Profiling interrupt latency 2. Kernel profiling 2.1. Interrupt masking 2.2. Idle time 2.3. Profiling kernel modules 3. Interpreting call-graph profiles 4. Inaccuracies in annotated source 4.1. Side effects of optimizations 4.2. Prologues and epilogues 4.3. Inlined functions 4.4. Inaccuracy in line number information 5. Assembly functions 6. Other discrepancies 6. Acknowledgments