Six years ago, Michael Matz proposed a patch for generating profile
instrumentation in a thread-safe manner:

http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00950.html

Reading through the thread, I saw a few minor objections, but nothing to
indicate the patch should be withdrawn.  However, apparently the changes
were never made.

I'm curious about the history here.  What was the reason for abandoning
this?  Was a better alternative found?  Were all the counters made
thread-local?

My reason for asking involves a large heavily-threaded application that
is improved by feedback-directed optimization on some platforms, but not
on others.  One theory is that a defective profile is generated due to
counter dropouts from contention.  I'm somewhat skeptical about this
given that some platforms seem to do well with it, but it's possible.
I'm hopeful that knowing why the thread-safe profiling patch wasn't
implemented will give us more of a clue.

Thanks for any help!

Bill

Reply via email to