Recent Posts

Tags

News

  • A blog about Microsoft Windows development, focused on kernel-mode driver development, the Windows DDK, WDK, and related tools.

    To elaborate on the copyright notice at the bottom: all content produced by me on this site is copyright and licensed as follows:

    <!-- Creative Commons License --> Creative Commons License
    This work is licensed under a Creative Commons License. <!-- /Creative Commons License --> <!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <Work rdf:about=""> <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" /> <license rdf:resource="http://creativecommons.org/licenses/by-nc/2.0/" /> </Work> <License rdf:about="http://creativecommons.org/licenses/by-nc/2.0/"> <permits rdf:resource="http://web.resource.org/cc/Reproduction" /> <permits rdf:resource="http://web.resource.org/cc/Distribution" /> <requires rdf:resource="http://web.resource.org/cc/Notice" /> <requires rdf:resource="http://web.resource.org/cc/Attribution" /> <prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" /> <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> </License> </rdf:RDF> -->

    Although I work for Positive Networks, this work is my own and is not connected with my employer in any way.

    <!-- technorati again --> <script type="text/javascript" src="http://embed.technorati.com/embed/8xz8dihr.js"> </script>

Community

Email Notifications

Other Blogs

General

Technical Resources

About Me

Archives

Kernel Mustard

Reflections on Windows System Programming
Steve Dispensa, MVP - Windows DDK

Some Follow-Up To Previous Comments

A couple of things:

- Further offline discussion with Wayne points out that, if there are memory barrier issues in Java (in its current incarnation), they are JDK problems, not language problems per se, due to the fact that Java guarantees "program order" (causing a permanent performance penalty). The example he gave turned out to need some re-working to really test this correctly.

- The Java synchronization stuff posted doesn't actually do anything for memory barriers at all in theory, although as it happens, all of the underlying OS synchronization primitives provide implicit memory barriers. Java on an architecture in which synchronization primitives are implemented differently might have a problem.

- Rod posted a cool link about Java memory issues. It's a good thing that I Hate Java, or else I'd have to be concerned about stuff like this. :-)

- As far as memory barrier references, there are few. The is some discussion in Dekker and Newcommer's Writing Windows NT Device Drivers, which is old and out of date, but a great book nonetheless. Wikipedia has an article about memory barriers, and they're covered in the processor manuals for the Pentium 4, Itanium, and AMD64. Note that they're also sometimes referred to as "fences". Adrian Oney from Microsoft knows about them; that's as much as I can say about that though. :-) I would really appreciate any additional resources you find.

Leave a Comment

(required) 

(required) 

(optional)

(required)