--- old/src/hotspot/share/runtime/vmOperations.cpp 2020-05-26 17:42:46.000000000 -0400 +++ new/src/hotspot/share/runtime/vmOperations.cpp 2020-05-26 17:42:46.000000000 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,7 @@ #include "runtime/frame.inline.hpp" #include "runtime/interfaceSupport.inline.hpp" #include "runtime/sweeper.hpp" +#include "runtime/synchronizer.hpp" #include "runtime/thread.inline.hpp" #include "runtime/threadSMR.inline.hpp" #include "runtime/vmOperations.hpp" @@ -433,6 +434,17 @@ } } +bool VM_Exit::doit_prologue() { + if (AsyncDeflateIdleMonitors && log_is_enabled(Info, monitorinflation)) { + // AsyncDeflateIdleMonitors does a special deflation at the VM_Exit + // safepoint in order to reduce the in-use monitor population that + // is reported by ObjectSynchronizer::log_in_use_monitor_details() + // at VM exit. + ObjectSynchronizer::set_is_special_deflation_requested(true); + } + return true; +} + void VM_Exit::doit() { if (VerifyBeforeExit) {