On Wed, 3 Feb 2021 20:08:28 GMT, Mikael Vidstedt <mik...@openjdk.org> wrote:

> Out of curiosity, have you looked at the performance of the W^X state 
> transition?

Earlier it was possible to disable W^X protection (unfortunately, I don't know 
a way to do this now). We compared Renaissance results with W^X transitions 
like the proposed one vs. no transitions with the protection disabled once. 
Results were identical for a small and large number of iterations.

>From the other hand, I've used 
>https://github.com/AntonKozlov/macos-aarch64-transition-bench to estimate the 
>cost of the transition.
I re-did measurements with the current implementation and on consumer hardware:

testJNI            thrpt   25   277997000.151 ±   4095685.956  ops/s
testJniNanoTime    thrpt   25    17851098.010 ±    119489.599  ops/s
testNanoTime       thrpt   25    78007491.762 ±    628455.971  ops/s
testNothing        thrpt   25  1724298829.088 ± 100537565.068  ops/s
testTwoStateAndWX  thrpt   25    21958839.057 ±    210490.755  ops/s
testWX             thrpt   25    23299813.266 ±    149837.302  ops/s

There is an overhead, but it does not look like blocking the first 
implementation. I'm not refusing future optimizations like enabling W only when 
necessary. But for now, I don't have a robust and maintainable solution for 
this, sorry.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2200

Reply via email to