OProfile Internals


Table of Contents

1. Introduction
1. Overview
2. Components of the OProfile system
2.1. Architecture-specific components
2.2. oprofilefs
2.3. Generic kernel driver
2.4. The OProfile daemon
2.5. Post-profiling tools
2. Performance counter management
1. Providing a user interface
2. Programming the performance counter registers
2.1. Starting and stopping the counters
2.2. IA64 and perfmon
3. Collecting and processing samples
1. Receiving interrupts
2. Core data structures
3. Logging a sample
4. Logging stack traces
5. Synchronising the CPU buffers to the event buffer
6. Identifying binary images
7. Finding a sample's binary image and offset
4. Generating sample files
1. Processing the buffer
1.1. Handling kernel samples
2. Locating and creating sample files
3. Writing data to a sample file
5. Generating useful output
1. Handling the profile specification
2. Collating the candidate sample files
2.1. Classifying sample files
2.2. Creating inverted profile lists
3. Generating profile data
3.1. Processing the binary image
3.2. Processing the sample files
4. Generating output
6. Extended Feature Interface
1. Introduction
2. Feature Name and Handlers
3. Enabling Features
4. Type of Handlers
4.1. ext_init Handler
4.2. ext_print_stats Handler
4.3. ext_sfile Handler
5. Extended Feature Reference Implementation
5.1. Instruction-Based Sampling (IBS)
Glossary of OProfile source concepts and types

List of Figures

3.1. The OProfile buffers