Thanks, Erik and Hannes!
I tried RegExp and eval for generating code and ended up using eval, since
it is
easier to control caching/flushing for it. The test is in patch set #3: it
uses
a new flag --code-range-size, otherwise it would take long time to fill up
512MB. The test uncovered a bogus (I think) assert in verify evacuation:
#
# Fatal error in ../src/heap/mark-compact.cc, line 162
# CHECK(!MarkCompactCollector::IsOnEvacuationCandidate(object)) failed
#
==== C stack trace ===============================
1: V8_Fatal
2:
v8::internal::VerifyEvacuationVisitor::VisitPointers(v8::internal::Object**,
v8::internal::Object**)
3: v8::internal::ObjectVisitor::VisitPointer(v8::internal::Object**)
4: v8::internal::ObjectVisitor::VisitCodeTarget(v8::internal::RelocInfo*)
5: v8::internal::RelocInfo::Visit(v8::internal::Isolate*,
v8::internal::ObjectVisitor*)
6: v8::internal::Code::CodeIterateBody(v8::internal::ObjectVisitor*)
7: v8::internal::HeapObject::IterateBody(v8::internal::InstanceType, int,
v8::internal::ObjectVisitor*)
8: v8::internal::HeapObject::Iterate(v8::internal::ObjectVisitor*)
9: ??
10: ??
11: ??
12: v8::internal::MarkCompactCollector::EnsureSweepingCompleted()
13: v8::internal::PagedSpace::WaitForSweeperThreadsAndRetryAllocation(int)
14: v8::internal::PagedSpace::SlowAllocateRaw(int)
15: v8::internal::PagedSpace::AllocateRaw(int)
16:
v8::internal::MarkCompactCollector::EvacuateLiveObjectsFromPage(v8::internal::Page*)
17: v8::internal::MarkCompactCollector::EvacuatePages()
18: v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates()
19: v8::internal::MarkCompactCollector::SweepSpaces()
20: v8::internal::MarkCompactCollector::CollectGarbage()
21: v8::internal::Heap::MarkCompact()
I am going to land this without the test since I want to get coverage as
soon as
possible and merge back to M39. I'll land the test after fixing the assert.
https://codereview.chromium.org/742733002/diff/20001/src/heap/heap.cc
File src/heap/heap.cc (right):
https://codereview.chromium.org/742733002/diff/20001/src/heap/heap.cc#newcode5265
src/heap/heap.cc:5265: isolate_->code_range()->ReserveEmergencyBlock();
On 2014/11/20 08:00:37, Hannes Payer wrote:
Can we do that after setting up code_range?
Done.
https://codereview.chromium.org/742733002/diff/20001/src/heap/spaces.h
File src/heap/spaces.h (right):
https://codereview.chromium.org/742733002/diff/20001/src/heap/spaces.h#newcode939
src/heap/spaces.h:939: FreeBlock emergency_block_;
On 2014/11/20 08:00:37, Hannes Payer wrote:
Please add a comment that describes the concept of the emergency
block.
Done.
https://codereview.chromium.org/742733002/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.