On 08/18/2016 05:53 PM, Jeff Law wrote: > On 08/18/2016 09:51 AM, Andi Kleen wrote: >>> I'd prefer to make updates atomic in multi-threaded applications. >>> The best proxy we have for that is -pthread. >>> >>> Is it slower, most definitely, but odds are we're giving folks >>> garbage data otherwise, which in many ways is even worse. >> >> It will likely be catastrophically slower in some cases. >> >> Catastrophically as in too slow to be usable. >> >> An atomic instruction is a lot more expensive than a single increment. Also >> they sometimes are really slow depending on the state of the machine. > And for those cases there's a way to override. > > The default should be set for correctness. > > jeff I would to somehow resolve the discussion related to default value selection. Is the prevailing consensus that we should set -fprofile-update=atomic when -pthread is set? If so, I'll prepare a patch. I tend to do it this way. Moreover, I also have a patch that provides a warning, which can be also useful even though we would change the default behavior: $ ./xgcc -B. /tmp/a.c -fprofile-update=single -pthread -fprofile-generate xgcc: warning: -profile-update=atomic should be used to generate a valid profile for a multithreaded application Ideas? Martin