Lines Matching refs:art
79 static_cast<art::LockLevel>( in DeoptManager()
80 art::LockLevel::kClassLinkerClassesLock + 1)), in DeoptManager()
86 static_cast<art::LockLevel>(art::LockLevel::kAbortLock + 1)), in DeoptManager()
91 art::ScopedThreadStateChange stsc(art::Thread::Current(), in Setup()
92 art::ThreadState::kWaitingForDebuggerToAttach); in Setup()
93 art::ScopedSuspendAll ssa("Add method Inspection Callback"); in Setup()
94 art::RuntimeCallbacks* callbacks = art::Runtime::Current()->GetRuntimeCallbacks(); in Setup()
98 void DeoptManager::DumpDeoptInfo(art::Thread* self, std::ostream& stream) { in DumpDeoptInfo()
99 art::ScopedObjectAccess soa(self); in DumpDeoptInfo()
100 art::MutexLock mutll(self, *art::Locks::thread_list_lock_); in DumpDeoptInfo()
101 art::MutexLock mudsl(self, deoptimization_status_lock_); in DumpDeoptInfo()
102 art::MutexLock mubsl(self, breakpoint_status_lock_); in DumpDeoptInfo()
109 struct DumpThreadDeoptCount : public art::Closure { in DumpDeoptInfo()
113 void Run(art::Thread* self) override { in DumpDeoptInfo()
139 auto func = [](art::Thread* thread, void* ctx) { in DumpDeoptInfo()
142 art::Runtime::Current()->GetThreadList()->ForEach(func, &dtdc); in DumpDeoptInfo()
146 art::Thread* self = art::Thread::Current(); in FinishSetup()
147 art::Runtime* runtime = art::Runtime::Current(); in FinishSetup()
159 art::ScopedSuspendAll ssa(__FUNCTION__); in FinishSetup()
161 art::MutexLock mu(self, deoptimization_status_lock_); in FinishSetup()
163 runtime->SetRuntimeDebugState(art::Runtime::RuntimeDebugState::kJavaDebuggableAtInit); in FinishSetup()
182 art::jit::ScopedJitSuspend suspend_jit; in FinishSetup()
183 art::ScopedSuspendAll ssa(__FUNCTION__); in FinishSetup()
187 art::jit::Jit* jit = runtime->GetJit(); in FinishSetup()
196 runtime->SetRuntimeDebugState(art::Runtime::RuntimeDebugState::kJavaDebuggable); in FinishSetup()
202 bool DeoptManager::MethodHasBreakpoints(art::ArtMethod* method) { in MethodHasBreakpoints()
203 art::MutexLock lk(art::Thread::Current(), breakpoint_status_lock_); in MethodHasBreakpoints()
207 bool DeoptManager::MethodHasBreakpointsLocked(art::ArtMethod* method) { in MethodHasBreakpointsLocked()
213 art::Thread* self = art::Thread::Current(); in RemoveDeoptimizeAllMethods()
214 art::ScopedThreadSuspension sts(self, art::ThreadState::kSuspended); in RemoveDeoptimizeAllMethods()
220 art::Thread* self = art::Thread::Current(); in AddDeoptimizeAllMethods()
221 art::ScopedThreadSuspension sts(self, art::ThreadState::kSuspended); in AddDeoptimizeAllMethods()
226 void DeoptManager::AddMethodBreakpoint(art::ArtMethod* method) { in AddMethodBreakpoint()
231 art::Thread* self = art::Thread::Current(); in AddMethodBreakpoint()
235 art::ScopedThreadSuspension sts(self, art::ThreadState::kSuspended); in AddMethodBreakpoint()
254 auto instrumentation = art::Runtime::Current()->GetInstrumentation(); in AddMethodBreakpoint()
266 void DeoptManager::RemoveMethodBreakpoint(art::ArtMethod* method) { in RemoveMethodBreakpoint()
271 art::Thread* self = art::Thread::Current(); in RemoveMethodBreakpoint()
275 art::ScopedThreadSuspension sts(self, art::ThreadState::kSuspended); in RemoveMethodBreakpoint()
282 art::MutexLock mu(self, breakpoint_status_lock_); in RemoveMethodBreakpoint()
290 auto instrumentation = art::Runtime::Current()->GetInstrumentation(); in RemoveMethodBreakpoint()
308 void DeoptManager::WaitForDeoptimizationToFinishLocked(art::Thread* self) { in WaitForDeoptimizationToFinishLocked()
314 void DeoptManager::WaitForDeoptimizationToFinish(art::Thread* self) { in WaitForDeoptimizationToFinish()
321 class ScopedDeoptimizationContext : public art::ValueObject {
323 ScopedDeoptimizationContext(art::Thread* self, DeoptManager* deopt) in ScopedDeoptimizationContext()
325 ACQUIRE(art::Locks::mutator_lock_) in ScopedDeoptimizationContext()
326 ACQUIRE(art::Roles::uninterruptible_) in ScopedDeoptimizationContext()
337 uninterruptible_cause_ = critical_section_.Enter(art::gc::kGcCauseInstrumentation, in ScopedDeoptimizationContext()
338 art::gc::kCollectorTypeCriticalSection); in ScopedDeoptimizationContext()
339 art::Runtime::Current()->GetThreadList()->SuspendAll("JMVTI Deoptimizing methods", in ScopedDeoptimizationContext()
344 RELEASE(art::Locks::mutator_lock_) in RELEASE()
345 RELEASE(art::Roles::uninterruptible_) { in RELEASE()
349 art::Runtime::Current()->GetThreadList()->ResumeAll(); in RELEASE()
351 art::MutexLock lk(self_, deopt_->deoptimization_status_lock_); in RELEASE()
357 art::Thread* self_;
359 art::gc::GCCriticalSection critical_section_;
363 void DeoptManager::AddDeoptimizeAllMethodsLocked(art::Thread* self) { in AddDeoptimizeAllMethodsLocked()
373 art::Thread* self = art::Thread::Current(); in Shutdown()
374 art::Runtime* runtime = art::Runtime::Current(); in Shutdown()
378 art::jit::ScopedJitSuspend suspend_jit; in Shutdown()
380 art::ScopedThreadStateChange sts(self, art::ThreadState::kSuspended); in Shutdown()
384 art::RuntimeCallbacks* callbacks = runtime->GetRuntimeCallbacks(); in Shutdown()
401 void DeoptManager::RemoveDeoptimizeAllMethodsLocked(art::Thread* self) { in RemoveDeoptimizeAllMethodsLocked()
411 void DeoptManager::PerformLimitedDeoptimization(art::Thread* self, art::ArtMethod* method) { in PerformLimitedDeoptimization()
413 art::Runtime::Current()->GetInstrumentation()->Deoptimize(method); in PerformLimitedDeoptimization()
416 void DeoptManager::PerformLimitedUndeoptimization(art::Thread* self, art::ArtMethod* method) { in PerformLimitedUndeoptimization()
418 art::Runtime::Current()->GetInstrumentation()->Undeoptimize(method); in PerformLimitedUndeoptimization()
421 void DeoptManager::PerformGlobalDeoptimization(art::Thread* self) { in PerformGlobalDeoptimization()
423 art::Runtime::Current()->GetInstrumentation()->DeoptimizeEverything( in PerformGlobalDeoptimization()
427 void DeoptManager::PerformGlobalUndeoptimization(art::Thread* self) { in PerformGlobalUndeoptimization()
429 art::Runtime::Current()->GetInstrumentation()->UndeoptimizeEverything( in PerformGlobalUndeoptimization()
433 jvmtiError DeoptManager::AddDeoptimizeThreadMethods(art::ScopedObjectAccessUnchecked& soa, jthread … in AddDeoptimizeThreadMethods()
434 art::Locks::thread_list_lock_->ExclusiveLock(soa.Self()); in AddDeoptimizeThreadMethods()
435 art::Thread* target = nullptr; in AddDeoptimizeThreadMethods()
438 art::Locks::thread_list_lock_->ExclusiveUnlock(soa.Self()); in AddDeoptimizeThreadMethods()
443 struct DeoptClosure : public art::Closure { in AddDeoptimizeThreadMethods()
446 void Run(art::Thread* self) override REQUIRES_SHARED(art::Locks::mutator_lock_) { in AddDeoptimizeThreadMethods()
456 art::Locks::thread_list_lock_->ExclusiveUnlock(soa.Self()); in AddDeoptimizeThreadMethods()
461 jvmtiError DeoptManager::RemoveDeoptimizeThreadMethods(art::ScopedObjectAccessUnchecked& soa, jthre… in RemoveDeoptimizeThreadMethods()
462 art::MutexLock mu(soa.Self(), *art::Locks::thread_list_lock_); in RemoveDeoptimizeThreadMethods()
463 art::Thread* target = nullptr; in RemoveDeoptimizeThreadMethods()
476 art::Thread* self = art::Thread::Current(); in RemoveDeoptimizationRequester()
477 art::ScopedThreadStateChange sts(self, art::ThreadState::kSuspended); in RemoveDeoptimizationRequester()
483 art::Runtime::Current()->GetInstrumentation()->DisableDeoptimization( in RemoveDeoptimizationRequester()
492 art::Thread* self = art::Thread::Current(); in AddDeoptimizationRequester()
493 art::ScopedThreadStateChange stsc(self, art::ThreadState::kSuspended); in AddDeoptimizationRequester()
502 art::Runtime::Current()->GetInstrumentation()->EnableEntryExitHooks(kInstrumentationKey); in AddDeoptimizationRequester()
508 void DeoptManager::DeoptimizeThread(art::Thread* target) { in DeoptimizeThread()
511 art::ScopedThreadSuspension sts(art::Thread::Current(), art::ThreadState::kSuspended); in DeoptimizeThread()
512 art::gc::ScopedGCCriticalSection sgccs(art::Thread::Current(), in DeoptimizeThread()
513 art::gc::GcCause::kGcCauseDebugger, in DeoptimizeThread()
514 art::gc::CollectorType::kCollectorTypeDebugger); in DeoptimizeThread()
515 art::ScopedSuspendAll ssa("Instrument thread stack"); in DeoptimizeThread()
519 art::Runtime::Current()->GetInstrumentation()->InstrumentThreadStack(target, in DeoptimizeThread()