diff options
author | Mark Probst <mark.probst@gmail.com> | 2012-09-22 14:53:41 +0400 |
---|---|---|
committer | Mark Probst <mark.probst@gmail.com> | 2012-09-29 01:18:17 +0400 |
commit | 5d5e18266ca7538c6642ba4d4f8fee99536a7535 (patch) | |
tree | 348e50b9552aad0cba8343647cb43b94e368d127 | |
parent | b6463f1e142a3f5486a253ea34e05876778d93ee (diff) |
[dtrace] Probe for nursery fragment creation aka nursery sweep.
-rw-r--r-- | data/mono.d | 2 | ||||
-rw-r--r-- | mono/metadata/sgen-nursery-allocator.c | 1 |
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 */ |