From b8ae6aadaa461ea94cd7d759b60637e89aca7ed6 Mon Sep 17 00:00:00 2001 From: Malte Date: Fri, 16 Jun 2023 15:26:28 +0200 Subject: [PATCH 1/3] Add GC metric `last_incremental_sweep` --- base/timing.jl | 1 + src/gc.c | 2 ++ src/gc.h | 1 + 3 files changed, 4 insertions(+) diff --git a/base/timing.jl b/base/timing.jl index d166b4162db59..154951d031af5 100644 --- a/base/timing.jl +++ b/base/timing.jl @@ -25,6 +25,7 @@ struct GC_Num total_sweep_time ::Int64 total_mark_time ::Int64 last_full_sweep ::Int64 + last_incremental_sweep ::Int64 end gc_num() = ccall(:jl_gc_num, GC_Num, ()) diff --git a/src/gc.c b/src/gc.c index 213eebae33b1a..2da8c74313489 100644 --- a/src/gc.c +++ b/src/gc.c @@ -3248,6 +3248,8 @@ static int _jl_gc_collect(jl_ptls_t ptls, jl_gc_collection_t collection) gc_num.sweep_time = sweep_time; if (sweep_full) { gc_num.last_full_sweep = gc_end_time; + } else { + gc_num.last_incremental_sweep = gc_end_time; } // sweeping is over diff --git a/src/gc.h b/src/gc.h index bfa2a0fba8f59..8f7e6f5700520 100644 --- a/src/gc.h +++ b/src/gc.h @@ -82,6 +82,7 @@ typedef struct { uint64_t total_sweep_time; uint64_t total_mark_time; uint64_t last_full_sweep; + uint64_t last_incremental_sweep; } jl_gc_num_t; // Array chunks (work items representing suffixes of From 92d969d9ce19313a9ddc887972fa7bf3fadfa6b8 Mon Sep 17 00:00:00 2001 From: Malte Sandstede Date: Sat, 17 Jun 2023 08:31:30 +0200 Subject: [PATCH 2/3] Update gc.c --- src/gc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gc.c b/src/gc.c index 2da8c74313489..aad9cf93dcbe8 100644 --- a/src/gc.c +++ b/src/gc.c @@ -3248,7 +3248,8 @@ static int _jl_gc_collect(jl_ptls_t ptls, jl_gc_collection_t collection) gc_num.sweep_time = sweep_time; if (sweep_full) { gc_num.last_full_sweep = gc_end_time; - } else { + } + else { gc_num.last_incremental_sweep = gc_end_time; } From 2179e0ec9c029d73fb082b8fac430ac658800329 Mon Sep 17 00:00:00 2001 From: Malte Sandstede Date: Sat, 17 Jun 2023 16:14:42 +0200 Subject: [PATCH 3/3] Update gc.c --- src/gc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gc.c b/src/gc.c index aad9cf93dcbe8..40ee55e7f2c82 100644 --- a/src/gc.c +++ b/src/gc.c @@ -3248,7 +3248,7 @@ static int _jl_gc_collect(jl_ptls_t ptls, jl_gc_collection_t collection) gc_num.sweep_time = sweep_time; if (sweep_full) { gc_num.last_full_sweep = gc_end_time; - } + } else { gc_num.last_incremental_sweep = gc_end_time; }