From ede501f418518c00cacde27516e9de0d94692d96 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 8 Jun 2010 10:38:48 +0000 Subject: [PATCH] * gprof.texi (Sampling Error): Note that call counts and basic block counts are only reliable for multi-threaded applications if the counting function itself is thread safe. --- gprof/ChangeLog | 6 ++++++ gprof/gprof.texi | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gprof/ChangeLog b/gprof/ChangeLog index 22a43f7dccc..4370951fa84 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,9 @@ +2010-06-08 Nick Clifton + + * gprof.texi (Sampling Error): Note that call counts and basic + block counts are only reliable for multi-threaded applications if + the counting function itself is thread safe. + 2010-06-08 Nick Clifton * gprof.texi: Replace abbreviated 20th century year numbers with diff --git a/gprof/gprof.texi b/gprof/gprof.texi index 03074d8259e..70c4f88dd75 100644 --- a/gprof/gprof.texi +++ b/gprof/gprof.texi @@ -1615,10 +1615,14 @@ only a small amount of time, so that on the average the sampling process ought to catch that function in the act only once, there is a pretty good chance it will actually find that function zero times, or twice. -By contrast, the number-of-calls and basic-block figures -are derived by counting, not -sampling. They are completely accurate and will not vary from run to run -if your program is deterministic. +By contrast, the number-of-calls and basic-block figures are derived +by counting, not sampling. They are completely accurate and will not +vary from run to run if your program is deterministic and single +threaded. In multi-threaded applications, or single threaded +applications that link with multi-threaded libraries, the counts are +only deterministic if the counting function is thread-safe. (Note: +beware that the mcount counting function in glibc is @emph{not} +thread-safe). @xref{Implementation, ,Implementation of Profiling}. The @dfn{sampling period} that is printed at the beginning of the flat profile says how often samples are taken. The rule of thumb is that a -- 2.30.2