/art/runtime/ |
D | monitor_pool.h | 46 static Monitor* CreateMonitor(Thread* self, in CreateMonitor() 52 Monitor* mon = new Monitor(self, owner, obj, hash_code); in CreateMonitor() 60 static void ReleaseMonitor(Thread* self, Monitor* monitor) { in ReleaseMonitor() 78 static Monitor* MonitorFromMonitorId(MonitorId mon_id) { in MonitorFromMonitorId() 80 return reinterpret_cast<Monitor*>(mon_id << LockWord::kMonitorIdAlignmentShift); in MonitorFromMonitorId() 86 static MonitorId MonitorIdFromMonitor(Monitor* mon) { in MonitorIdFromMonitor() 94 static MonitorId ComputeMonitorId(Monitor* mon, Thread* self) { in ComputeMonitorId() 129 Monitor* CreateMonitorInPool(Thread* self, 135 void ReleaseMonitorToPool(Thread* self, Monitor* monitor); 142 Monitor* LookupMonitor(MonitorId mon_id) { in LookupMonitor() [all …]
|
D | monitor_pool.cc | 71 Monitor* last = reinterpret_cast<Monitor*>(reinterpret_cast<uintptr_t>(chunk) + in AllocateChunk() 78 Monitor* before = reinterpret_cast<Monitor*>(reinterpret_cast<uintptr_t>(last) - in AllocateChunk() 87 DCHECK(last == reinterpret_cast<Monitor*>(chunk)); in AllocateChunk() 108 Monitor* MonitorPool::CreateMonitorInPool(Thread* self, in CreateMonitorInPool() 122 Monitor* mon_uninitialized = first_free_; in CreateMonitorInPool() 129 Monitor* monitor = new(mon_uninitialized) Monitor(self, owner, obj, hash_code, id); in CreateMonitorInPool() 134 void MonitorPool::ReleaseMonitorToPool(Thread* self, Monitor* monitor) { in ReleaseMonitorToPool() 143 monitor->~Monitor(); in ReleaseMonitorToPool() 154 for (Monitor* mon : *monitors) { in ReleaseMonitorsToPool()
|
D | monitor_pool_test.cc | 39 static void VerifyMonitor(Monitor* mon, Thread* self) { in VerifyMonitor() 49 std::vector<Monitor*> monitors; in TEST_F() 74 Monitor* mon = MonitorPool::CreateMonitor(self, self, nullptr, static_cast<int32_t>(i)); in TEST_F() 81 Monitor* mon = monitors[index]; in TEST_F() 97 Monitor* mon = MonitorPool::CreateMonitor(self, self, nullptr, in TEST_F() 105 for (Monitor* mon : monitors) { in TEST_F() 113 Monitor* mon = monitors[index]; in TEST_F() 121 for (Monitor* mon : monitors) { in TEST_F()
|
D | monitor.cc | 84 uint32_t Monitor::lock_profiling_threshold_ = 0; 85 uint32_t Monitor::stack_dump_lock_profiling_threshold_ = 0; 87 void Monitor::Init(uint32_t lock_profiling_threshold, in Init() 97 Monitor::Monitor(Thread* self, Thread* owner, ObjPtr<mirror::Object> obj, int32_t hash_code) in Monitor() function in art::Monitor 127 Monitor::Monitor(Thread* self, in Monitor() function in art::Monitor 160 int32_t Monitor::GetHashCode() { in GetHashCode() 172 void Monitor::SetLockingMethod(Thread* owner) { in SetLockingMethod() 218 void Monitor::SetLockingMethodNoProxy(Thread *owner) { in SetLockingMethodNoProxy() 227 bool Monitor::Install(Thread* self) NO_THREAD_SAFETY_ANALYSIS { in Install() 278 Monitor::~Monitor() { in ~Monitor() [all …]
|
D | monitor-inl.h | 28 inline ObjPtr<mirror::Object> Monitor::GetObject() REQUIRES_SHARED(Locks::mutator_lock_) { in GetObject() 33 inline void Monitor::CheckLockOwnerRequest(Thread* self) { in CheckLockOwnerRequest() 43 inline uintptr_t Monitor::LockOwnerInfoChecksum(ArtMethod* m, uint32_t dex_pc, Thread* t) { in LockOwnerInfoChecksum() 49 inline void Monitor::SetLockOwnerInfo(ArtMethod* method, uint32_t dex_pc, Thread* t) { in SetLockOwnerInfo() 57 inline void Monitor::GetLockOwnerInfo(/*out*/ ArtMethod** method, in GetLockOwnerInfo()
|
D | monitor_inflation.md | 1 Monitor inflation and the monitor pool 22 A `MonitorId` is logically a pointer to a `Monitor` structure. The `Monitor` data structure is 29 In the 64-bit case, `Monitor`s are stored in "chunks" of 4K bytes. The bottom bits of a 30 `MonitorId` are the index of the `Monitor` within its chunk. The remaining bits are used to find 39 `Monitor` slots, we can accommodate a large number of `Monitor`s, without ever allocating more than 42 ever move `Monitor` objects, which would significantly complicate the logic. 48 Monitor inflation 50 Monitors are inflated, and `Monitor` structs are allocated on demand, when an operation is 61 Monitor deflation 63 Monitors are deflated, and the `Monitor` structs associated with deflated monitors are reclaimed
|
D | monitor.h | 59 class Monitor { 71 ~Monitor(); 189 Monitor(Thread* self, Thread* owner, ObjPtr<mirror::Object> obj, int32_t hash_code) 191 Monitor(Thread* self, Thread* owner, ObjPtr<mirror::Object> obj, int32_t hash_code, MonitorId id) 231 Monitor* mon) 437 Monitor* next_free_ GUARDED_BY(Locks::allocated_monitor_ids_lock_); 444 DISALLOW_COPY_AND_ASSIGN(Monitor); 452 void Add(Monitor* m) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!monitor_list_lock_); 463 using Monitors = std::list<Monitor*, TrackingAllocator<Monitor*, kAllocatorTagMonitorList>>; 475 friend class Monitor; variable
|
D | runtime_callbacks.h | 44 class Monitor; variable 123 virtual void MonitorContendedLocking(Monitor* mon) REQUIRES_SHARED(Locks::mutator_lock_) = 0; 125 virtual void MonitorContendedLocked(Monitor* mon) REQUIRES_SHARED(Locks::mutator_lock_) = 0; 133 virtual void MonitorWaitFinished(Monitor* m, bool timed_out) 225 void MonitorContendedLocking(Monitor* m) REQUIRES_SHARED(Locks::mutator_lock_); 226 void MonitorContendedLocked(Monitor* m) REQUIRES_SHARED(Locks::mutator_lock_); 229 void MonitorWaitFinished(Monitor* m, bool timed_out)
|
D | lock_word-inl.h | 37 inline Monitor* LockWord::FatLockMonitor() const { in FatLockMonitor() 53 inline LockWord::LockWord(Monitor* mon, uint32_t gc_state) in LockWord()
|
D | monitor_objects_stack_visitor.cc | 46 ThreadState state = Monitor::FetchState(GetThread(), in VisitFrame() 72 Monitor::VisitLocks(this, VisitLockedObject, this, false); in VisitFrame()
|
D | monitor_linux.cc | 21 void Monitor::LogContentionEvent(Thread*, uint32_t, uint32_t, ArtMethod*, uint32_t) { in LogContentionEvent()
|
D | lock_word.h | 34 class Monitor; variable 247 Monitor* FatLockMonitor() const; 253 LockWord(Monitor* mon, uint32_t gc_state);
|
D | monitor_test.cc | 51 std::unique_ptr<Monitor> monitor_; 110 Monitor::Wait(self, obj.Get(), millis_, 0, true, ThreadState::kTimedWaiting); in Run() 155 Monitor::Wait(self, obj, millis_, 0, true, ThreadState::kTimedWaiting); in Run() 200 Monitor::Wait(self, obj, 10, 0, true, ThreadState::kTimedWaiting); in Run()
|
D | object_lock.cc | 38 Monitor::Wait(self_, obj_.Get(), 0, 0, false, ThreadState::kWaiting); in WaitIgnoringInterrupts()
|
D | monitor_android.cc | 35 void Monitor::LogContentionEvent(Thread* self, in LogContentionEvent()
|
D | runtime_callbacks_test.cc | 471 void MonitorContendedLocking([[maybe_unused]] Monitor* mon) override in MonitorContendedLocking() 474 void MonitorContendedLocked([[maybe_unused]] Monitor* mon) override in MonitorContendedLocked() 484 void MonitorWaitFinished(Monitor* m, [[maybe_unused]] bool timed_out) override in MonitorWaitFinished() 513 Monitor::Wait( in TEST_F()
|
D | runtime_callbacks.cc | 162 void RuntimeCallbacks::MonitorContendedLocking(Monitor* m) { in MonitorContendedLocking() 168 void RuntimeCallbacks::MonitorContendedLocked(Monitor* m) { in MonitorContendedLocked() 180 void RuntimeCallbacks::MonitorWaitFinished(Monitor* m, bool timeout) { in MonitorWaitFinished()
|
/art/test/596-monitor-inflation/ |
D | expected-stdout.txt | 2 Monitor list grew by at least 4000 monitors 3 Monitor list shrank correctly
|
/art/test/003-omnibus-opcodes/src/ |
D | Monitor.java | 21 public class Monitor { class 53 new Monitor().subTest(); in run()
|
D | Main.java | 44 Monitor.run(); in run()
|
/art/test/167-visit-locks/ |
D | visit_locks.cc | 56 Monitor::VisitLocks(this, Callback, nullptr); in Java_Main_testVisitLocks()
|
/art/test/003-omnibus-opcodes/ |
D | expected-stdout.txt | 41 Monitor.run
|
/art/test/1932-monitor-events-misc/ |
D | expected-stdout.txt | 62 Monitor usage in MonitorEnter: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owne… 64 Monitor usage in MonitorEntered: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], ow… 66 Monitor usage in MonitorWait: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owner… 68 Monitor usage in MonitorWaited: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], own…
|
D | expected-stdout.jvm.txt | 63 Monitor usage in MonitorEnter: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owne… 65 Monitor usage in MonitorEntered: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], ow… 67 Monitor usage in MonitorWait: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owner… 69 Monitor usage in MonitorWaited: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], own…
|
/art/runtime/mirror/ |
D | object-inl.h | 79 return Monitor::GetLockOwnerThreadId(this); in GetLockOwnerThreadId() 83 return Monitor::MonitorEnter(self, this, /*trylock=*/false); in MonitorEnter() 87 return Monitor::MonitorEnter(self, this, /*trylock=*/true); in MonitorTryEnter() 91 return Monitor::MonitorExit(self, this); in MonitorExit() 95 Monitor::Notify(self, this); in Notify() 99 Monitor::NotifyAll(self, this); in NotifyAll() 103 Monitor::Wait(self, this, ms, ns, true, ThreadState::kTimedWaiting); in Wait()
|