Skip to content

Overhead benchmarks for the perf_event subsystem

Notifications You must be signed in to change notification settings

nivi1501/perfevent_overhead

 
 

Repository files navigation

Programs for exploring the overhead of various
Linux performance counter implementations.



----------------------

How to generate the graphs/data used in the PERF_EVENT paper:
   Figure 1: Context Switch
             core2_context_switch.jgr
	     
	     Gathering data:
	       Go into context_switch directory.
	       Copy lat_ctx from lmbench in
	       run ./prepare_before.sh
	       run appropriate .sh file
	     Generating plot
	       run "make"
	       run ./plot_results
	       remove extraneous lines and put into jgr file by hand
	     
   Figure 2: Start/Stop/Read amd0fh core2 atom nehalem
   Figure 3: Read            amd0fh core2 atom nehalem
   Figure 4: Start           amd0fh core2 atom nehalem
   Figure 5: Stop            amd0fh core2 atom nehalem
   
             Gathering data:
	       go into rdtsc directory
	       run "make"
	       For each kernel run "../prepare_before.sh" to turn off
	          cpufrequency scaling.  Then run "./generate_results"
	       If rdpmc results desired, run "./generate_results perf_event_rdpmc"
               If perfctr results, run "./generate_results perfctr"
	       If perfmon2 results, run "./generate_results perfmon2"
	       Once all the data is gathered, consolidate the generated
	         directories under results/$ARCH to one subdir
             Generating plots
	       go into rdtsc/results directory
	       run "make"
	       run ./make_graphs_colorful_all.sh
               The graphs will be in "results/graph/colorful"
	       
   Figure 6: Varying events
              Generating data:
                These use the same data as the rdtsc plots
	      Generating plots:
	        go into rdtsc/results directory
		run "make"
		run ./make_graphs_varying_all.sh
		The graphs will be in "results/graph/varying"
   Figure 7: Taken vs Total amd0fh
   Figure 8: Branch miss percentage amd0fh
   Figure 9: Nehalem -- perf-event vs PAPI events
   
   
--------------------

The website for this work is:
  http://web.eece.maine.edu/~vweaver/projects/perf_events/overhead/

Other Comments:
---------------

The "prepare_before.sh" script will put the cpufreq governor on
performance, and the various run commands set the cpu affinity to 
core 0.

Kernels 2.6.36 and 2.6.37 won't let you turn off nmi_watchdog with
/proc/sys/kernel/nmi_watchdog?

There are many other factors that can affect performance (including
number of command line args, which we vary) but hopefully that
doesn't matter for these simple null cases?

Author:
-------

Vince Weaver
vincent.weaver _at_ maine.edu
7 March 2013

About

Overhead benchmarks for the perf_event subsystem

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 89.4%
  • Shell 5.1%
  • Makefile 3.7%
  • C++ 1.8%