Skip to content

Commit

Permalink
Merge pull request #17000 from tajila/criu_6
Browse files Browse the repository at this point in the history
(0.38) Add a javaVM variant of isCheckpointAllowed
  • Loading branch information
pshipton committed Mar 22, 2023
2 parents c4988a8 + 3dabdb6 commit f82af05
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 2 deletions.
2 changes: 1 addition & 1 deletion runtime/gc_modron_startup/mminit.cpp
Expand Up @@ -2937,7 +2937,7 @@ gcInitializeDefaults(J9JavaVM* vm)
extensions->concurrentScavengerHWSupport = hwSupported
&& !extensions->softwareRangeCheckReadBarrierForced
#if defined(J9VM_OPT_CRIU_SUPPORT)
&& !vm->internalVMFunctions->isCRIUSupportEnabled(vm->internalVMFunctions->currentVMThread(vm))
&& !vm->internalVMFunctions->isCRIUSupportEnabled_VM(vm)
#endif /* defined(J9VM_OPT_CRIU_SUPPORT) */
&& !J9_ARE_ANY_BITS_SET(vm->extendedRuntimeFlags2, J9_EXTENDED_RUNTIME2_ENABLE_PORTABLE_SHARED_CACHE);
}
Expand Down
1 change: 1 addition & 0 deletions runtime/oti/j9nonbuilder.h
Expand Up @@ -4929,6 +4929,7 @@ typedef struct J9InternalVMFunctions {
BOOLEAN (*jvmCheckpointHooks)(struct J9VMThread *currentThread);
BOOLEAN (*jvmRestoreHooks)(struct J9VMThread *currentThread);
BOOLEAN (*isCRIUSupportEnabled)(struct J9VMThread *currentThread);
BOOLEAN (*isCRIUSupportEnabled_VM)(struct J9JavaVM *vm);
BOOLEAN (*isCheckpointAllowed)(struct J9VMThread *currentThread);
BOOLEAN (*isNonPortableRestoreMode)(struct J9VMThread *currentThread);
BOOLEAN (*runInternalJVMCheckpointHooks)(struct J9VMThread *currentThread, const char **nlsMsgFormat);
Expand Down
10 changes: 10 additions & 0 deletions runtime/oti/vm_api.h
Expand Up @@ -506,6 +506,16 @@ internalCreateRAMClassFromROMClass(J9VMThread *vmThread, J9ClassLoader *classLoa
BOOLEAN
isCRIUSupportEnabled(J9VMThread *currentThread);

/**
* @brief Queries if CRIU support is enabled. By default support
* is not enabled, it can be enabled with `-XX:+EnableCRIUSupport`
*
* @param vm javaVM token
* @return TRUE if enabled, FALSE otherwise
*/
BOOLEAN
isCRIUSupportEnabled_VM(J9JavaVM *vm);

/**
* @brief Queries if checkpointing is permitted. Note, when
* -XX:+CRIURestoreNonPortableMode option is specified checkpointing
Expand Down
8 changes: 7 additions & 1 deletion runtime/vm/CRIUHelpers.cpp
Expand Up @@ -108,7 +108,13 @@ jvmRestoreHooks(J9VMThread *currentThread)
BOOLEAN
isCRIUSupportEnabled(J9VMThread *currentThread)
{
return currentThread->javaVM->checkpointState.isCheckPointEnabled;
return isCRIUSupportEnabled_VM(currentThread->javaVM);
}

BOOLEAN
isCRIUSupportEnabled_VM(J9JavaVM *vm)
{
return vm->checkpointState.isCheckPointEnabled;
}

BOOLEAN
Expand Down
1 change: 1 addition & 0 deletions runtime/vm/intfunc.c
Expand Up @@ -405,6 +405,7 @@ J9InternalVMFunctions J9InternalFunctions = {
jvmCheckpointHooks,
jvmRestoreHooks,
isCRIUSupportEnabled,
isCRIUSupportEnabled_VM,
isCheckpointAllowed,
isNonPortableRestoreMode,
runInternalJVMCheckpointHooks,
Expand Down

0 comments on commit f82af05

Please sign in to comment.