Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Alexander Terekhov Newsgroups: comp.programming.threads Subject: Re: questions about memory_order_seq_cst fence Date: Tue, 21 Jun 2011 14:54:00 +0200 Organization: A noiseless patient Spider Lines: 37 Message-ID: <4E009468.4B9FF511@web.de> References: <43eb372b-6517-4914-b647-860f1f7136ba@k15g2000pri.googlegroups.com> <87tybsm5kq.fsf@justsoftwaresolutions.co.uk> <35ec803e-2871-41ce-97ea-8b615b29050f@r33g2000prh.googlegroups.com> <87hb7r5z03.fsf@justsoftwaresolutions.co.uk> <87fwnafd9j.fsf@justsoftwaresolutions.co.uk> <4358686f-7bfb-480e-ae71-a8ce57566ab0@l14g2000pro.googlegroups.com> <871uyuasc0.fsf@justsoftwaresolutions.co.uk> <4DFCAB39.35CDACC8@web.de> <87oc1ssyaq.fsf@justsoftwaresolutions.co.uk> <4DFF4B71.20A46979@web.de> <871uyosiuw.fsf@justsoftwaresolutions.co.uk> Reply-To: terekhov@web.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Injection-Info: mx04.eternal-september.org; posting-host="MCbSEzW5qwGLFMNXJh39IQ"; logging-data="25249"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18A16IvWLrVow+ZfEyiSEcVv+44lejeHec=" X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en Cancel-Lock: sha1:HJpNq8Q6QBorrwKoeZiKWHubSa4= Xref: x330-a1.tempe.blueboxinc.net comp.programming.threads:343 Anthony Williams wrote: [...] > > Suppose that I can program in terms of C++MM's acquire/release. The > > platform is x86. > > > > How am I supposed to ensure remote write atomicity ala IA-64 releases > > for a particular store (relevant loads) using C++MM and NOT pessimizing > > everything to seq_cst? > > In the general case, you can't. Acquire/release is essentially pairwise > synchronization in the C++0x MM; if you need a total order then you must > use seq_cst. I have no problem using seq_cst for either particular store or relevant loads but I don't want to pessimizing everything to seq_cst. > > However, in particular cases then you can order particular subsets. Please elaborate. > If you have an example of code that you would like to work then I can > see if I can think of a way to make it work without using seq_cst > everywhere. > > > The next question is regarding store-load fencing for particular > > release-store and subsequent acquire-load. > > One issue here is that the terminology and effects of SPARC membar > constraints do not map cleanly onto C++0x ordering constraints. SPARC Do you have an example for a C++MM's seq_cst fence actually not providing a store-load barrier in compiled code on some platform? regards, alexander.