/ark/runtime_core/docs/diagrams/ |
D | gc-trigger-sequence-threshold.pusequence | 18 title GC triggered by threshold 26 participant GC 29 Allocator -> GCTaskQueue: Add new GC task 32 GCTaskQueue -> GCThread : GC task 33 GCThread -> GC : GC task 35 GC -> AppThread1: Suspend 36 GC -> AppThread2: Suspend 37 GC -> GC : GC running at STW 38 GC -> AppThread1: Resume 39 GC -> AppThread2: Resume [all …]
|
D | gc-trigger-sequence-OOM.pusequence | 18 title Trigger GC at OOM 26 participant GC 29 Allocator -> GCTaskQueue: Add new GC task and wait for GC 32 GCTaskQueue -> GCThread : GC task 33 GCThread -> GC : GC task 34 GC -> GC : GC running 35 GC --> Allocator : GC finished
|
D | gc-thread-activity.puactivity | 17 title GC Thread 25 if (task is Full GC) then (yes) 26 :Run Full GC; 27 elseif (task is Major GC) then (yes) 28 :Run GC with obtained task in separated thread; 29 while (Major GC is not completed) is (yes) 30 if (GCTaskQueue contains minor GC) then(yes) 31 :Run minor GC in this thread; 36 :Run minor GC in this thread;
|
D | mm-components.pucomponent | 19 [GC] 22 [GC] .> [GCThread] : executed in 23 [GC] .> [ReferenceProcessor] : use 25 [GC] --> [GCStatistics] : update 27 [Allocator] --> [GC] : trigger
|
D | static-analyzer-gc-func-list-gen.puactivity | 16 title Generation list of GC unsafe functions(can have GC happen during work) 20 :List of functions which can have GC inside; 33 :Generate list of all functions which can call GC (GC FUNCTION LIST);
|
/ark/runtime_core/runtime/mem/gc/ |
D | gc.cpp | 51 GC::GC(ObjectAllocatorBase *object_allocator, const GCSettings &settings) in GC() function in panda::mem::GC 58 GC::~GC() in ~GC() 82 GCType GC::GetType() in GetType() 87 void GC::SetPandaVM(PandaVM *vm) in SetPandaVM() 93 NativeGcTriggerType GC::GetNativeGcTriggerType() in GetNativeGcTriggerType() 98 size_t GC::SimpleNativeAllocationGcWatermark() in SimpleNativeAllocationGcWatermark() 103 NO_THREAD_SAFETY_ANALYSIS void GC::WaitForIdleGC() in WaitForIdleGC() 114 inline void GC::TriggerGCForNative() in TriggerGCForNative() 131 LOG(FATAL, GC) << "Unknown Native GC Trigger type"; in TriggerGCForNative() 136 void GC::Initialize() in Initialize() [all …]
|
D | gc_queue.cpp | 31 LOG(DEBUG, GC) << "GetTask() Return INVALID_CAUSE"; in GetTask() 34 LOG(DEBUG, GC) << "Empty " << queue_name_ << ", waiting..."; in GetTask() 43 LOG(DEBUG, GC) << "GetTask TimedWait"; in GetTask() 49 LOG(DEBUG, GC) << "Extract a task from a " << queue_name_; in GetTask() 57 … LOG(DEBUG, GC) << "Skip AddTask to queue: " << queue_name_ << " cause it's finalized already"; in AddTask() 61 LOG(DEBUG, GC) << "Add task to a " << queue_name_; in AddTask() 78 LOG(DEBUG, GC) << "Clear a " << queue_name_; in Finalize()
|
D | gc_root.cpp | 88 LOG(FATAL, GC) << "ROOT UNKNOWN"; in operator <<() 143 LOG(DEBUG, GC) << "Start collecting roots for thread " << thread->GetId(); in VisitRootsForThread() 146 LOG(DEBUG, GC) << " Found root for thread" << GetDebugInfoAboutObject(obj); in VisitRootsForThread() 149 LOG(DEBUG, GC) << "Finish collecting roots for thread " << thread->GetId(); in VisitRootsForThread() 158 LOG(DEBUG, GC) << " VisitRoots frame " << std::hex << stack.GetFp(); in VisitLocalRoots() 180 LOG(DEBUG, GC) << " Found root for register" << GetDebugInfoAboutObject(object_header); in VisitRegisterRoot() 212 LOG(DEBUG, GC) << "Start collecting roots for classes"; in VisitClassRoots() 216 LOG(DEBUG, GC) << " Found class root " << GetDebugInfoAboutObject(cls->GetManagedObject()); in VisitClassRoots() 221 LOG(DEBUG, GC) << "Finish collecting roots for classes"; in VisitClassRoots() 227 LOG(DEBUG, GC) << "=== ThreadLocals Update moved. BEGIN ==="; in UpdateThreadLocals() [all …]
|
D | gc_barrier_set.cpp | 32 LOG(DEBUG, GC) << "GC PreSATBBarrier pre val -> new val:" << std::hex << pre_val; in PreSATBBarrier() 73 LOG(FATAL, GC) << "Operand " << name << " not found for pre barrier"; in GetBarrierOperand() 78 LOG(FATAL, GC) << "Operand " << name << " not found for post barrier"; in GetBarrierOperand() 85 …LOG(DEBUG, GC) << "GC PreBarrier: write to " << std::hex << obj_field_addr << " with pre-value " <… in PreBarrier() 91 …LOG(DEBUG, GC) << "GC PostBarrier: write to " << std::hex << obj_addr << " value " << stored_val_a… in PostBarrier() 110 …LOG(DEBUG, GC) << "GC PreBarrier: write to " << std::hex << obj_field_addr << " with pre-value " <… in PreBarrier() 116 …LOG(DEBUG, GC) << "GC PostBarrier: write to " << std::hex << obj_addr << " value " << stored_val_a… in PostBarrier()
|
D | gc_scoped_phase.cpp | 22 GCScopedPhase::GCScopedPhase(MemStatsType *mem_stats, GC *gc, GCPhase new_phase) : mem_stats_(mem_s… in GCScopedPhase() 31 LOG(DEBUG, GC) << "== " << GetGCName() << "::" << GetPhaseName(phase_) << " started =="; in GCScopedPhase() 40 LOG(DEBUG, GC) << "== " << GetGCName() << "::" << GetPhaseName(phase_) << " finished =="; in ~GCScopedPhase()
|
D | gc_scoped_phase.h | 29 class GC; variable 33 GCScopedPhase(MemStatsType *mem_stats, GC *gc, GCPhase new_phase); 106 GC *gc_;
|
D | gc.h | 81 #define LOG_DEBUG_GC LOG(DEBUG, GC) << this->GetLogPrefix() 83 #define LOG_INFO_GC LOG(INFO, GC) << this->GetLogPrefix() 262 LOG(DEBUG, GC) << " Mark check for " << std::hex << object << std::dec in MarkChecker() 332 class GC { 334 explicit GC(ObjectAllocatorBase *object_allocator, const GCSettings &settings); 335 NO_COPY_SEMANTIC(GC); 336 NO_MOVE_SEMANTIC(GC); 337 virtual ~GC() = 0; 716 static void GCWorkerEntry(GC *gc, PandaVM *vm); 840 GC *CreateGC(GCType gc_type, ObjectAllocatorBase *object_allocator, const GCSettings &settings); [all …]
|
/ark/runtime_core/docs/ |
D | memory-management.md | 11 * [GC](#gc) 60 * Marked for GC or not 73 | nothing:61 | GC:1 | state:00 | OOP to metadata object | Unlo… 75 | tId:29 | Lcount:32 | GC:1 | state:00 | OOP to metadata object | Lightweig… 77 | Monitor:61 | GC:1 | state:01 | OOP to metadata object | Heavyweig… 79 | Hash:61 | GC:1 | state:10 | OOP to metadata object | Hash… 81 | Forwarding address:62 | state:11 | OOP to metadata object | GC… 91 | nothing:29 | GC:1 | state:00 | OOP to metadata object | Unlo… 93 | tId:13 | Lcount:16 | GC:1 | state:00 | OOP to metadata object | Lightweig… 95 | Monitor:29 | GC:1 | state:01 | OOP to metadata object | Heavyweig… [all …]
|
D | memory-management-SW-requirements.md | 5 * Garbage Collector (GC) 9 1. Allocations for the internal usage by Runtime (Allocations for compiler purposes, for GC interna… 12 GC automatically recycles memory that will never be used again. 13 GC used to recycle memory allocated as result of application work (objects, compiled code etc). 31 - Internal memory space for non-compiler part of runtime (including GC internals) 35 ## GC section in Overall Description 37 - Concurrent generational GC (optional - we can disable generational mode) 38 - GC for classes (optional) 39 - GC for code cache (optional) 42 High level requirements for GC: [all …]
|
D | glossary.md | 45 improve performance of GC barrier) for one card. 48 for tracking modified references during the concurrent phase of GC. 49 * **Compacting GC** is a GC which compacts live objects to reduce fragmentation. 50 * **Conservative GC** or non-precise GC works with ambiguous references, 51 i.e. it treats anything inside object boundaries like a reference. Opposite term: **Precise GC**. 52 * **Full GC** is cleaning the entire Heap. 57 * **GC** stands for Garbage collector or sometimes for Garbage collection. 58 * **Minor GC** in general is garbage collection performed over the young generation space 60 * **Major GC** in general is garbage collection performed over the tenured or old generation space. 61 Sometimes it is triggered by Minor GC, so it is impossible to separate them (see **Full GC**). [all …]
|
/ark/runtime_core/runtime/mem/gc/g1/ |
D | g1-gc.cpp | 52 LOG(FATAL, GC) << "Not implemented"; in PreStartupImp() 65 LOG(INFO, GC) << "GenGC start"; in RunPhasesImpl() 90 LOG(INFO, GC) << this->mem_stats_.Dump(); in RunPhasesImpl() 91 LOG(INFO, GC) << this->GetTiming()->Dump(); in RunPhasesImpl() 116 LOG(FATAL, GC) << "Not implemented"; in MarkObject() 122 LOG(FATAL, GC) << "Not implemented"; in InitGCBitsForAllocationInTLAB() 128 LOG(FATAL, GC) << "Not implemented"; in IsMarked() 136 LOG(FATAL, GC) << "Not implemented"; in MarkReferences() 142 LOG(FATAL, GC) << "Not implemented"; in UnMarkObject() 148 LOG(FATAL, GC) << "Not implemented"; in MarkObjectIfNotMarked()
|
/ark/runtime_core/runtime/mem/ |
D | rendezvous.cpp | 28 LOG(DEBUG, GC) << "Rendezvous: SafepointBegin"; in SafepointBegin() 38 LOG(DEBUG, GC) << "Rendezvous: SafepointEnd"; in SafepointEnd() 43 LOG(DEBUG, GC) << "Rendezvous: SafepointEnd exit"; in SafepointEnd()
|
D | memory_manager.h | 31 class GC; variable 101 GC *GetGC() const in GetGC() 132 … explicit MemoryManager(InternalAllocatorPtr internal_allocator, HeapManager *heap_manager, GC *gc, in MemoryManager() 148 GC *gc_;
|
D | object_helpers.h | 43 #define LOG_DEBUG_OBJ_HELPERS LOG(DEBUG, GC) << vm->GetGC()->GetLogPrefix() 45 class GC; variable 90 static void RecordDynWeakReference(GC *gc, coretypes::TaggedType *value); 91 static void HandleDynWeakReferences(GC *gc);
|
/ark/runtime_core/runtime/mem/gc/static/ |
D | gc_static_impl.cpp | 22 void GC::HandleObject<LANG_TYPE_STATIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, const O… in HandleObject() 45 void GC::HandleClass<LANG_TYPE_STATIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, Class *c… in HandleClass() 63 void GC::HandleArrayClass<LANG_TYPE_STATIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, in HandleArrayClass() 87 void GC::MarkInstance<LANG_TYPE_STATIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, const O… in MarkInstance() 108 LOG(FATAL, GC) << "Wrong handling, missed type: " << cls->GetDescriptor(); in MarkInstance()
|
/ark/runtime_core/runtime/mem/gc/epsilon/ |
D | epsilon.cpp | 37 LOG(DEBUG, GC) << "Epsilon GC initialized..."; in InitializeImpl() 43 LOG(DEBUG, GC) << "Epsilon GC RunPhases..."; in RunPhasesImpl() 61 LOG(FATAL, GC) << "TLABs are not supported by this GC"; in InitGCBitsForAllocationInTLAB()
|
/ark/runtime_core/runtime/ |
D | string_table.cpp | 187 LOG(DEBUG, GC) << "=== StringTable Update moved. BEGIN ==="; in UpdateMoved() 188 LOG(DEBUG, GC) << "Iterate over: " << table_.size() << " elements in string table"; in UpdateMoved() 195 LOG(DEBUG, GC) << "StringTable: forward " << std::hex << object << " -> " << fwd_string; in UpdateMoved() 200 LOG(DEBUG, GC) << "=== StringTable Update moved. END ==="; in UpdateMoved() 207 LOG(DEBUG, GC) << "=== StringTable Sweep. BEGIN ==="; in Sweep() 208 LOG(DEBUG, GC) << "StringTable iterate over: " << table_.size() << " elements in string table"; in Sweep() 216 LOG(DEBUG, GC) << "StringTable: forward " << std::hex << object << " -> " << fwd_string; in Sweep() 218 LOG(DEBUG, GC) << "StringTable: delete string " << std::hex << object in Sweep() 225 LOG(DEBUG, GC) << "StringTable size after sweep = " << table_.size(); in Sweep() 226 LOG(DEBUG, GC) << "=== StringTable Sweep. END ==="; in Sweep()
|
D | gc_task.cpp | 22 void GCTask::Run(mem::GC &gc) in Run() 61 LOG(FATAL, GC) << "Unknown gc cause"; in operator <<()
|
/ark/runtime_core/runtime/mem/gc/dynamic/ |
D | gc_dynamic_impl.cpp | 23 void GC::HandleObject<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, const … in HandleObject() 55 void GC::HandleClass<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, in HandleClass() 86 void GC::HandleArrayClass<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, in HandleArrayClass() 112 void GC::MarkInstance<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, const … in MarkInstance()
|
/ark/runtime_core/runtime/mem/gc/reference-processor/ |
D | reference_processor.h | 31 class GC; variable 64 …virtual void HandleReference(GC *gc, PandaStackTL<ObjectHeader *> *objectsStack, const BaseClass *…
|