From: Mark Probst Date: Tue, 8 Jan 2013 20:11:40 +0000 (+0100) Subject: [sgen] DTrace probe for when a GC is requested. X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=2403954f9b553cc36284048c23d521f37dd129ba;p=mono.git [sgen] DTrace probe for when a GC is requested. --- diff --git a/data/mono.d b/data/mono.d index db3d56c3e4c..9558067f464 100644 --- a/data/mono.d +++ b/data/mono.d @@ -19,6 +19,8 @@ provider mono { probe gc__begin (int generation); probe gc__end (int generation); + probe gc__requested (int generation, uintptr_t requested_size, int wait_to_finish); + probe gc__checkpoint__1 (int generation); probe gc__checkpoint__2 (int generation); probe gc__checkpoint__3 (int generation); diff --git a/mono/metadata/sgen-gc.c b/mono/metadata/sgen-gc.c index 1bf34cf46e3..9382eae9471 100644 --- a/mono/metadata/sgen-gc.c +++ b/mono/metadata/sgen-gc.c @@ -3304,6 +3304,8 @@ sgen_perform_collection (size_t requested_size, int generation_to_collect, const int oldest_generation_collected = generation_to_collect; const char *overflow_reason = NULL; + MONO_GC_REQUESTED (generation_to_collect, requested_size, wait_to_finish ? 1 : 0); + g_assert (generation_to_collect == GENERATION_NURSERY || generation_to_collect == GENERATION_OLD); if (have_non_collection_major_object_remembers) { diff --git a/mono/utils/dtrace.h b/mono/utils/dtrace.h index cf70db5f9ae..377763c9d8f 100644 --- a/mono/utils/dtrace.h +++ b/mono/utils/dtrace.h @@ -51,6 +51,10 @@ #define MONO_GC_END_ENABLED() (0) +#define MONO_GC_REQUESTED(generation,requested_size,wait_to_finish) +#define MONO_GC_REQUESTED_ENABLED() (0) + + #define MONO_GC_CHECKPOINT_1(generation) #define MONO_GC_CHECKPOINT_1_ENABLED() (0)