hotspot/src/share/vm/gc/cms/compactibleFreeListSpace.cpp
changeset 35168 927833845cf6
parent 33587 c04a7462b0e6
child 35169 e75913632d00
equal deleted inserted replaced
34658:7ffe56626bc2 35168:927833845cf6
  2515   // small spikes, so some kind of historical smoothing based on
  2515   // small spikes, so some kind of historical smoothing based on
  2516   // previous experience with the greater reactivity might be useful.
  2516   // previous experience with the greater reactivity might be useful.
  2517   // Lacking sufficient experience, CMSOldPLABResizeQuicker is disabled by
  2517   // Lacking sufficient experience, CMSOldPLABResizeQuicker is disabled by
  2518   // default.
  2518   // default.
  2519   if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
  2519   if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
  2520     size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
  2520     //
       
  2521     // On a 32-bit VM, the denominator can become zero because of integer overflow,
       
  2522     // which is why there is a cast to double.
       
  2523     //
       
  2524     size_t multiple = (size_t) (_num_blocks[word_sz]/(((double)CMSOldPLABToleranceFactor)*CMSOldPLABNumRefills*n_blks));
  2521     n_blks +=  CMSOldPLABReactivityFactor*multiple*n_blks;
  2525     n_blks +=  CMSOldPLABReactivityFactor*multiple*n_blks;
  2522     n_blks = MIN2(n_blks, CMSOldPLABMax);
  2526     n_blks = MIN2(n_blks, CMSOldPLABMax);
  2523   }
  2527   }
  2524   assert(n_blks > 0, "Error");
  2528   assert(n_blks > 0, "Error");
  2525   _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
  2529   _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);