Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8198225

os::attempt_reserve_memory_at records memory as committed

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 11
    • 11
    • hotspot
    • None
    • b03

      The following code:
      char* os::attempt_reserve_memory_at(size_t bytes, char* addr, int file_desc) {
        char* result = NULL;
        if (file_desc != -1) {
          result = pd_attempt_reserve_memory_at(bytes, addr, file_desc);
          if (result != NULL) {
            MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
          }
        } else {
          result = pd_attempt_reserve_memory_at(bytes, addr);
          if (result != NULL) {
            MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
          }
        }
        return result;
      }

      shouldn't be calling record_virtual_memory_reserve_and_commit in the last conditional. It should be using record_virtual_memory_reserve.

      Just like os::reserve_memory does:
      char* os::reserve_memory(size_t bytes, char* addr, size_t alignment_hint, int file_desc) {
        char* result = NULL;

        if (file_desc != -1) {
          // Could have called pd_reserve_memory() followed by replace_existing_mapping_with_file_mapping(),
          // but AIX may use SHM in which case its more trouble to detach the segment and remap memory to the file.
          result = os::map_memory_to_file(addr, bytes, file_desc);
          if (result != NULL) {
            MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
          }
        } else {
          result = pd_reserve_memory(bytes, addr, alignment_hint);
          if (result != NULL) {
            MemTracker::record_virtual_memory_reserve((address)result, bytes, CALLER_PC);
          }
        }

        return result;
      }

            stefank Stefan Karlsson
            stefank Stefan Karlsson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: