Hi Andrew,

One quick question about synchronization in unmappers. One of preliminary steps for Loom was to replace monitor usage by j.u.c locks for I/O to let fibers release carrier threads. For instance see JDK-8222774. Does it make sense to do the same in your new unmappers code?

-Dmitry

[1] https://bugs.openjdk.java.net/browse/JDK-8222774

On 8/6/19 4:57 PM, Andrew Dinn wrote:
On 06/08/2019 13:44, Aleksey Shipilev wrote:
Ah, that is exactly what I wanted. Good then, scratch the rest of my comments.
. . .
I thought that translating two separate (and statically bound) Unsafe calls, 
hooking them up to
separate Unsafe leaf entries, and then suddenly going into a single StubRoutine 
call with dynamic
argument that dispatches at runtime is a bit awkward. I would have expected it 
to end up with two
separate StubRoutines as well. Again, I have no strong opinion about this.
Ok, thanks for clarifying. Inertia dictates I leave the stubs as is :-)

Yes, this looks cleaner. The declarations can be a bit less crowded:

   static address data_cache_writeback()      { return _data_cache_writeback; }
   static address data_cache_writeback_sync() { return 
_data_cache_writeback_sync; }

   typedef void (*DataCacheWritebackStub)(void *);
   static DataCacheWritebackStub DataCacheWriteback_stub()         { return ...

   typedef void (*DataCacheWritebackSyncStub)(bool);
   static DataCacheWritebackSyncStub DataCacheWritebackSync_stub() { return ...
   . . .
   http://cr.openjdk.java.net/~adinn/8224974/webrev.11
Looks good.
Ok, I'll fold this and the other format errors you identified into the
next patch.


If I could please get a nod from Alan Bateman (and assuming I don't
receive further comments from other reviewers) I'll push that next patch.

Any more for any more ... ?

regards,


Andrew Dinn
-----------
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander

Reply via email to