/arkcompiler/runtime_core/static_core/plugins/ets/tests/ets_test_suite/gc/ |
D | pin_object.ets | 19 GC.pinObject(obj); 20 …assert GC.getObjectSpaceType(obj) == GC.YOUNG_SPACE : "The object before GC must be placed in youn… 21 let addr_before_gc: long = GC.getObjectAddress(obj); 22 // Run GC 23 let gc_id = GC.startGC(GC.MIXED_CAUSE); 24 GC.waitForFinishGC(gc_id); 25 let addr_after_gc: long = GC.getObjectAddress(obj); 26 …assert GC.getObjectSpaceType(obj) == GC.TENURED_SPACE : "The pinned object after GC must be placed… 27 GC.unpinObject(obj); 30 "Address before GC = " + addr_before_gc + "\n" + [all …]
|
D | postpone_gc_test.ets | 19 GC.postponeGCEnd(); 26 GC.postponeGCStart(); 27 GC.postponeGCStart(); 32 GC.postponeGCEnd(); 35 GC.postponeGCStart(); 36 let gc_id = GC.startGC(GC.THRESHOLD_CAUSE); 37 GC.waitForFinishGC(gc_id); 41 assert false : "Unexpected exception during GC"; 44 GC.postponeGCEnd(); 54 GC.postponeGCStart(); [all …]
|
D | space_type_test.ets | 17 …assert GC.getObjectSpaceType("spaceTypeTest") == GC.NON_MOVABLE_SPACE : "Must be non movable space… 22 assert GC.getObjectSpaceType(obj) == GC.YOUNG_SPACE : "Must be young space"; 24 let gc_id = GC.startGC(GC.YOUNG_CAUSE); 25 GC.waitForFinishGC(gc_id); 27 assert GC.getObjectSpaceType(obj) == GC.TENURED_SPACE : "Must be tenured space"; 33 assert GC.getObjectSpaceType(h_obj) == GC.HUMONGOUS_SPACE: "Must be humongous space"; 39 GC.getObjectSpaceType(null);
|
D | scheduled_gc.ets | 17 GC.scheduleGcAfterNthAlloc(2, GC.YOUNG_CAUSE); 19 …assert GC.isScheduledGCTriggered() == false : "GC was scheduled before 2nd allocation, current is … 21 …assert GC.isScheduledGCTriggered() == true : "2 allocation already done, but GC has not been trigg… 27 GC.scheduleGcAfterNthAlloc(-1, GC.YOUNG_CAUSE);
|
D | pending_exception_gc_test.ets | 17 * Test case when we have moving GC along with pending exception. 26 // adding a couple Full GC to be run without waiting for its completion 27 // in order to have GC running during exception processing 28 GC.startGC(GC.FULL_CAUSE); 29 GC.startGC(GC.FULL_CAUSE);
|
/arkcompiler/runtime_core/static_core/docs/diagrams/ |
D | g1-thread-sequence.plantuml | 17 "Mutator thread" -> "GC Thread #1":Trigger GC 18 "GC Thread #1" -> "GC Thread #1":Start GC 19 "GC Thread #1" -> "GC Thread #1":marking stage 20 "GC Thread #1" -> "Task Queue":Marking stack #1 21 "GC Thread #2" <- "Task Queue":Marking stack #1 22 "GC Thread #2" -> "Task Queue":Marking stack #2 23 "GC Thread #3" <- "Task Queue":Marking stack #2 24 "GC Thread #2" -> "Task Queue":Marking stack #X 25 "GC Thread #1" <- "Task Queue":Marking stack #X 26 "GC Thread #1" -> "GC Thread #1":Waiting for all marking tasks complete [all …]
|
D | gc-trigger-sequence-threshold.plantuml | 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.plantuml | 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 | task_manager-components.plantuml | 5 [GC queue(ECMA)] 6 [GC queue(ArkTS)] 10 [GC queue(ECMA)] -> TaskManager 11 [GC queue(ArkTS)] -> TaskManager 18 ' [GC queue(ArkTS)] --> [local queue 1] 23 ' [GC queue(ArkTS)] --> [local queue 2] 28 ' [GC queue(ArkTS)] --> [local queue 3]
|
/arkcompiler/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;
|
/arkcompiler/runtime_core/static_core/runtime/mem/gc/ |
D | gc.cpp | 52 GC::GC(ObjectAllocatorBase *objectAllocator, const GCSettings &settings) in GC() function in panda::mem::GC 61 taskmanager::TaskType::GC, taskmanager::VMType::STATIC_VM, GC_TASK_QUEUE_PRIORITY); in GC() 66 GC::~GC() in ~GC() 93 Logger::Buffer GC::GetLogPrefix() const in GetLogPrefix() 106 GCType GC::GetType() in GetType() 111 void GC::SetPandaVM(PandaVM *vm) in SetPandaVM() 117 NativeGcTriggerType GC::GetNativeGcTriggerType() in GetNativeGcTriggerType() 122 size_t GC::SimpleNativeAllocationGcWatermark() in SimpleNativeAllocationGcWatermark() 127 NO_THREAD_SAFETY_ANALYSIS void GC::WaitForIdleGC() in WaitForIdleGC() 141 inline void GC::TriggerGCForNative() in TriggerGCForNative() [all …]
|
D | gc_root.cpp | 89 LOG(FATAL, GC) << "ROOT UNKNOWN"; in operator <<() 150 LOG(DEBUG, GC) << "Start collecting roots for thread " << thread->GetId(); in VisitRootsForThread() 153 LOG(DEBUG, GC) << " Found root for thread" << GetDebugInfoAboutObject(obj); in VisitRootsForThread() 156 LOG(DEBUG, GC) << "Finish collecting roots for thread " << thread->GetId(); in VisitRootsForThread() 165 LOG(DEBUG, GC) << " VisitRoots frame " << std::hex << stack.GetFp(); in VisitLocalRoots() 183 LOG(DEBUG, GC) << " Found root for register" << GetDebugInfoAboutObject(objectHeader); in VisitRegisterRoot() 199 LOG(DEBUG, GC) << "Start collecting AOT string slot roots"; in VisitAotStringRoots() 205 LOG(DEBUG, GC) << "Finish collecting AOT string slot roots"; in VisitAotStringRoots() 212 LOG(DEBUG, GC) << "=== AOT string slot roots update. BEGIN ==="; in UpdateAotStringRoots() 222 LOG(DEBUG, GC) << "=== AOT string slot roots update. END ==="; in UpdateAotStringRoots() [all …]
|
D | gc_queue.cpp | 30 LOG(DEBUG, GC) << "GetTask() Return INVALID_CAUSE"; in GetTask() 34 LOG(DEBUG, GC) << "Empty " << queueName_ << ", waiting..."; in GetTask() 37 LOG(DEBUG, GC) << "Empty " << queueName_ << ", return nullptr"; in GetTask() 47 LOG(DEBUG, GC) << "GetTask TimedWait"; in GetTask() 54 LOG(DEBUG, GC) << "Extract a task from a " << queueName_; in GetTask() 71 LOG(DEBUG, GC) << "Add task to a " << queueName_; in AddTask()
|
/arkcompiler/runtime_core/static_core/plugins/ets/stdlib/std/core/ |
D | GC.ets | 19 * GC defines methods with GC-specific behavior 21 export final class GC { 60 * The function triggers specific GC 62 * @param cause cause of requested GC 66 * @throws IllegalArgumentException if cause of GC is invalid or 67 * current GC does not support requested cause 69 * @returns id of started GC. 70 * - The id can be passed to waitForFinishGC to ensure the GC is finished. 71 * - 0 in case the GC is executed in-place. It means there is no need to wait such GC 75 GC.startGCImpl(cause, callback as Object); [all …]
|
/arkcompiler/runtime_core/static_core/runtime/mem/gc/gc-hung/ |
D | gc_hung.cpp | 58 LOG(DEBUG, GC) << "GcHung: Instance created"; in GcHung() 66 LOG(DEBUG, GC) << "GcHung: Instance deleted: water_mark: " << waterMark_; in ~GcHung() 79 LOG(DEBUG, GC) << "GcHung: failed to get config"; in GetConfig() 88 LOG(ERROR, GC) << "GcHung: parse parameters failed"; in GetConfig() 97 LOG(INFO, GC) << "GcHung: module enable:" << enabled_; in GetConfig() 102 LOG(DEBUG, GC) << "GcHung: set parameter: interval_limit_ms_ = " << intervalLimitMs_ << "ms"; in GetConfig() 103 LOG(DEBUG, GC) << "GcHung: set parameter: water_mark_limit_ = " << waterMarkLimit_; in GetConfig() 104 LOG(DEBUG, GC) << "GcHung: set parameter: over_time_limit_ms_ = " << overTimeLimitMs_ << "ms"; in GetConfig() 115 LOG(DEBUG, GC) << "GcHung: load libimonitor"; in LoadLibimonitor() 156 LOG(DEBUG, GC) << "GcHung InitInternal: pid=" << pid_ << " enabled_=" << enabled_; in InitInternal() [all …]
|
/arkcompiler/runtime_core/static_core/docs/ |
D | memory-management-SW-requirements.md | 5 * GC 9 1. Allocations for the internal usage by Runtime(Allocations for compiler purposes, for GC internal… 12 Garbage collector(GC) automatically recycles memory that it can prove 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 2. OVERALL DESCRIPTION 37 - Concurrent generational GC (optional - we can disable generational mode) 38 - GC for classes (optional) 39 - GC for code cache(optional) 43 High level requirements for GC: [all …]
|
D | glossary.md | 45 improve performance of GC barrier) for one card. 48 for tracking modified references during 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 it is garbage collection worked over Young generation space 60 * **Major GC** in general it is garbage collection worked over Tenured/Old generation space. 61 Sometimes it is triggered by Minor GC, so it is impossible to separate them(see Full GC). [all …]
|
D | memory-management.md | 11 * [GC](#gc) 25 - some baseline GC with profile-based configuration(if available) 28 …- low-pause/pauseless GC(for games) or GC with high throughput and acceptable STW pause (for not g… 64 * Marked for GC or not 77 | nothing:61 | GC:1 | state:00 | OOP to metadata object | Unlo… 79 | tId:29 | Lcount:32 | GC:1 | state:00 | OOP to metadata object | Lightweig… 81 | Monitor:61 | GC:1 | state:01 | OOP to metadata object | Heavyweig… 83 | Hash:61 | GC:1 | state:10 | OOP to metadata object | Hash… 85 | Forwarding address:62 | state:11 | OOP to metadata object | GC… 95 | nothing:29 | GC:1 | state:00 | OOP to metadata object | Unlo… [all …]
|
/arkcompiler/runtime_core/docs/ |
D | memory-management-SW-requirements.md | 5 * GC 9 1. Allocations for the internal usage by Runtime(Allocations for compiler purposes, for GC internal… 12 Garbage collector(GC) automatically recycles memory that it can prove 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 2. OVERALL DESCRIPTION 37 - Concurrent generational GC (optional - we can disable generational mode) 38 - GC for classes (optional) 39 - GC for code cache(optional) 43 High level requirements for GC: [all …]
|
D | glossary.md | 45 improve performance of GC barrier) for one card. 48 for tracking modified references during 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 it is garbage collection worked over Young generation space 60 * **Major GC** in general it is garbage collection worked over Tenured/Old generation space. 61 Sometimes it is triggered by Minor GC, so it is impossible to separate them(see Full GC). [all …]
|
D | memory-management.md | 11 * [GC](#gc) 25 - some baseline GC with profile-based configuration(if available) 28 …- low-pause/pauseless GC(for games) or GC with high throughput and acceptable STW pause (for not g… 64 * Marked for GC or not 77 | nothing:61 | GC:1 | state:00 | OOP to metadata object | Unlo… 79 | tId:29 | Lcount:32 | GC:1 | state:00 | OOP to metadata object | Lightweig… 81 | Monitor:61 | GC:1 | state:01 | OOP to metadata object | Heavyweig… 83 | Hash:61 | GC:1 | state:10 | OOP to metadata object | Hash… 85 | Forwarding address:62 | state:11 | OOP to metadata object | GC… 95 | nothing:29 | GC:1 | state:00 | OOP to metadata object | Unlo… [all …]
|
/arkcompiler/runtime_core/static_core/libpandabase/tests/taskmanager/ |
D | task_test.cpp | 24 …static constexpr TaskProperties TASK_PROPERTIES {TaskType::GC, VMType::STATIC_VM, TaskExecutionMod… 38 Task task = Task::Create({TaskType::GC, VMType::DYNAMIC_VM, TaskExecutionMode::BACKGROUND}, in TEST_F() 41 EXPECT_EQ(task.GetTaskProperties().GetTaskType(), TaskType::GC); in TEST_F() 46 EXPECT_EQ(task.GetTaskProperties().GetTaskType(), TaskType::GC); in TEST_F() 56 …SchedulableTaskQueueInterface *queue = TaskQueue<>::Create(TaskType::GC, VMType::DYNAMIC_VM, QUEUE… in TEST_F() 57 EXPECT_EQ(queue->GetTaskType(), TaskType::GC); in TEST_F() 64 … queue->AddTask(Task::Create({TaskType::GC, VMType::DYNAMIC_VM, TaskExecutionMode::BACKGROUND}, in TEST_F() 67 EXPECT_EQ(queue->GetTaskType(), TaskType::GC); in TEST_F() 75 EXPECT_EQ(popTask.value().GetTaskProperties().GetTaskType(), TaskType::GC); in TEST_F() 80 EXPECT_EQ(queue->GetTaskType(), TaskType::GC); in TEST_F() [all …]
|
/arkcompiler/runtime_core/static_core/runtime/mem/gc/reference-processor/ |
D | reference_processor.h | 30 class GC; variable 40 using ReferenceCheckPredicateT = typename GC::ReferenceCheckPredicateT; 41 using ReferenceProcessPredicateT = typename GC::ReferenceProcessPredicateT; 60 virtual void HandleReference(GC *gc, GCMarkingStackType *objectsStack, const BaseClass *cls, 68 const mem::GC::ReferenceClearPredicateT &pred) = 0;
|