[cpp-threads] Web site updated
Paul E. McKenney
paulmck at linux.vnet.ibm.com
Tue Feb 13 22:22:17 GMT 2007
On Tue, Feb 13, 2007 at 07:26:09PM -0000, Boehm, Hans wrote:
> >
> > MMIO accesses, anyone? Hardware timing analysis (especially
> > if there is a short loop between the two)?
> >
> > Let's please just outlaw that sort of optimization for
> > store_raw(), so that it can retain its full meaning.
> >
> My understanding is that we are constrained here as to what we can
> require in normative standards text. Any program using memory mapped IO
> or relying on timing is clearly using features well beyond the standard,
> and hence we can't say anything about its behavior. I think that's one
> problem with the original, imho not very successful, attempt to define
> "volatile" in the standard.
>
> In general, we cannot formally prohibit any compiler transformation that
> is not observable in a conforming program. We are probably a bit more
> constrained, in that I don't think we can require anything that implies
> fairness, since we almost certainly want nonpreemptively scheduled
> threads packages to conform. (This constraint probably doesn't apply to
> Microsoft's PRISM, and they may want to diverge here.)
>
> I am less clear as to what we can reasonably suggest as nonbinding notes
> in the standard. And I suspect we can express intentions like this
> there, but this will not result in a binding requirement. It may
> nonetheless be observed, since I doubt you will get much benefit on
> standard benchmarks by combining atomic operations or the like.
These constraints seem completely at odds with any attempt to define
something that works in a multithreaded environment.
I suppose one could separately call out the non-binding notes that are
absolutely required in order to attain reliable multithreaded operation.
Any experience with this approach?
Thanx, Paul
More information about the cpp-threads
mailing list