[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