Mercurial > hg > truffle
comparison src/share/vm/runtime/thread.cpp @ 8855:24ef5fb05e0f
8010463: G1: Crashes with -UseTLAB and heap verification
Summary: Some parts of the G1 heap can only be walked during a safepoint. Skip verifying these parts of the heap when verifying during JVM startup.
Reviewed-by: brutisso, tschatzl
author | johnc |
---|---|
date | Fri, 29 Mar 2013 13:49:37 -0700 |
parents | 499ccc15bbc8 |
children | b9a918201d47 68fe50d4f1d5 |
comparison
equal
deleted
inserted
replaced
8854:754c24457b20 | 8855:24ef5fb05e0f |
---|---|
3421 | 3421 |
3422 // Any JVMTI raw monitors entered in onload will transition into | 3422 // Any JVMTI raw monitors entered in onload will transition into |
3423 // real raw monitor. VM is setup enough here for raw monitor enter. | 3423 // real raw monitor. VM is setup enough here for raw monitor enter. |
3424 JvmtiExport::transition_pending_onload_raw_monitors(); | 3424 JvmtiExport::transition_pending_onload_raw_monitors(); |
3425 | 3425 |
3426 if (VerifyBeforeGC && | |
3427 Universe::heap()->total_collections() >= VerifyGCStartAt) { | |
3428 Universe::heap()->prepare_for_verify(); | |
3429 Universe::verify(); // make sure we're starting with a clean slate | |
3430 } | |
3431 | |
3432 // Fully start NMT | 3426 // Fully start NMT |
3433 MemTracker::start(); | 3427 MemTracker::start(); |
3434 | 3428 |
3435 // Create the VMThread | 3429 // Create the VMThread |
3436 { TraceTime timer("Start VMThread", TraceStartupTime); | 3430 { TraceTime timer("Start VMThread", TraceStartupTime); |
3450 } | 3444 } |
3451 } | 3445 } |
3452 } | 3446 } |
3453 | 3447 |
3454 assert (Universe::is_fully_initialized(), "not initialized"); | 3448 assert (Universe::is_fully_initialized(), "not initialized"); |
3449 if (VerifyBeforeGC && VerifyGCStartAt == 0) { | |
3450 Universe::heap()->prepare_for_verify(); | |
3451 Universe::verify(); // make sure we're starting with a clean slate | |
3452 } | |
3453 | |
3455 EXCEPTION_MARK; | 3454 EXCEPTION_MARK; |
3456 | 3455 |
3457 // At this point, the Universe is initialized, but we have not executed | 3456 // At this point, the Universe is initialized, but we have not executed |
3458 // any byte code. Now is a good time (the only time) to dump out the | 3457 // any byte code. Now is a good time (the only time) to dump out the |
3459 // internal state of the JVM for sharing. | 3458 // internal state of the JVM for sharing. |