A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.
Document number: N4036
by Paul E. McKenney, Torvald Riegel, Jeff Preshing, et al.
Despite the growing number of
memory_order_consumeuse cases, there are no known high-performance implementations of
memory_order_consumeloads in any C11 or C++11 environments. This situation suggests that some change is in order: After all, if the standard does not support this use case, the corresponding users can be expected to continue to exploit whatever implementation-specific facilities provide the required functionality. This document therefore provides a brief overview of RCU in Section 2 and surveys
memory_order_consumeuse cases within the Linux kernel in Section 3. Section 4 looks at how dependency ordering is currently supported in pre-C11 implementations, and then Section 5 looks at possible ways to support those use cases in existing C11 and C++11 implementations, followed by some thoughts on incremental paths towards official support of these use cases in the standards. Section 6 lists some weaknesses in the current C11 and C++11 specication of dependency ordering, and finally Section 7 outlines a few possible alternative dependency-ordering specifications.
Note: SC22/WG14 liaison issue.