Processor Counter Monitor
Macros | Functions
pcm.cpp File Reference

Example of using CPU counters: implements a simple performance counter monitoring utility. More...

#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>
#include <math.h>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <cstring>
#include <sstream>
#include <assert.h>
#include <bitset>
#include "cpucounters.h"
#include "utils.h"

Macros

#define HACK_TO_REMOVE_DUPLICATE_ERROR
 
#define SIZE   (10000000)
 
#define PCM_DELAY_DEFAULT   1.0
 
#define PCM_DELAY_MIN   0.015
 
#define PCM_CALIBRATION_INTERVAL   50
 
#define MAX_CORES   4096
 

Functions

template<class IntType >
double float_format (IntType n)
 
std::string temp_format (int32 t)
 
std::string l3cache_occ_format (uint64 o)
 
void print_help (const string prog_name)
 
template<class State >
void print_basic_metrics (const PCM *m, const State &state1, const State &state2)
 
template<class State >
void print_other_metrics (const PCM *m, const State &state1, const State &state2)
 
void print_output (PCM *m, const std::vector< CoreCounterState > &cstates1, const std::vector< CoreCounterState > &cstates2, const std::vector< SocketCounterState > &sktstate1, const std::vector< SocketCounterState > &sktstate2, const std::bitset< MAX_CORES > &ycores, const SystemCounterState &sstate1, const SystemCounterState &sstate2, const int cpu_model, const bool show_core_output, const bool show_partial_core_output, const bool show_socket_output, const bool show_system_output)
 
void print_basic_metrics_csv_header (const PCM *m)
 
void print_basic_metrics_csv_semicolons (const PCM *m)
 
void print_csv_header (PCM *m, const int cpu_model, const bool show_core_output, const bool show_socket_output, const bool show_system_output)
 
template<class State >
void print_basic_metrics_csv (const PCM *m, const State &state1, const State &state2, const bool print_last_semicolon=true)
 
template<class State >
void print_other_metrics_csv (const PCM *m, const State &state1, const State &state2)
 
void print_csv (PCM *m, const std::vector< CoreCounterState > &cstates1, const std::vector< CoreCounterState > &cstates2, const std::vector< SocketCounterState > &sktstate1, const std::vector< SocketCounterState > &sktstate2, const SystemCounterState &sstate1, const SystemCounterState &sstate2, const int cpu_model, const bool show_core_output, const bool show_socket_output, const bool show_system_output)
 
int main (int argc, char *argv[])
 

Detailed Description

Example of using CPU counters: implements a simple performance counter monitoring utility.