hotspot/src/share/vm/gc/parallel/psParallelCompact.cpp
changeset 46619 a3919f5e8d2b
parent 46560 388aa8d67c80
child 46625 edefffab74e2
equal deleted inserted replaced
46618:d503911aa948 46619:a3919f5e8d2b
   430 ParallelCompactData::create_vspace(size_t count, size_t element_size)
   430 ParallelCompactData::create_vspace(size_t count, size_t element_size)
   431 {
   431 {
   432   const size_t raw_bytes = count * element_size;
   432   const size_t raw_bytes = count * element_size;
   433   const size_t page_sz = os::page_size_for_region_aligned(raw_bytes, 10);
   433   const size_t page_sz = os::page_size_for_region_aligned(raw_bytes, 10);
   434   const size_t granularity = os::vm_allocation_granularity();
   434   const size_t granularity = os::vm_allocation_granularity();
   435   _reserved_byte_size = align_size_up(raw_bytes, MAX2(page_sz, granularity));
   435   _reserved_byte_size = align_up(raw_bytes, MAX2(page_sz, granularity));
   436 
   436 
   437   const size_t rs_align = page_sz == (size_t) os::vm_page_size() ? 0 :
   437   const size_t rs_align = page_sz == (size_t) os::vm_page_size() ? 0 :
   438     MAX2(page_sz, granularity);
   438     MAX2(page_sz, granularity);
   439   ReservedSpace rs(_reserved_byte_size, rs_align, rs_align > 0);
   439   ReservedSpace rs(_reserved_byte_size, rs_align, rs_align > 0);
   440   os::trace_page_sizes("Parallel Compact Data", raw_bytes, raw_bytes, page_sz, rs.base(),
   440   os::trace_page_sizes("Parallel Compact Data", raw_bytes, raw_bytes, page_sz, rs.base(),
  1982   // in the total; otherwise the next young gen GC will simply bail out to a
  1982   // in the total; otherwise the next young gen GC will simply bail out to a
  1983   // full GC.
  1983   // full GC.
  1984   const size_t alignment = old_gen->virtual_space()->alignment();
  1984   const size_t alignment = old_gen->virtual_space()->alignment();
  1985   const size_t eden_used = eden_space->used_in_bytes();
  1985   const size_t eden_used = eden_space->used_in_bytes();
  1986   const size_t promoted = (size_t)size_policy->avg_promoted()->padded_average();
  1986   const size_t promoted = (size_t)size_policy->avg_promoted()->padded_average();
  1987   const size_t absorb_size = align_size_up(eden_used + promoted, alignment);
  1987   const size_t absorb_size = align_up(eden_used + promoted, alignment);
  1988   const size_t eden_capacity = eden_space->capacity_in_bytes();
  1988   const size_t eden_capacity = eden_space->capacity_in_bytes();
  1989 
  1989 
  1990   if (absorb_size >= eden_capacity) {
  1990   if (absorb_size >= eden_capacity) {
  1991     return false; // Must leave some space in eden.
  1991     return false; // Must leave some space in eden.
  1992   }
  1992   }