< prev index next >

share/gc/g1/g1PageBasedVirtualSpace.cpp

Print this page
rev 1 : G1GC+POGC+NVDIMM Patch with latest comments incorporated from all.
rev 2 : Removed fcntl and fixed hotspot else violation

*** 132,141 **** --- 132,155 ---- start, start + num_pages, _committed.size()); char* start_addr = page_start(start); size_t size = num_pages * _page_size; + if (((address)start_addr == (address)os::nvdimm_heapbase())) { + // first remove my dummy mapping. + if (os::unmap_memory(start_addr, size)) { + char* nvdimm_addr = os::attempt_reserve_memory_at(size, start_addr, os::nvdimm_fd()); + if (nvdimm_addr != start_addr) { + vm_exit_during_initialization( + err_msg("Could not map memory at %p for NVDIMM %s Fd %d", nvdimm_addr, AllocateOldGenAt, os::nvdimm_fd())); + } else { + log_info(gc, heap)("NVDIMM Memory successfully mapped at %p, Size %lu", start_addr, size); + os::close(os::nvdimm_fd()); + } + } + return; + } os::commit_memory_or_exit(start_addr, size, _page_size, _executable, err_msg("Failed to commit area from " PTR_FORMAT " to " PTR_FORMAT " of length " SIZE_FORMAT ".", p2i(start_addr), p2i(start_addr + size), size)); }
< prev index next >