aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code
diff options
context:
space:
mode:
Diffstat (limited to 'mps/code')
-rw-r--r--mps/code/arenavm.c4
-rw-r--r--mps/code/mpmst.h1
-rw-r--r--mps/code/trace.c1
3 files changed, 5 insertions, 1 deletions
diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c
index 399145f3629..f29d860dfae 100644
--- a/mps/code/arenavm.c
+++ b/mps/code/arenavm.c
@@ -1675,6 +1675,7 @@ static void VMCompact(Arena arena, Trace trace)
1675 } 1675 }
1676 1676
1677 DIAG( 1677 DIAG(
1678 Size vmem0 = trace->preTraceArenaReserved;
1678 Size vmem2 = VMArenaReserved(arena); 1679 Size vmem2 = VMArenaReserved(arena);
1679 Size vmemD = vmem1 - vmem2; 1680 Size vmemD = vmem1 - vmem2;
1680 Size live = trace->forwardedSize + trace->preservedInPlaceSize; 1681 Size live = trace->forwardedSize + trace->preservedInPlaceSize;
@@ -1684,7 +1685,8 @@ static void VMCompact(Arena arena, Trace trace)
1684 || trace->why == TraceStartWhyCLIENTFULL_INCREMENTAL 1685 || trace->why == TraceStartWhyCLIENTFULL_INCREMENTAL
1685 || trace->why == TraceStartWhyCLIENTFULL_BLOCK) { 1686 || trace->why == TraceStartWhyCLIENTFULL_BLOCK) {
1686 DIAG_SINGLEF(( "VMCompact", 1687 DIAG_SINGLEF(( "VMCompact",
1687 "vmem was $Um$3, ", M_whole(vmem1), M_frac(vmem1), 1688 "pre-collection vmem was $Um$3, ", M_whole(vmem0), M_frac(vmem0),
1689 "peaked at $Um$3, ", M_whole(vmem1), M_frac(vmem1),
1688 "released $Um$3, ", M_whole(vmemD), M_frac(vmemD), 1690 "released $Um$3, ", M_whole(vmemD), M_frac(vmemD),
1689 "now $Um$3", M_whole(vmem2), M_frac(vmem2), 1691 "now $Um$3", M_whole(vmem2), M_frac(vmem2),
1690 " (why $U", trace->why, 1692 " (why $U", trace->why,
diff --git a/mps/code/mpmst.h b/mps/code/mpmst.h
index c5a4fe0e3f3..488a6d1b54b 100644
--- a/mps/code/mpmst.h
+++ b/mps/code/mpmst.h
@@ -506,6 +506,7 @@ typedef struct TraceStruct {
506 Bool firstStretch; /* in first stretch of band (see accessor) */ 506 Bool firstStretch; /* in first stretch of band (see accessor) */
507 Bool emergency; /* ran out of memory during trace */ 507 Bool emergency; /* ran out of memory during trace */
508 Chain chain; /* chain being incrementally collected */ 508 Chain chain; /* chain being incrementally collected */
509 STATISTIC_DECL(Size preTraceArenaReserved); /* ArenaReserved before this trace */
509 Size condemned; /* condemned bytes */ 510 Size condemned; /* condemned bytes */
510 Size notCondemned; /* collectable but not condemned */ 511 Size notCondemned; /* collectable but not condemned */
511 Size foundation; /* initial grey set size */ 512 Size foundation; /* initial grey set size */
diff --git a/mps/code/trace.c b/mps/code/trace.c
index 5cffa818009..e553d160318 100644
--- a/mps/code/trace.c
+++ b/mps/code/trace.c
@@ -663,6 +663,7 @@ found:
663 trace->band = RankAMBIG; /* Required to be the earliest rank. */ 663 trace->band = RankAMBIG; /* Required to be the earliest rank. */
664 trace->emergency = FALSE; 664 trace->emergency = FALSE;
665 trace->chain = NULL; 665 trace->chain = NULL;
666 STATISTIC(trace->preTraceArenaReserved = ArenaReserved(arena));
666 trace->condemned = (Size)0; /* nothing condemned yet */ 667 trace->condemned = (Size)0; /* nothing condemned yet */
667 trace->notCondemned = (Size)0; 668 trace->notCondemned = (Size)0;
668 trace->foundation = (Size)0; /* nothing grey yet */ 669 trace->foundation = (Size)0; /* nothing grey yet */