Re: [patch] x86, perf_counter, bts: add bts to perf_counter

From: Ingo Molnar
Date: Fri Aug 07 2009 - 07:29:49 EST



* Ingo Molnar <mingo@xxxxxxx> wrote:

> btw., the number of samples seems to be varying too widely:
>
> titan:~> for ((i=0;i<10;i++)); do perf record -f -e branches:u -c 1 true 2>/dev/null; perf report | head -1; done
> # Samples: 28784
> # Samples: 24063
> # Samples: 22788
> # Samples: 30449
> # Samples: 15335
> # Samples: 30557
> # Samples: 24010
> # Samples: 23866
> # Samples: 24877
> # Samples: 24330
>
> compared to the branch-stat itself:
>
> titan:~> perf stat -v --repeat 10 -e branches:u true
> [ perf stat: executing run #1 ... ]
> [ perf stat: executing run #2 ... ]
> [ perf stat: executing run #3 ... ]
> [ perf stat: executing run #4 ... ]
> [ perf stat: executing run #5 ... ]
> [ perf stat: executing run #6 ... ]
> [ perf stat: executing run #7 ... ]
> [ perf stat: executing run #8 ... ]
> [ perf stat: executing run #9 ... ]
> [ perf stat: executing run #10 ... ]
>
> Performance counter stats for 'true' (10 runs):
>
> 23851 branches ( +- 0.000% )
>
> 0.000639653 seconds time elapsed ( +- 2.474% )
>
> do we lose records in the recording?

i doubt it's lost records. Even with SCHED_FIFO sampling and with a
huge, 512 MB mmap ring-buffer we get a BTS sample count variation in
the +- 10% range:

titan:/home/mingo> for ((i=0;i<10;i++)); do perf record -r 1 -m
131072 -f -e branches:u -c 1 true 2>/dev/null; perf report | head
-1; done
# Samples: 24860
# Samples: 24177
# Samples: 26165
# Samples: 25682
# Samples: 29175
# Samples: 23136
# Samples: 27102
# Samples: 29888
# Samples: 25524
# Samples: 24266

(and these are all just user-mode executions)

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/