Revision: 7838
Author: [email protected]
Date: Tue May 10 05:50:32 2011
Log: Ensure that we are getting steps from inline allocation when
doing incremental sweeping.
Delay full collections when we decided do to an incremental mark-sweep even
if incremental collector is still sweeping and have not started marking yet.
Fix ll_prof.py to handle lack of code deletion events.
Review URL: http://codereview.chromium.org/6995018
http://code.google.com/p/v8/source/detail?r=7838
Modified:
/branches/experimental/gc/src/heap.cc
/branches/experimental/gc/src/incremental-marking.cc
/branches/experimental/gc/tools/ll_prof.py
=======================================
--- /branches/experimental/gc/src/heap.cc Tue May 10 04:21:11 2011
+++ /branches/experimental/gc/src/heap.cc Tue May 10 05:50:32 2011
@@ -482,7 +482,7 @@
if (collector == MARK_COMPACTOR &&
!mark_compact_collector()->PreciseSweepingRequired() &&
- incremental_marking()->IsMarkingIncomplete() &&
+ !incremental_marking()->IsStopped() &&
!incremental_marking()->should_hurry() &&
FLAG_incremental_marking_steps) {
if (FLAG_trace_incremental_marking) {
=======================================
--- /branches/experimental/gc/src/incremental-marking.cc Tue May 10
04:21:11 2011
+++ /branches/experimental/gc/src/incremental-marking.cc Tue May 10
05:50:32 2011
@@ -244,6 +244,8 @@
}
state_ = SWEEPING;
}
+
+ heap_->new_space()->LowerInlineAllocationLimit(kAllocatedThreshold);
}
@@ -275,8 +277,6 @@
VerifyMarkbitsAreClean();
#endif
- heap_->new_space()->LowerInlineAllocationLimit(kAllocatedThreshold);
-
// Mark strong roots grey.
IncrementalMarkingRootMarkingVisitor visitor(heap_, this);
heap_->IterateStrongRoots(&visitor, VISIT_ONLY_STRONG);
=======================================
--- /branches/experimental/gc/tools/ll_prof.py Mon May 9 14:11:15 2011
+++ /branches/experimental/gc/tools/ll_prof.py Tue May 10 05:50:32 2011
@@ -399,12 +399,16 @@
code = Code(name, start_address, end_address, origin,
origin_offset)
conficting_code = self.code_map.Find(start_address)
if conficting_code:
- LogReader._HandleCodeConflict(conficting_code, code)
- # TODO(vitalyr): this warning is too noisy because of our
- # attempts to reconstruct code log from the snapshot.
- # print >>sys.stderr, \
- # "Warning: Skipping duplicate code log entry %s" % code
- continue
+ if not (conficting_code.start_address == code.start_address and
+ conficting_code.end_address == code.end_address):
+ self.code_map.Remove(conficting_code)
+ else:
+ LogReader._HandleCodeConflict(conficting_code, code)
+ # TODO(vitalyr): this warning is too noisy because of our
+ # attempts to reconstruct code log from the snapshot.
+ # print >>sys.stderr, \
+ # "Warning: Skipping duplicate code log entry %s" % code
+ continue
self.code_map.Add(code)
continue
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev