RFR: 8295214: Generational ZGC: Guard nmethods from cross modifying code

Robbin Ehn rehn at openjdk.org
Wed Nov 9 10:07:36 UTC 2022


On Tue, 8 Nov 2022 16:19:47 GMT, Erik Österlund <eosterlund at openjdk.org> wrote:

> Generational ZGC will need to patch nmethod instructions outside of safepoints, and guard entries into the nmethods with cross modifying code fences. This is mostly taken care of by nmethod entry barrier code. But there are a few entries that don't go through nmethod entry barriers that need fixing. In particular when entering an nmethod by returning through the stack watermark barrier. This patch ensures that whenever the stack watermark barrier exposes a new nmethod, we also ensure that a cross modify fence is executed, so that any concurrently updated instructions can be safely executed.

I think David have a point here, using e.g. non-gen ZGC returning from Fibonacci could be slowed-down.
I assume gen-ZGC will only need the CMF once per safepoint? If so can we make it conditional per safepoint generation?

Or make sure it is not a problem.

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

PR: https://git.openjdk.org/jdk/pull/11042


More information about the hotspot-dev mailing list