summaryrefslogtreecommitdiff
path: root/openjdkjvmti/deopt_manager.cc
diff options
context:
space:
mode:
author Mythri Alle <mythria@google.com> 2022-06-11 09:22:57 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2022-06-14 18:03:44 +0000
commite32c970b47587e47697a3dab1c329f071d506643 (patch)
tree56e65801d26d02a70374bbd4859148469228ca3c /openjdkjvmti/deopt_manager.cc
parentf44070ed04ea147ad19e8bcd43faec5fc880408d (diff)
Don't install instrumentation stubs for single thread deopts
Single thread deoptimization doesn't need anything special. Don't install instrumentation stubs. This CL also have a couple of fixes which were masked by this: 1. When initializing method's code, check if method was already deoptimized and install interpreter stubs for such methods 2. Also check for any debugger frames before restoring the instrumentation stack. Test: art/test.py Bug: 234888286 Bug: 206029744 Change-Id: Ie9a9ca01e8f299391c8b22ecb7694ca90f934d5f
Diffstat (limited to 'openjdkjvmti/deopt_manager.cc')
-rw-r--r--openjdkjvmti/deopt_manager.cc10
1 files changed, 1 insertions, 9 deletions
diff --git a/openjdkjvmti/deopt_manager.cc b/openjdkjvmti/deopt_manager.cc
index a15e6678f1..312a797b9d 100644
--- a/openjdkjvmti/deopt_manager.cc
+++ b/openjdkjvmti/deopt_manager.cc
@@ -460,15 +460,7 @@ void DeoptManager::AddDeoptimizationRequester() {
art::ScopedThreadStateChange stsc(self, art::ThreadState::kSuspended);
deoptimization_status_lock_.ExclusiveLock(self);
deopter_count_++;
- if (deopter_count_ == 1) {
- ScopedDeoptimizationContext sdc(self, this);
- art::instrumentation::Instrumentation* instrumentation =
- art::Runtime::Current()->GetInstrumentation();
- // Tell instrumentation we will be deopting single threads.
- instrumentation->EnableSingleThreadDeopt(kInstrumentationKey);
- } else {
- deoptimization_status_lock_.ExclusiveUnlock(self);
- }
+ deoptimization_status_lock_.ExclusiveUnlock(self);
}
void DeoptManager::DeoptimizeThread(art::Thread* target) {