[crac] RFR: Allow users to pass new properties on restore

Ashutosh Mehra duke at openjdk.java.net
Wed Apr 27 23:26:40 UTC 2022


VM changes: To identify properties that can be modified on restore,
added a new bool field SystemProperty::_modifiable_on_restore.
All the jdk related properties are marked unmodifiable. Rest of the
properties are considered modifiable.
When the JVM is launched with -XX:CRaCRestoreFrom option, then the
properties prefixed with "-D" are maintained in a separate list in
Arguments::_system_properties_for_restore. This list is passed to the JVM
being restored by writing to a shared memory object.
When the JVM is restored, it reads the new properties from shared memory
object and updates its existing list of properties maintained in
Arguments::_system_properties.

JDK changes: System::props needs to be updated on restore to account for
new system properties. For this purpose j.l.System registers a new
JDKResource which queries new properties from the VM in afterRestore()
notification and updates System::props. The JDKResource registered by
j.l.System is given highest priority so it is the first resource to get
afterRestore() notification.

Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>

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

Commit messages:
 - Allow users to pass new properties on restore

Changes: https://git.openjdk.java.net/crac/pull/21/files
 Webrev: https://webrevs.openjdk.java.net/?repo=crac&pr=21&range=00
  Stats: 391 lines in 10 files changed: 324 ins; 15 del; 52 mod
  Patch: https://git.openjdk.java.net/crac/pull/21.diff
  Fetch: git fetch https://git.openjdk.java.net/crac pull/21/head:pull/21

PR: https://git.openjdk.java.net/crac/pull/21


More information about the crac-dev mailing list