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