< prev index next >

src/hotspot/share/services/virtualMemoryTracker.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 208,217 **** --- 208,219 ---- return (addr == base() && sz == size()); } inline bool overlap_region(address addr, size_t sz) const { + assert(sz > 0, "Invalid size"); + assert(size() > 0, "Invalid size"); VirtualMemoryRegion rgn(addr, sz); return contain_address(addr) || contain_address(addr + sz - 1) || rgn.contain_address(base()) || rgn.contain_address(end() - 1);
*** 293,314 **** _committed_regions; NativeCallStack _stack; MEMFLAGS _flag; - bool _all_committed; - public: ReservedMemoryRegion(address base, size_t size, const NativeCallStack& stack, MEMFLAGS flag = mtNone) : ! VirtualMemoryRegion(base, size), _stack(stack), _flag(flag), ! _all_committed(false) { } ReservedMemoryRegion(address base, size_t size) : ! VirtualMemoryRegion(base, size), _stack(NativeCallStack::EMPTY_STACK), _flag(mtNone), ! _all_committed(false) { } // Copy constructor ReservedMemoryRegion(const ReservedMemoryRegion& rr) : VirtualMemoryRegion(rr.base(), rr.size()) { *this = rr; --- 295,312 ---- _committed_regions; NativeCallStack _stack; MEMFLAGS _flag; public: ReservedMemoryRegion(address base, size_t size, const NativeCallStack& stack, MEMFLAGS flag = mtNone) : ! VirtualMemoryRegion(base, size), _stack(stack), _flag(flag) { } ReservedMemoryRegion(address base, size_t size) : ! VirtualMemoryRegion(base, size), _stack(NativeCallStack::EMPTY_STACK), _flag(mtNone) { } // Copy constructor ReservedMemoryRegion(const ReservedMemoryRegion& rr) : VirtualMemoryRegion(rr.base(), rr.size()) { *this = rr;
*** 345,378 **** // move committed regions that higher than specified address to // the new region void move_committed_regions(address addr, ReservedMemoryRegion& rgn); - inline bool all_committed() const { return _all_committed; } - void set_all_committed(bool b); - CommittedRegionIterator iterate_committed_regions() const { return CommittedRegionIterator(_committed_regions.head()); } ReservedMemoryRegion& operator= (const ReservedMemoryRegion& other) { set_base(other.base()); set_size(other.size()); _stack = *other.call_stack(); _flag = other.flag(); ! _all_committed = other.all_committed(); ! if (other.all_committed()) { ! set_all_committed(true); ! } else { CommittedRegionIterator itr = other.iterate_committed_regions(); const CommittedMemoryRegion* rgn = itr.next(); while (rgn != NULL) { _committed_regions.add(*rgn); rgn = itr.next(); } ! } return *this; } private: // The committed region contains the uncommitted region, subtract the uncommitted --- 343,370 ---- // move committed regions that higher than specified address to // the new region void move_committed_regions(address addr, ReservedMemoryRegion& rgn); CommittedRegionIterator iterate_committed_regions() const { return CommittedRegionIterator(_committed_regions.head()); } ReservedMemoryRegion& operator= (const ReservedMemoryRegion& other) { set_base(other.base()); set_size(other.size()); _stack = *other.call_stack(); _flag = other.flag(); ! CommittedRegionIterator itr = other.iterate_committed_regions(); const CommittedMemoryRegion* rgn = itr.next(); while (rgn != NULL) { _committed_regions.add(*rgn); rgn = itr.next(); } ! return *this; } private: // The committed region contains the uncommitted region, subtract the uncommitted
*** 394,411 **** virtual bool do_allocation_site(const ReservedMemoryRegion* rgn) { return false; } }; // Main class called from MemTracker to track virtual memory allocations, commits and releases. class VirtualMemoryTracker : AllStatic { public: static bool initialize(NMT_TrackingLevel level); // Late phase initialization static bool late_initialize(NMT_TrackingLevel level); ! static bool add_reserved_region (address base_addr, size_t size, const NativeCallStack& stack, ! MEMFLAGS flag = mtNone, bool all_committed = false); static bool add_committed_region (address base_addr, size_t size, const NativeCallStack& stack); static bool remove_uncommitted_region (address base_addr, size_t size); static bool remove_released_region (address base_addr, size_t size); static void set_reserved_region_type (address addr, MEMFLAGS flag); --- 386,404 ---- virtual bool do_allocation_site(const ReservedMemoryRegion* rgn) { return false; } }; // Main class called from MemTracker to track virtual memory allocations, commits and releases. class VirtualMemoryTracker : AllStatic { + friend class VirtualMemoryTrackerTest; + public: static bool initialize(NMT_TrackingLevel level); // Late phase initialization static bool late_initialize(NMT_TrackingLevel level); ! static bool add_reserved_region (address base_addr, size_t size, const NativeCallStack& stack, MEMFLAGS flag = mtNone); static bool add_committed_region (address base_addr, size_t size, const NativeCallStack& stack); static bool remove_uncommitted_region (address base_addr, size_t size); static bool remove_released_region (address base_addr, size_t size); static void set_reserved_region_type (address addr, MEMFLAGS flag);
< prev index next >