Mercurial > hg > graal-compiler
comparison src/share/vm/memory/universe.cpp @ 342:37f87013dfd8
6711316: Open source the Garbage-First garbage collector
Summary: First mercurial integration of the code for the Garbage-First garbage collector.
Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
author | ysr |
---|---|
date | Thu, 05 Jun 2008 15:57:56 -0700 |
parents | ba764ed4b6f2 |
children | 1ee8caae33af |
comparison
equal
deleted
inserted
replaced
189:0b27f3512f9e | 342:37f87013dfd8 |
---|---|
732 Universe::_collectedHeap = new ParallelScavengeHeap(); | 732 Universe::_collectedHeap = new ParallelScavengeHeap(); |
733 #else // SERIALGC | 733 #else // SERIALGC |
734 fatal("UseParallelGC not supported in java kernel vm."); | 734 fatal("UseParallelGC not supported in java kernel vm."); |
735 #endif // SERIALGC | 735 #endif // SERIALGC |
736 | 736 |
737 } else if (UseG1GC) { | |
738 #ifndef SERIALGC | |
739 G1CollectorPolicy* g1p = new G1CollectorPolicy_BestRegionsFirst(); | |
740 G1CollectedHeap* g1h = new G1CollectedHeap(g1p); | |
741 Universe::_collectedHeap = g1h; | |
742 #else // SERIALGC | |
743 fatal("UseG1GC not supported in java kernel vm."); | |
744 #endif // SERIALGC | |
745 | |
737 } else { | 746 } else { |
738 GenCollectorPolicy *gc_policy; | 747 GenCollectorPolicy *gc_policy; |
739 | 748 |
740 if (UseSerialGC) { | 749 if (UseSerialGC) { |
741 gc_policy = new MarkSweepPolicy(); | 750 gc_policy = new MarkSweepPolicy(); |
931 // a better solution for this as well. | 940 // a better solution for this as well. |
932 initialize_converter_functions(); | 941 initialize_converter_functions(); |
933 | 942 |
934 // This needs to be done before the first scavenge/gc, since | 943 // This needs to be done before the first scavenge/gc, since |
935 // it's an input to soft ref clearing policy. | 944 // it's an input to soft ref clearing policy. |
936 Universe::update_heap_info_at_gc(); | 945 { |
946 MutexLocker x(Heap_lock); | |
947 Universe::update_heap_info_at_gc(); | |
948 } | |
937 | 949 |
938 // ("weak") refs processing infrastructure initialization | 950 // ("weak") refs processing infrastructure initialization |
939 Universe::heap()->post_initialize(); | 951 Universe::heap()->post_initialize(); |
940 | 952 |
941 GC_locker::unlock(); // allow gc after bootstrapping | 953 GC_locker::unlock(); // allow gc after bootstrapping |
1187 switch (Universe::heap()->kind()) { | 1199 switch (Universe::heap()->kind()) { |
1188 default: | 1200 default: |
1189 // ???: What if a CollectedHeap doesn't have a permanent generation? | 1201 // ???: What if a CollectedHeap doesn't have a permanent generation? |
1190 ShouldNotReachHere(); | 1202 ShouldNotReachHere(); |
1191 break; | 1203 break; |
1192 case CollectedHeap::GenCollectedHeap: { | 1204 case CollectedHeap::GenCollectedHeap: |
1193 GenCollectedHeap* gch = (GenCollectedHeap*) Universe::heap(); | 1205 case CollectedHeap::G1CollectedHeap: { |
1194 permanent_reserved = gch->perm_gen()->reserved(); | 1206 SharedHeap* sh = (SharedHeap*) Universe::heap(); |
1195 break; | 1207 permanent_reserved = sh->perm_gen()->reserved(); |
1208 break; | |
1196 } | 1209 } |
1197 #ifndef SERIALGC | 1210 #ifndef SERIALGC |
1198 case CollectedHeap::ParallelScavengeHeap: { | 1211 case CollectedHeap::ParallelScavengeHeap: { |
1199 ParallelScavengeHeap* psh = (ParallelScavengeHeap*) Universe::heap(); | 1212 ParallelScavengeHeap* psh = (ParallelScavengeHeap*) Universe::heap(); |
1200 permanent_reserved = psh->perm_gen()->reserved(); | 1213 permanent_reserved = psh->perm_gen()->reserved(); |