You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by xl...@apache.org on 2007/03/27 16:39:54 UTC
svn commit: r522932 - in /harmony/enhanced/drlvm/trunk/vm/gc_gen/src:
common/gc_for_vm.cpp gen/gen.cpp gen/gen_adapt.cpp
mark_compact/mspace_move_compact.cpp mark_compact/mspace_slide_compact.cpp
verify/verifier_scanner.cpp
Author: xli
Date: Tue Mar 27 07:39:53 2007
New Revision: 522932
URL: http://svn.apache.org/viewvc?view=rev&rev=522932
Log:
Harmony-3509 remove build warnings in Linux64
Modified:
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen.cpp
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen_adapt.cpp
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/verify/verifier_scanner.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp?view=diff&rev=522932&r1=522931&r2=522932
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp Tue Mar 27 07:39:53 2007
@@ -193,7 +193,7 @@
Obj_Info_Type info = get_obj_info_raw(obj);
int hash = info & GCGEN_HASH_MASK;
if (!hash) {
- hash = (((unsigned int)obj) >> 3) & GCGEN_HASH_MASK;
+ hash = (((POINTER_SIZE_INT)obj) >> 3) & GCGEN_HASH_MASK;
if(!hash) hash = (23 & GCGEN_HASH_MASK);
unsigned int new_info = (unsigned int)(info | hash);
while (true) {
@@ -239,6 +239,3 @@
mutator_need_block = FALSE;
return old_flag;
}
-
-
-
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen.cpp?view=diff&rev=522932&r1=522931&r2=522932
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen.cpp Tue Mar 27 07:39:53 2007
@@ -268,7 +268,7 @@
/* this is for debugging. */
gc->last_collect_kind = gc->collect_kind;
- if(gc->force_major_collect || cause== GC_CAUSE_LOS_IS_FULL || FORCE_FULL_COMPACT || (gc->nos->num_managed_blocks == 0))
+ if(gc->force_major_collect || cause== GC_CAUSE_LOS_IS_FULL || FORCE_FULL_COMPACT)
gc->collect_kind = MAJOR_COLLECTION;
else
gc->collect_kind = MINOR_COLLECTION;
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen_adapt.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen_adapt.cpp?view=diff&rev=522932&r1=522931&r2=522932
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen_adapt.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/gen/gen_adapt.cpp Tue Mar 27 07:39:53 2007
@@ -22,7 +22,7 @@
#include "../common/space_tuner.h"
#include <math.h>
-#define NOS_COPY_RESERVE_DELTA (GC_BLOCK_SIZE_BYTES<<5)
+#define NOS_COPY_RESERVE_DELTA (GC_BLOCK_SIZE_BYTES<<1)
/*Tune this number in case that MOS could be too small, so as to avoid or put off fall back.*/
#define GC_MOS_MIN_EXTRA_REMAIN_SIZE (36*MB)
/*Switch on this MACRO when we want lspace->survive_ratio to be sensitive.*/
@@ -194,7 +194,7 @@
Blocked_Space* fspace = (Blocked_Space*)gc->nos;
Blocked_Space* mspace = (Blocked_Space*)gc->mos;
- float survive_ratio = 0;
+ float survive_ratio = 0.2f;
POINTER_SIZE_INT mos_free_size = space_free_memory_size(mspace);
POINTER_SIZE_INT nos_free_size = space_free_memory_size(fspace);
@@ -206,11 +206,14 @@
Tslow = (float)pause_time;
SMax = total_free_size;
- gc->force_major_collect = FALSE;
+ /*If fall back happens, and nos_boundary is up to heap_ceiling, then we force major.*/
+ if(gc->nos->num_managed_blocks == 0)
+ gc->force_major_collect = TRUE;
+ else gc->force_major_collect = FALSE;
- POINTER_SIZE_INT major_survive_size = space_committed_size((Space*)mspace) - mos_free_size;
/*If major is caused by LOS, or collection kind is EXTEND_COLLECTION, all survive ratio is not updated.*/
if((gc->cause != GC_CAUSE_LOS_IS_FULL) && (!gc_match_kind((GC*)gc, EXTEND_COLLECTION))){
+ POINTER_SIZE_INT major_survive_size = space_committed_size((Space*)mspace) - mos_free_size;
survive_ratio = (float)major_survive_size/(float)space_committed_size((Space*)mspace);
mspace->survive_ratio = survive_ratio;
}
@@ -285,20 +288,17 @@
total_size = (POINTER_SIZE_INT)gc->heap_end - (POINTER_SIZE_INT)mspace->heap_start;
#endif
- /* check if curr nos size is too small to shrink */
- /*
- if(curr_nos_size <= min_nos_size_bytes){
- //after major, should not allow this size
- assert(gc_match_kind((GC*)gc, MINOR_COLLECTION));
- return FALSE;
- }
- */
-
POINTER_SIZE_INT total_free = total_size - used_mos_size;
+ /*If total free is smaller than one block, there is no room for us to adjust*/
+ if(total_free < GC_BLOCK_SIZE_BYTES) return FALSE;
+
/* predict NOS + NOS*ratio = total_free_size */
POINTER_SIZE_INT nos_reserve_size;
nos_reserve_size = (POINTER_SIZE_INT)(((float)total_free)/(1.0f + fspace->survive_ratio));
- new_nos_size = round_down_to_size((POINTER_SIZE_INT)nos_reserve_size, SPACE_ALLOC_UNIT);
+ /*Nos should not be too small*/
+ if(nos_reserve_size <= GC_BLOCK_SIZE_BYTES) nos_reserve_size = GC_BLOCK_SIZE_BYTES;
+ new_nos_size = round_down_to_size((POINTER_SIZE_INT)nos_reserve_size, GC_BLOCK_SIZE_BYTES);
+
#ifdef STATIC_NOS_MAPPING
if(new_nos_size > fspace->reserved_heap_size) new_nos_size = fspace->reserved_heap_size;
#endif
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp?view=diff&rev=522932&r1=522931&r2=522932
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp Tue Mar 27 07:39:53 2007
@@ -193,7 +193,7 @@
while(num_fixing_collectors != num_active_collectors + 1);
/* Dealing with out of memory in mspace */
- if((mspace->free_block_idx > fspace->first_block_idx) || ((fspace->num_managed_blocks == 0) && (mspace->free_block_idx < fspace->first_block_idx))){
+ if(mspace->free_block_idx > fspace->first_block_idx){
atomic_cas32( &num_extending_collectors, 0, num_active_collectors);
mspace_extend_compact(collector);
atomic_inc32(&num_extending_collectors);
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp?view=diff&rev=522932&r1=522931&r2=522932
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp Tue Mar 27 07:39:53 2007
@@ -430,7 +430,7 @@
while(num_restoring_collectors != num_active_collectors + 1);
/* Dealing with out of memory in mspace */
- if((mspace->free_block_idx > fspace->first_block_idx) || ((fspace->num_managed_blocks == 0) && (mspace->free_block_idx < fspace->first_block_idx))){
+ if(mspace->free_block_idx > fspace->first_block_idx){
atomic_cas32( &num_extending_collectors, 0, num_active_collectors);
mspace_extend_compact(collector);
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/verify/verifier_scanner.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/verify/verifier_scanner.cpp?view=diff&rev=522932&r1=522931&r2=522932
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/verify/verifier_scanner.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/verify/verifier_scanner.cpp Tue Mar 27 07:39:53 2007
@@ -257,9 +257,9 @@
p_ref = obj_get_referent_field(p_obj);
if(!is_unreachable_obj(p_obj)){
verify_write_barrier(p_ref, heap_verifier);
- if(*p_ref != NULL) verify_live_object_slot(p_ref, heap_verifier);
+ if(*p_ref != COMPRESSED_NULL) verify_live_object_slot(p_ref, heap_verifier);
}else{
- if(*p_ref != NULL) verify_all_object_slot(p_ref, heap_verifier);
+ if(*p_ref != COMPRESSED_NULL) verify_all_object_slot(p_ref, heap_verifier);
}
}
#endif