[aarch64-port-dev ] volatiles and membars in jdk7 aarch64.ad

Andrew Dinn adinn at redhat.com
Wed Nov 26 11:10:48 UTC 2014


On 26/11/14 10:49, Edward Nevill wrote:
> 
> 
> On 26 November 2014 at 10:12, Andrew Dinn <adinn at redhat.com
> <mailto:adinn at redhat.com>> wrote:
> 
>     operation as two separate operations, a barrier employing
>     ins_pipe(pipe_serial) and a load or store using ins_pipe(iload_mem) or
>     ins_pipe(istore_mem). If the volatile operations are included then the
>     model accounts for a synchronizing memory operation as a single
>     acquiring load or releasing store using ins_pipe(pipe_serial) or
>     ins_pipe(pipe_class_memory). I assume that will also be how it will work
>     when your switchable version is in place. That looks reasonable to me
>     but I wondered if anyone had any thoughts? Ed?
> 
> 
> It should be pipe_serial, looking at the existing code it seems to use
> pipe_class_memory for storeB_volatile, storeC_volatile, storeI_volatile
> et al. This is wrong. pipe_class_memory does not have the necessary
> magic force_serialization.
> 
> pipe_class_memory is vestigial from the previous implemention.

Well, I admit that I wondered about that but I assumed you must know
what you are doing ;-).

I have faithfully copied into JDK7 what you added to JDK8/9. Do you want
to post a patch for JDK8/9 or shall I? I will backport to JDK7 once
upstream as been fixed.

regards,


Andrew Dinn
-----------



More information about the aarch64-port-dev mailing list