Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Probst <mark.probst@gmail.com>2012-09-22 14:53:41 +0400
committerMark Probst <mark.probst@gmail.com>2012-09-29 01:18:17 +0400
commit5d5e18266ca7538c6642ba4d4f8fee99536a7535 (patch)
tree348e50b9552aad0cba8343647cb43b94e368d127
parentb6463f1e142a3f5486a253ea34e05876778d93ee (diff)
[dtrace] Probe for nursery fragment creation aka nursery sweep.
-rw-r--r--data/mono.d2
-rw-r--r--mono/metadata/sgen-nursery-allocator.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/data/mono.d b/data/mono.d
index efd3a6cb055..8479088c732 100644
--- a/data/mono.d
+++ b/data/mono.d
@@ -30,6 +30,8 @@ provider mono {
probe gc__major__obj__alloc__degraded (void *addr, uintptr_t size, char *class_name);
probe gc__major__obj__alloc__mature (void *addr, uintptr_t size, char *class_name);
+
+ probe gc__nursery__sweeped (void *addr, uintptr_t len);
};
#pragma D attributes Evolving/Evolving/Common provider mono provider
diff --git a/mono/metadata/sgen-nursery-allocator.c b/mono/metadata/sgen-nursery-allocator.c
index c681a1f5a02..fef74c4826a 100644
--- a/mono/metadata/sgen-nursery-allocator.c
+++ b/mono/metadata/sgen-nursery-allocator.c
@@ -712,6 +712,7 @@ add_nursery_frag (SgenFragmentAllocator *allocator, size_t frag_size, char* frag
{
DEBUG (4, fprintf (gc_debug_file, "Found empty fragment: %p-%p, size: %zd\n", frag_start, frag_end, frag_size));
binary_protocol_empty (frag_start, frag_size);
+ MONO_GC_NURSERY_SWEEPED (frag_start, frag_end - frag_start);
/* Not worth dealing with smaller fragments: need to tune */
if (frag_size >= SGEN_MAX_NURSERY_WASTE) {
/* memsetting just the first chunk start is bound to provide better cache locality */