Mon, 11 Mar 2013 08:49:53 +0100
Merge
1.1 --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Fri Mar 08 08:22:18 2013 -0800 1.2 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Mon Mar 11 08:49:53 2013 +0100 1.3 @@ -4111,7 +4111,7 @@ 1.4 // bitmap knows by how much we need to move it as it knows its 1.5 // granularity). 1.6 assert(_finger < _region_limit, "invariant"); 1.7 - HeapWord* new_finger = _nextMarkBitMap->nextWord(_finger); 1.8 + HeapWord* new_finger = _nextMarkBitMap->nextObject(_finger); 1.9 // Check if bitmap iteration was aborted while scanning the last object 1.10 if (new_finger >= _region_limit) { 1.11 giveup_current_region();
2.1 --- a/src/share/vm/gc_implementation/g1/concurrentMark.hpp Fri Mar 08 08:22:18 2013 -0800 2.2 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.hpp Mon Mar 11 08:49:53 2013 +0100 2.3 @@ -97,7 +97,6 @@ 2.4 HeapWord* limit = NULL) const; 2.5 2.6 // conversion utilities 2.7 - // XXX Fix these so that offsets are size_t's... 2.8 HeapWord* offsetToHeapWord(size_t offset) const { 2.9 return _bmStartWord + (offset << _shifter); 2.10 } 2.11 @@ -105,8 +104,13 @@ 2.12 return pointer_delta(addr, _bmStartWord) >> _shifter; 2.13 } 2.14 int heapWordDiffToOffsetDiff(size_t diff) const; 2.15 - HeapWord* nextWord(HeapWord* addr) { 2.16 - return offsetToHeapWord(heapWordToOffset(addr) + 1); 2.17 + 2.18 + // The argument addr should be the start address of a valid object 2.19 + HeapWord* nextObject(HeapWord* addr) { 2.20 + oop obj = (oop) addr; 2.21 + HeapWord* res = addr + obj->size(); 2.22 + assert(offsetToHeapWord(heapWordToOffset(res)) == res, "sanity"); 2.23 + return res; 2.24 } 2.25 2.26 // debugging
3.1 --- a/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp Fri Mar 08 08:22:18 2013 -0800 3.2 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp Mon Mar 11 08:49:53 2013 +0100 3.3 @@ -1,5 +1,5 @@ 3.4 /* 3.5 - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. 3.6 + * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. 3.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3.8 * 3.9 * This code is free software; you can redistribute it and/or modify it 3.10 @@ -252,12 +252,10 @@ 3.11 3.12 start_offset = _bm.get_next_one_offset(start_offset, end_offset); 3.13 while (start_offset < end_offset) { 3.14 - HeapWord* obj_addr = offsetToHeapWord(start_offset); 3.15 - oop obj = (oop) obj_addr; 3.16 if (!cl->do_bit(start_offset)) { 3.17 return false; 3.18 } 3.19 - HeapWord* next_addr = MIN2(obj_addr + obj->size(), end_addr); 3.20 + HeapWord* next_addr = MIN2(nextObject(offsetToHeapWord(start_offset)), end_addr); 3.21 BitMap::idx_t next_offset = heapWordToOffset(next_addr); 3.22 start_offset = _bm.get_next_one_offset(next_offset, end_offset); 3.23 }
4.1 --- a/src/share/vm/runtime/arguments.cpp Fri Mar 08 08:22:18 2013 -0800 4.2 +++ b/src/share/vm/runtime/arguments.cpp Mon Mar 11 08:49:53 2013 +0100 4.3 @@ -1813,6 +1813,13 @@ 4.4 } 4.5 } 4.6 4.7 +void Arguments::check_deprecated_gc_flags() { 4.8 + if (FLAG_IS_CMDLINE(MaxGCMinorPauseMillis)) { 4.9 + warning("Using MaxGCMinorPauseMillis as minor pause goal is deprecated" 4.10 + "and will likely be removed in future release"); 4.11 + } 4.12 +} 4.13 + 4.14 // Check stack pages settings 4.15 bool Arguments::check_stack_pages() 4.16 { 4.17 @@ -3292,6 +3299,7 @@ 4.18 set_g1_gc_flags(); 4.19 } 4.20 check_deprecated_gcs(); 4.21 + check_deprecated_gc_flags(); 4.22 #else // INCLUDE_ALL_GCS 4.23 assert(verify_serial_gc_flags(), "SerialGC unset"); 4.24 #endif // INCLUDE_ALL_GCS
5.1 --- a/src/share/vm/runtime/arguments.hpp Fri Mar 08 08:22:18 2013 -0800 5.2 +++ b/src/share/vm/runtime/arguments.hpp Mon Mar 11 08:49:53 2013 +0100 5.3 @@ -414,6 +414,7 @@ 5.4 // Check for consistency in the selection of the garbage collector. 5.5 static bool check_gc_consistency(); 5.6 static void check_deprecated_gcs(); 5.7 + static void check_deprecated_gc_flags(); 5.8 // Check consistecy or otherwise of VM argument settings 5.9 static bool check_vm_args_consistency(); 5.10 // Check stack pages settings