--- old/src/share/vm/runtime/commandLineFlagConstraintsGC.cpp 2017-04-25 16:45:45.363172742 +0200 +++ new/src/share/vm/runtime/commandLineFlagConstraintsGC.cpp 2017-04-25 16:45:45.215172747 +0200 @@ -374,8 +374,8 @@ if (UseConcMarkSweepGC) { // ParGCCardsPerStrideChunk should be compared with card table size. size_t heap_size = Universe::heap()->reserved_region().word_size(); - CardTableModRefBS* bs = (CardTableModRefBS*)GenCollectedHeap::heap()->rem_set()->bs(); - size_t card_table_size = bs->cards_required(heap_size) - 1; // Valid card table size + CardTableRS* ct = GenCollectedHeap::heap()->rem_set(); + size_t card_table_size = ct->cards_required(heap_size) - 1; // Valid card table size if ((size_t)value > card_table_size) { CommandLineError::print(verbose, @@ -386,7 +386,7 @@ } // ParGCCardsPerStrideChunk is used with n_strides(ParallelGCThreads*ParGCStridesPerThread) - // from CardTableModRefBSForCTRS::process_stride(). Note that ParGCStridesPerThread is already checked + // from CardTableRS::process_stride(). Note that ParGCStridesPerThread is already checked // not to make an overflow with ParallelGCThreads from its constraint function. uintx n_strides = ParallelGCThreads * ParGCStridesPerThread; uintx ergo_max = max_uintx / n_strides; @@ -468,9 +468,9 @@ #if INCLUDE_ALL_GCS if (status == Flag::SUCCESS && UseConcMarkSweepGC) { // CMSParRemarkTask::do_dirty_card_rescan_tasks requires CompactibleFreeListSpace::rescan_task_size() - // to be aligned to CardTableModRefBS::card_size * BitsPerWord. + // to be aligned to CardTable::card_size * BitsPerWord. // Note that rescan_task_size() will be aligned if CMSRescanMultiple is a multiple of 'HeapWordSize' - // because rescan_task_size() is CardTableModRefBS::card_size / HeapWordSize * BitsPerWord. + // because rescan_task_size() is CardTable::card_size / HeapWordSize * BitsPerWord. if (value % HeapWordSize != 0) { CommandLineError::print(verbose, "CMSRescanMultiple (" SIZE_FORMAT ") must be "