Monitoring Tools in Linux-based Multicore Processors Clause Samples

Monitoring Tools in Linux-based Multicore Processors. There is a variety of tools under Linux based systems which can use a Performance Monitor Unit of platform architecture. These vary from dynamic monitoring application APIs, such as PAPI [20, 26], to performance profiling oriented tools for system developers, such as OProfile [24]. OProfile supports hw events, multithreading and monitors all processes (e.g. kernel, libc), but unlike gprof, it requires kernel support and can’t handle call graphs or cummulative timings. Other open profilers include DTrace, SystemTap and Lttng. Software profiling is a common technique used to dynamically study the behavior of a program in terms of frequency of function calls, or the cost of instructions with regards to processor time consumed or other hardware metrics, such as TLB misses. Different types of profilers exist, depending on the method used to gather data. For example, instrumentation profilers depend on special instructions inserted by the programmer or the compiler to collect data, or by running the code under the control of the profiler. A common methodology of collecting data for profiling is by sampling in intervals determined by hardware events, like a real time clock or performance counters. In this case, the clock or the counter is configured to cause an interrupt when an overflow occurs, at which point the profiler "takes a sample" by recording the state of the program (e.g. the last executed instruction). With a high enough amount of samples, we can get a very good approximation of which parts of a program are more expensive with respect to time spent (if a clock is used), or more sensitive to hardware events measurable by performance counters made available by a Performance Monitoring Unit. Sample based profilers can usually get measurements for an executed program by having a negligible effect on the performance to be measured, since most of the time no extra code is being executed. A reasonable sampling period allows the program to execute as usually up to the point an interrupt occurs in order to take a sample. Some inaccuracies in the data measured can still occur, since the interrupts can be delayed sometimes, or there can be sections where interrupts are disabled. Throughout this deliverable, we consider sample-based profilers, one of the most important use cases of performance monitoring hardware available on existing platforms. Another important point of classification between profilers (which also refers to the virtualization point of view) is ...