On 06/16/13 04:30, Ed Schouten wrote:
Author: ed
Date: Sun Jun 16 09:30:35 2013
New Revision: 251803
URL: http://svnweb.freebsd.org/changeset/base/251803

Log:
   Change callout use counter to use C11 atomics.
In order to get some coverage of C11 atomics in kernelspace, switch at
   least one piece of code in kernelspace to use C11 atomics instead of
   <machine/atomic.h>.
While there, slightly improve the code by adding an assertion to prevent
   the use count from going negative.

I'm a little worried about these kinds of changes from a performance standpoint when using GCC 4.2. In particular, from the GCC manual: "In most cases, these builtins are considered a full barrier." This is much more synchronization that many of the atomic ops in machine/atomic.h actually require. I'm worried this could lead to serious performance regressions on e.g. PowerPC. gcc mostly seems to do the right thing, but I'm not completely sure and it probably needs extensive testing. One way to accomplish that could be to implement atomic(9) in terms of stdatomic. If nothing breaks or becomes slow, then we will know we are in the clear permanently.
-Nathan
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to