[sgen] DTrace probe for when a GC is requested.
authorMark Probst <mark.probst@gmail.com>
Tue, 8 Jan 2013 20:11:40 +0000 (21:11 +0100)
committerMark Probst <mark.probst@gmail.com>
Fri, 11 Jan 2013 17:11:57 +0000 (18:11 +0100)
data/mono.d
mono/metadata/sgen-gc.c
mono/utils/dtrace.h

index db3d56c3e4c35dc8df0693797b244e7c43e89f8d..9558067f464f1283941eb54d7788bce6f2262773 100644 (file)
@@ -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);
index 1bf34cf46e38868991a82aa1d1e56858c2bb78f4..9382eae9471f7189cc08e4005f775b165a8f2e38 100644 (file)
@@ -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) {
index cf70db5f9ae03a2b431c2848c8f8d9a7f50073f8..377763c9d8feb391a47c6000dc1eea776fc1e41e 100644 (file)
 #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)