提交 44e4df98 编写于 作者: J johnc

Merge

...@@ -48,6 +48,7 @@ jprt.sync.push=false ...@@ -48,6 +48,7 @@ jprt.sync.push=false
jprt.my.solaris.sparc.jdk7=solaris_sparc_5.10 jprt.my.solaris.sparc.jdk7=solaris_sparc_5.10
jprt.my.solaris.sparc.jdk7b107=solaris_sparc_5.10 jprt.my.solaris.sparc.jdk7b107=solaris_sparc_5.10
jprt.my.solaris.sparc.jdk7temp=solaris_sparc_5.10
jprt.my.solaris.sparc.jdk6=solaris_sparc_5.8 jprt.my.solaris.sparc.jdk6=solaris_sparc_5.8
jprt.my.solaris.sparc.jdk6perf=solaris_sparc_5.8 jprt.my.solaris.sparc.jdk6perf=solaris_sparc_5.8
jprt.my.solaris.sparc.jdk6u10=solaris_sparc_5.8 jprt.my.solaris.sparc.jdk6u10=solaris_sparc_5.8
...@@ -58,6 +59,7 @@ jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}} ...@@ -58,6 +59,7 @@ jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}}
jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10 jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10
jprt.my.solaris.sparcv9.jdk7b107=solaris_sparcv9_5.10 jprt.my.solaris.sparcv9.jdk7b107=solaris_sparcv9_5.10
jprt.my.solaris.sparcv9.jdk7temp=solaris_sparcv9_5.10
jprt.my.solaris.sparcv9.jdk6=solaris_sparcv9_5.8 jprt.my.solaris.sparcv9.jdk6=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9.jdk6perf=solaris_sparcv9_5.8 jprt.my.solaris.sparcv9.jdk6perf=solaris_sparcv9_5.8
jprt.my.solaris.sparcv9.jdk6u10=solaris_sparcv9_5.8 jprt.my.solaris.sparcv9.jdk6u10=solaris_sparcv9_5.8
...@@ -68,6 +70,7 @@ jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}} ...@@ -68,6 +70,7 @@ jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}}
jprt.my.solaris.i586.jdk7=solaris_i586_5.10 jprt.my.solaris.i586.jdk7=solaris_i586_5.10
jprt.my.solaris.i586.jdk7b107=solaris_i586_5.10 jprt.my.solaris.i586.jdk7b107=solaris_i586_5.10
jprt.my.solaris.i586.jdk7temp=solaris_i586_5.10
jprt.my.solaris.i586.jdk6=solaris_i586_5.8 jprt.my.solaris.i586.jdk6=solaris_i586_5.8
jprt.my.solaris.i586.jdk6perf=solaris_i586_5.8 jprt.my.solaris.i586.jdk6perf=solaris_i586_5.8
jprt.my.solaris.i586.jdk6u10=solaris_i586_5.8 jprt.my.solaris.i586.jdk6u10=solaris_i586_5.8
...@@ -78,6 +81,7 @@ jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}} ...@@ -78,6 +81,7 @@ jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}}
jprt.my.solaris.x64.jdk7=solaris_x64_5.10 jprt.my.solaris.x64.jdk7=solaris_x64_5.10
jprt.my.solaris.x64.jdk7b107=solaris_x64_5.10 jprt.my.solaris.x64.jdk7b107=solaris_x64_5.10
jprt.my.solaris.x64.jdk7temp=solaris_x64_5.10
jprt.my.solaris.x64.jdk6=solaris_x64_5.10 jprt.my.solaris.x64.jdk6=solaris_x64_5.10
jprt.my.solaris.x64.jdk6perf=solaris_x64_5.10 jprt.my.solaris.x64.jdk6perf=solaris_x64_5.10
jprt.my.solaris.x64.jdk6u10=solaris_x64_5.10 jprt.my.solaris.x64.jdk6u10=solaris_x64_5.10
...@@ -88,6 +92,7 @@ jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}} ...@@ -88,6 +92,7 @@ jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}}
jprt.my.linux.i586.jdk7=linux_i586_2.6 jprt.my.linux.i586.jdk7=linux_i586_2.6
jprt.my.linux.i586.jdk7b107=linux_i586_2.6 jprt.my.linux.i586.jdk7b107=linux_i586_2.6
jprt.my.linux.i586.jdk7temp=linux_i586_2.6
jprt.my.linux.i586.jdk6=linux_i586_2.4 jprt.my.linux.i586.jdk6=linux_i586_2.4
jprt.my.linux.i586.jdk6perf=linux_i586_2.4 jprt.my.linux.i586.jdk6perf=linux_i586_2.4
jprt.my.linux.i586.jdk6u10=linux_i586_2.4 jprt.my.linux.i586.jdk6u10=linux_i586_2.4
...@@ -98,6 +103,7 @@ jprt.my.linux.i586=${jprt.my.linux.i586.${jprt.tools.default.release}} ...@@ -98,6 +103,7 @@ jprt.my.linux.i586=${jprt.my.linux.i586.${jprt.tools.default.release}}
jprt.my.linux.x64.jdk7=linux_x64_2.6 jprt.my.linux.x64.jdk7=linux_x64_2.6
jprt.my.linux.x64.jdk7b107=linux_x64_2.6 jprt.my.linux.x64.jdk7b107=linux_x64_2.6
jprt.my.linux.x64.jdk7temp=linux_x64_2.6
jprt.my.linux.x64.jdk6=linux_x64_2.4 jprt.my.linux.x64.jdk6=linux_x64_2.4
jprt.my.linux.x64.jdk6perf=linux_x64_2.4 jprt.my.linux.x64.jdk6perf=linux_x64_2.4
jprt.my.linux.x64.jdk6u10=linux_x64_2.4 jprt.my.linux.x64.jdk6u10=linux_x64_2.4
...@@ -106,8 +112,9 @@ jprt.my.linux.x64.jdk6u18=linux_x64_2.4 ...@@ -106,8 +112,9 @@ jprt.my.linux.x64.jdk6u18=linux_x64_2.4
jprt.my.linux.x64.jdk6u20=linux_x64_2.4 jprt.my.linux.x64.jdk6u20=linux_x64_2.4
jprt.my.linux.x64=${jprt.my.linux.x64.${jprt.tools.default.release}} jprt.my.linux.x64=${jprt.my.linux.x64.${jprt.tools.default.release}}
jprt.my.windows.i586.jdk7=windows_i586_5.0 jprt.my.windows.i586.jdk7=windows_i586_5.1
jprt.my.windows.i586.jdk7b107=windows_i586_5.0 jprt.my.windows.i586.jdk7b107=windows_i586_5.0
jprt.my.windows.i586.jdk7temp=windows_i586_5.0
jprt.my.windows.i586.jdk6=windows_i586_5.0 jprt.my.windows.i586.jdk6=windows_i586_5.0
jprt.my.windows.i586.jdk6perf=windows_i586_5.0 jprt.my.windows.i586.jdk6perf=windows_i586_5.0
jprt.my.windows.i586.jdk6u10=windows_i586_5.0 jprt.my.windows.i586.jdk6u10=windows_i586_5.0
...@@ -118,6 +125,7 @@ jprt.my.windows.i586=${jprt.my.windows.i586.${jprt.tools.default.release}} ...@@ -118,6 +125,7 @@ jprt.my.windows.i586=${jprt.my.windows.i586.${jprt.tools.default.release}}
jprt.my.windows.x64.jdk7=windows_x64_5.2 jprt.my.windows.x64.jdk7=windows_x64_5.2
jprt.my.windows.x64.jdk7b107=windows_x64_5.2 jprt.my.windows.x64.jdk7b107=windows_x64_5.2
jprt.my.windows.x64.jdk7temp=windows_x64_5.2
jprt.my.windows.x64.jdk6=windows_x64_5.2 jprt.my.windows.x64.jdk6=windows_x64_5.2
jprt.my.windows.x64.jdk6perf=windows_x64_5.2 jprt.my.windows.x64.jdk6perf=windows_x64_5.2
jprt.my.windows.x64.jdk6u10=windows_x64_5.2 jprt.my.windows.x64.jdk6u10=windows_x64_5.2
......
...@@ -256,7 +256,7 @@ TreeChunk* TreeList::head_as_TreeChunk() { ...@@ -256,7 +256,7 @@ TreeChunk* TreeList::head_as_TreeChunk() {
} }
TreeChunk* TreeList::first_available() { TreeChunk* TreeList::first_available() {
guarantee(head() != NULL, "The head of the list cannot be NULL"); assert(head() != NULL, "The head of the list cannot be NULL");
FreeChunk* fc = head()->next(); FreeChunk* fc = head()->next();
TreeChunk* retTC; TreeChunk* retTC;
if (fc == NULL) { if (fc == NULL) {
...@@ -272,7 +272,7 @@ TreeChunk* TreeList::first_available() { ...@@ -272,7 +272,7 @@ TreeChunk* TreeList::first_available() {
// those in the list for this size; potentially slow and expensive, // those in the list for this size; potentially slow and expensive,
// use with caution! // use with caution!
TreeChunk* TreeList::largest_address() { TreeChunk* TreeList::largest_address() {
guarantee(head() != NULL, "The head of the list cannot be NULL"); assert(head() != NULL, "The head of the list cannot be NULL");
FreeChunk* fc = head()->next(); FreeChunk* fc = head()->next();
TreeChunk* retTC; TreeChunk* retTC;
if (fc == NULL) { if (fc == NULL) {
......
...@@ -1946,8 +1946,8 @@ void CompactibleFreeListSpace::save_marks() { ...@@ -1946,8 +1946,8 @@ void CompactibleFreeListSpace::save_marks() {
bool CompactibleFreeListSpace::no_allocs_since_save_marks() { bool CompactibleFreeListSpace::no_allocs_since_save_marks() {
assert(_promoInfo.tracking(), "No preceding save_marks?"); assert(_promoInfo.tracking(), "No preceding save_marks?");
guarantee(SharedHeap::heap()->n_par_threads() == 0, assert(SharedHeap::heap()->n_par_threads() == 0,
"Shouldn't be called (yet) during parallel part of gc."); "Shouldn't be called if using parallel gc.");
return _promoInfo.noPromotions(); return _promoInfo.noPromotions();
} }
...@@ -2569,7 +2569,7 @@ void CFLS_LAB::modify_initialization(size_t n, unsigned wt) { ...@@ -2569,7 +2569,7 @@ void CFLS_LAB::modify_initialization(size_t n, unsigned wt) {
HeapWord* CFLS_LAB::alloc(size_t word_sz) { HeapWord* CFLS_LAB::alloc(size_t word_sz) {
FreeChunk* res; FreeChunk* res;
guarantee(word_sz == _cfls->adjustObjectSize(word_sz), "Error"); assert(word_sz == _cfls->adjustObjectSize(word_sz), "Error");
if (word_sz >= CompactibleFreeListSpace::IndexSetSize) { if (word_sz >= CompactibleFreeListSpace::IndexSetSize) {
// This locking manages sync with other large object allocations. // This locking manages sync with other large object allocations.
MutexLockerEx x(_cfls->parDictionaryAllocLock(), MutexLockerEx x(_cfls->parDictionaryAllocLock(),
......
...@@ -1332,7 +1332,7 @@ ConcurrentMarkSweepGeneration::allocation_limit_reached(Space* space, ...@@ -1332,7 +1332,7 @@ ConcurrentMarkSweepGeneration::allocation_limit_reached(Space* space,
// ----------------------------------------------------- // -----------------------------------------------------
// FREE: klass_word & 1 == 1; mark_word holds block size // FREE: klass_word & 1 == 1; mark_word holds block size
// //
// OBJECT: klass_word installed; klass_word != 0 && klass_word & 0 == 0; // OBJECT: klass_word installed; klass_word != 0 && klass_word & 1 == 0;
// obj->size() computes correct size // obj->size() computes correct size
// [Perm Gen objects needs to be "parsable" before they can be navigated] // [Perm Gen objects needs to be "parsable" before they can be navigated]
// //
......
...@@ -165,13 +165,8 @@ void FreeList::removeChunk(FreeChunk*fc) { ...@@ -165,13 +165,8 @@ void FreeList::removeChunk(FreeChunk*fc) {
"Next of tail should be NULL"); "Next of tail should be NULL");
} }
decrement_count(); decrement_count();
#define TRAP_CODE 1 assert(((head() == NULL) + (tail() == NULL) + (count() == 0)) % 3 == 0,
#if TRAP_CODE "H/T/C Inconsistency");
if (head() == NULL) {
guarantee(tail() == NULL, "INVARIANT");
guarantee(count() == 0, "INVARIANT");
}
#endif
// clear next and prev fields of fc, debug only // clear next and prev fields of fc, debug only
NOT_PRODUCT( NOT_PRODUCT(
fc->linkPrev(NULL); fc->linkPrev(NULL);
......
...@@ -253,8 +253,8 @@ void PromotionInfo::print_statistics(uint worker_id) const { ...@@ -253,8 +253,8 @@ void PromotionInfo::print_statistics(uint worker_id) const {
cur_spool = cur_spool->nextSpoolBlock) { cur_spool = cur_spool->nextSpoolBlock) {
// the first entry is just a self-pointer; indices 1 through // the first entry is just a self-pointer; indices 1 through
// bufferSize - 1 are occupied (thus, bufferSize - 1 slots). // bufferSize - 1 are occupied (thus, bufferSize - 1 slots).
guarantee((void*)cur_spool->displacedHdr == (void*)&cur_spool->displacedHdr, assert((void*)cur_spool->displacedHdr == (void*)&cur_spool->displacedHdr,
"first entry of displacedHdr should be self-referential"); "first entry of displacedHdr should be self-referential");
slots += cur_spool->bufferSize - 1; slots += cur_spool->bufferSize - 1;
blocks++; blocks++;
} }
......
...@@ -2148,7 +2148,7 @@ void G1CollectorPolicy::print_summary(PauseSummary* summary) const { ...@@ -2148,7 +2148,7 @@ void G1CollectorPolicy::print_summary(PauseSummary* summary) const {
body_summary->get_termination_seq() body_summary->get_termination_seq()
}; };
NumberSeq calc_other_times_ms(body_summary->get_parallel_seq(), NumberSeq calc_other_times_ms(body_summary->get_parallel_seq(),
7, other_parts); 6, other_parts);
check_other_times(2, body_summary->get_parallel_other_seq(), check_other_times(2, body_summary->get_parallel_other_seq(),
&calc_other_times_ms); &calc_other_times_ms);
} }
...@@ -2166,30 +2166,32 @@ void G1CollectorPolicy::print_summary(PauseSummary* summary) const { ...@@ -2166,30 +2166,32 @@ void G1CollectorPolicy::print_summary(PauseSummary* summary) const {
} }
print_summary(1, "Other", summary->get_other_seq()); print_summary(1, "Other", summary->get_other_seq());
{ {
NumberSeq calc_other_times_ms; if (body_summary != NULL) {
if (parallel) { NumberSeq calc_other_times_ms;
// parallel if (parallel) {
NumberSeq* other_parts[] = { // parallel
body_summary->get_satb_drain_seq(), NumberSeq* other_parts[] = {
body_summary->get_parallel_seq(), body_summary->get_satb_drain_seq(),
body_summary->get_clear_ct_seq() body_summary->get_parallel_seq(),
}; body_summary->get_clear_ct_seq()
calc_other_times_ms = NumberSeq(summary->get_total_seq(), };
3, other_parts); calc_other_times_ms = NumberSeq(summary->get_total_seq(),
} else { 3, other_parts);
// serial } else {
NumberSeq* other_parts[] = { // serial
body_summary->get_satb_drain_seq(), NumberSeq* other_parts[] = {
body_summary->get_update_rs_seq(), body_summary->get_satb_drain_seq(),
body_summary->get_ext_root_scan_seq(), body_summary->get_update_rs_seq(),
body_summary->get_mark_stack_scan_seq(), body_summary->get_ext_root_scan_seq(),
body_summary->get_scan_rs_seq(), body_summary->get_mark_stack_scan_seq(),
body_summary->get_obj_copy_seq() body_summary->get_scan_rs_seq(),
}; body_summary->get_obj_copy_seq()
calc_other_times_ms = NumberSeq(summary->get_total_seq(), };
7, other_parts); calc_other_times_ms = NumberSeq(summary->get_total_seq(),
6, other_parts);
}
check_other_times(1, summary->get_other_seq(), &calc_other_times_ms);
} }
check_other_times(1, summary->get_other_seq(), &calc_other_times_ms);
} }
} else { } else {
print_indent(0); print_indent(0);
......
...@@ -1544,13 +1544,13 @@ class CommandLineFlags { ...@@ -1544,13 +1544,13 @@ class CommandLineFlags {
"Use BinaryTreeDictionary as default in the CMS generation") \ "Use BinaryTreeDictionary as default in the CMS generation") \
\ \
product(uintx, CMSIndexedFreeListReplenish, 4, \ product(uintx, CMSIndexedFreeListReplenish, 4, \
"Replenish and indexed free list with this number of chunks") \ "Replenish an indexed free list with this number of chunks") \
\ \
product(bool, CMSReplenishIntermediate, true, \ product(bool, CMSReplenishIntermediate, true, \
"Replenish all intermediate free-list caches") \ "Replenish all intermediate free-list caches") \
\ \
product(bool, CMSSplitIndexedFreeListBlocks, true, \ product(bool, CMSSplitIndexedFreeListBlocks, true, \
"When satisfying batched demand, splot blocks from the " \ "When satisfying batched demand, split blocks from the " \
"IndexedFreeList whose size is a multiple of requested size") \ "IndexedFreeList whose size is a multiple of requested size") \
\ \
product(bool, CMSLoopWarn, false, \ product(bool, CMSLoopWarn, false, \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册