hotspot/src/os/windows/vm/perfMemory_windows.cpp
changeset 14120 7d298141c258
parent 13963 e5b53c306fb5
child 16674 3847a5ea1846
equal deleted inserted replaced
14117:6e2e697e310f 14120:7d298141c258
    28 #include "memory/resourceArea.hpp"
    28 #include "memory/resourceArea.hpp"
    29 #include "oops/oop.inline.hpp"
    29 #include "oops/oop.inline.hpp"
    30 #include "os_windows.inline.hpp"
    30 #include "os_windows.inline.hpp"
    31 #include "runtime/handles.inline.hpp"
    31 #include "runtime/handles.inline.hpp"
    32 #include "runtime/perfMemory.hpp"
    32 #include "runtime/perfMemory.hpp"
       
    33 #include "services/memTracker.hpp"
    33 #include "utilities/exceptions.hpp"
    34 #include "utilities/exceptions.hpp"
    34 
    35 
    35 #include <windows.h>
    36 #include <windows.h>
    36 #include <sys/types.h>
    37 #include <sys/types.h>
    37 #include <sys/stat.h>
    38 #include <sys/stat.h>
  1494   }
  1495   }
  1495 
  1496 
  1496   // clear the shared memory region
  1497   // clear the shared memory region
  1497   (void)memset(mapAddress, '\0', size);
  1498   (void)memset(mapAddress, '\0', size);
  1498 
  1499 
       
  1500   // it does not go through os api, the operation has to record from here
       
  1501   MemTracker::record_virtual_memory_reserve((address)mapAddress, size, CURRENT_PC);
       
  1502   MemTracker::record_virtual_memory_type((address)mapAddress, mtInternal);
       
  1503 
  1499   return (char*) mapAddress;
  1504   return (char*) mapAddress;
  1500 }
  1505 }
  1501 
  1506 
  1502 // this method deletes the file mapping object.
  1507 // this method deletes the file mapping object.
  1503 //
  1508 //
  1670     CloseHandle(fmh);
  1675     CloseHandle(fmh);
  1671     THROW_MSG(vmSymbols::java_lang_OutOfMemoryError(),
  1676     THROW_MSG(vmSymbols::java_lang_OutOfMemoryError(),
  1672               "Could not map PerfMemory");
  1677               "Could not map PerfMemory");
  1673   }
  1678   }
  1674 
  1679 
       
  1680   // it does not go through os api, the operation has to record from here
       
  1681   MemTracker::record_virtual_memory_reserve((address)mapAddress, size, CURRENT_PC);
       
  1682   MemTracker::record_virtual_memory_type((address)mapAddress, mtInternal);
       
  1683 
       
  1684 
  1675   *addrp = (char*)mapAddress;
  1685   *addrp = (char*)mapAddress;
  1676   *sizep = size;
  1686   *sizep = size;
  1677 
  1687 
  1678   // File mapping object can be closed at this time without
  1688   // File mapping object can be closed at this time without
  1679   // invalidating the mapped view of the file
  1689   // invalidating the mapped view of the file
  1822     // prevent accidental detachment of this process's PerfMemory region
  1832     // prevent accidental detachment of this process's PerfMemory region
  1823     return;
  1833     return;
  1824   }
  1834   }
  1825 
  1835 
  1826   remove_file_mapping(addr);
  1836   remove_file_mapping(addr);
       
  1837   // it does not go through os api, the operation has to record from here
       
  1838   MemTracker::record_virtual_memory_release((address)addr, bytes);
  1827 }
  1839 }
  1828 
  1840 
  1829 char* PerfMemory::backing_store_filename() {
  1841 char* PerfMemory::backing_store_filename() {
  1830   return sharedmem_fileName;
  1842   return sharedmem_fileName;
  1831 }
  1843 }