kernel-fxtec-pro1x/arch/x86/oprofile
Robert Richter ba52078e19 oprofile/x86: implement randomization for IBS periodic op counter
IBS selects an op (execution operation) for sampling by counting
either cycles or dispatched ops. Better statistical samples can be
produced by adding a software generated random offset to the periodic
op counter value with each sample.

This patch adds software randomization to the IBS periodic op
counter. The lower 12 bits of the 20 bit counter are
randomized. IbsOpCurCnt is initialized with a 12 bit random value.

There is a work around if the hw can not write to IbsOpCurCnt. Then
the lower 8 bits of the 16 bit IbsOpMaxCnt [15:0] value are randomized
in the range of -128 to +127 by adding/subtracting an offset to the
maximum count (IbsOpMaxCnt).

The linear feedback shift register (LFSR) algorithm is used for
pseudo-random number generation to have low impact to the memory
system.

Signed-off-by: Robert Richter <robert.richter@amd.com>
2010-02-26 15:14:02 +01:00
..
backtrace.c perf events, x86/stacktrace: Make stack walking optional 2009-12-17 09:56:19 +01:00
init.c x86: coding style fixes to arch/x86/oprofile/init.c 2008-04-17 17:40:49 +02:00
Makefile x86/oprofile: reanaming op_model_athlon.c to op_model_amd.c 2008-07-26 11:48:14 +02:00
nmi_int.c oprofile/x86: add Xeon 7500 series support 2010-01-25 15:34:53 +01:00
nmi_timer_int.c x86: coding style fixes to arch/x86/oprofile/nmi_timer_int.c 2008-04-17 17:40:50 +02:00
op_counter.h oprofile: Implement performance counter multiplexing 2009-07-20 16:33:53 +02:00
op_model_amd.c oprofile/x86: implement randomization for IBS periodic op counter 2010-02-26 15:14:02 +01:00
op_model_p4.c x86/oprofile: Modify initialization of num_virt_counters 2009-07-20 16:43:21 +02:00
op_model_ppro.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
op_x86_model.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00