< prev index next >

src/hotspot/share/gc/z/zPageAllocator.hpp

Print this page




  46   const size_t             _max_reserve;
  47   ZPreMappedMemory         _pre_mapped;
  48   size_t                   _used_high;
  49   size_t                   _used_low;
  50   size_t                   _used;
  51   size_t                   _allocated;
  52   ssize_t                  _reclaimed;
  53   ZList<ZPageAllocRequest> _queue;
  54   ZList<ZPage>             _detached;
  55 
  56   static ZPage* const      gc_marker;
  57 
  58   void increase_used(size_t size, bool relocation);
  59   void decrease_used(size_t size, bool reclaimed);
  60 
  61   size_t max_available(bool no_reserve) const;
  62   size_t try_ensure_unused(size_t size, bool no_reserve);
  63   size_t try_ensure_unused_for_pre_mapped(size_t size);
  64 
  65   ZPage* create_page(uint8_t type, size_t size);
  66   void map_page(ZPage* page);
  67   void detach_page(ZPage* page);
  68   void flush_pre_mapped();
  69   void flush_cache(size_t size);
  70 
  71   void check_out_of_memory_during_initialization();
  72 
  73   ZPage* alloc_page_common_inner(uint8_t type, size_t size, ZAllocationFlags flags);
  74   ZPage* alloc_page_common(uint8_t type, size_t size, ZAllocationFlags flags);
  75   ZPage* alloc_page_blocking(uint8_t type, size_t size, ZAllocationFlags flags);
  76   ZPage* alloc_page_nonblocking(uint8_t type, size_t size, ZAllocationFlags flags);
  77 
  78   void satisfy_alloc_queue();
  79 
  80   void detach_memory(const ZVirtualMemory& vmem, ZPhysicalMemory& pmem);
  81 
  82 public:
  83   ZPageAllocator(size_t min_capacity, size_t max_capacity, size_t max_reserve);
  84 
  85   bool is_initialized() const;
  86 
  87   size_t max_capacity() const;
  88   size_t current_max_capacity() const;
  89   size_t capacity() const;
  90   size_t max_reserve() const;
  91   size_t used_high() const;
  92   size_t used_low() const;
  93   size_t used() const;
  94   size_t allocated() const;
  95   size_t reclaimed() const;
  96 
  97   void reset_statistics();
  98 
  99   ZPage* alloc_page(uint8_t type, size_t size, ZAllocationFlags flags);
 100   void flip_page(ZPage* page);
 101   void free_page(ZPage* page, bool reclaimed);
 102   void destroy_page(ZPage* page);
 103 
 104   void flush_detached_pages(ZList<ZPage>* list);

 105 
 106   void flip_pre_mapped();
 107 
 108   bool is_alloc_stalled() const;
 109   void check_out_of_memory();
 110 };
 111 
 112 #endif // SHARE_GC_Z_ZPAGEALLOCATOR_HPP


  46   const size_t             _max_reserve;
  47   ZPreMappedMemory         _pre_mapped;
  48   size_t                   _used_high;
  49   size_t                   _used_low;
  50   size_t                   _used;
  51   size_t                   _allocated;
  52   ssize_t                  _reclaimed;
  53   ZList<ZPageAllocRequest> _queue;
  54   ZList<ZPage>             _detached;
  55 
  56   static ZPage* const      gc_marker;
  57 
  58   void increase_used(size_t size, bool relocation);
  59   void decrease_used(size_t size, bool reclaimed);
  60 
  61   size_t max_available(bool no_reserve) const;
  62   size_t try_ensure_unused(size_t size, bool no_reserve);
  63   size_t try_ensure_unused_for_pre_mapped(size_t size);
  64 
  65   ZPage* create_page(uint8_t type, size_t size);

  66   void detach_page(ZPage* page);
  67   void flush_pre_mapped();
  68   void flush_cache(size_t size);
  69 
  70   void check_out_of_memory_during_initialization();
  71 
  72   ZPage* alloc_page_common_inner(uint8_t type, size_t size, ZAllocationFlags flags);
  73   ZPage* alloc_page_common(uint8_t type, size_t size, ZAllocationFlags flags);
  74   ZPage* alloc_page_blocking(uint8_t type, size_t size, ZAllocationFlags flags);
  75   ZPage* alloc_page_nonblocking(uint8_t type, size_t size, ZAllocationFlags flags);
  76 
  77   void satisfy_alloc_queue();
  78 
  79   void detach_memory(const ZVirtualMemory& vmem, ZPhysicalMemory& pmem);
  80 
  81 public:
  82   ZPageAllocator(size_t min_capacity, size_t max_capacity, size_t max_reserve);
  83 
  84   bool is_initialized() const;
  85 
  86   size_t max_capacity() const;
  87   size_t current_max_capacity() const;
  88   size_t capacity() const;
  89   size_t max_reserve() const;
  90   size_t used_high() const;
  91   size_t used_low() const;
  92   size_t used() const;
  93   size_t allocated() const;
  94   size_t reclaimed() const;
  95 
  96   void reset_statistics();
  97 
  98   ZPage* alloc_page(uint8_t type, size_t size, ZAllocationFlags flags);

  99   void free_page(ZPage* page, bool reclaimed);
 100   void destroy_page(ZPage* page);
 101 
 102   void map_page(ZPage* page);
 103   void unmap_all_pages();
 104 
 105   void flush_detached_pages(ZList<ZPage>* list);
 106 
 107   bool is_alloc_stalled() const;
 108   void check_out_of_memory();
 109 };
 110 
 111 #endif // SHARE_GC_Z_ZPAGEALLOCATOR_HPP
< prev index next >