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();