Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/genCollectedHeap.cpp @ 1166:7b0e9cba0307
6896647: card marks can be deferred too long
Summary: Deferred card marks are now flushed during the gc prologue. Parallel[Scavege,OldGC] and SerialGC no longer defer card marks generated by COMPILER2 as a result of ReduceInitialCardMarks. For these cases, introduced a diagnostic option to defer the card marks, only for the purposes of testing and diagnostics. CMS and G1 continue to defer card marks. Potential performance concern related to single-threaded flushing of deferred card marks in the gc prologue will be addressed in the future.
Reviewed-by: never, johnc
author | ysr |
---|---|
date | Wed, 13 Jan 2010 15:26:39 -0800 |
parents | 148e5441d916 |
children | c4d722788ed6 |
comparison
equal
deleted
inserted
replaced
1165:2dd52dea6d28 | 1166:7b0e9cba0307 |
---|---|
49 assert(policy != NULL, "Sanity check"); | 49 assert(policy != NULL, "Sanity check"); |
50 _preloading_shared_classes = false; | 50 _preloading_shared_classes = false; |
51 } | 51 } |
52 | 52 |
53 jint GenCollectedHeap::initialize() { | 53 jint GenCollectedHeap::initialize() { |
54 CollectedHeap::pre_initialize(); | |
55 | |
54 int i; | 56 int i; |
55 _n_gens = gen_policy()->number_of_generations(); | 57 _n_gens = gen_policy()->number_of_generations(); |
56 | 58 |
57 // While there are no constraints in the GC code that HeapWordSize | 59 // While there are no constraints in the GC code that HeapWordSize |
58 // be any particular value, there are multiple other areas in the | 60 // be any particular value, there are multiple other areas in the |
127 - perm_gen_spec->misc_code_size(); | 129 - perm_gen_spec->misc_code_size(); |
128 _reserved.set_end((HeapWord*)(heap_rs.base() + actual_heap_size)); | 130 _reserved.set_end((HeapWord*)(heap_rs.base() + actual_heap_size)); |
129 | 131 |
130 _rem_set = collector_policy()->create_rem_set(_reserved, n_covered_regions); | 132 _rem_set = collector_policy()->create_rem_set(_reserved, n_covered_regions); |
131 set_barrier_set(rem_set()->bs()); | 133 set_barrier_set(rem_set()->bs()); |
134 | |
132 _gch = this; | 135 _gch = this; |
133 | 136 |
134 for (i = 0; i < _n_gens; i++) { | 137 for (i = 0; i < _n_gens; i++) { |
135 ReservedSpace this_rs = heap_rs.first_part(_gen_specs[i]->max_size(), | 138 ReservedSpace this_rs = heap_rs.first_part(_gen_specs[i]->max_size(), |
136 UseSharedSpaces, UseSharedSpaces); | 139 UseSharedSpaces, UseSharedSpaces); |