< prev index next >

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

concurrent root iterator v2

concurrent root iterator

115 
116   // Page allocation                                                                                                                 
117   ZPage* alloc_page(uint8_t type, size_t size, ZAllocationFlags flags);                                                              
118   void undo_alloc_page(ZPage* page);                                                                                                 
119   bool retain_page(ZPage* page);                                                                                                     
120   void release_page(ZPage* page, bool reclaimed);                                                                                    
121 
122   // Object allocation                                                                                                               
123   uintptr_t alloc_tlab(size_t size);                                                                                                 
124   uintptr_t alloc_object(size_t size);                                                                                               
125   uintptr_t alloc_object_for_relocation(size_t size);                                                                                
126   void undo_alloc_object_for_relocation(uintptr_t addr, size_t size);                                                                
127   bool is_alloc_stalled() const;                                                                                                     
128   void check_out_of_memory();                                                                                                        
129 
130   // Marking                                                                                                                         
131   bool is_object_live(uintptr_t addr) const;                                                                                         
132   bool is_object_strongly_live(uintptr_t addr) const;                                                                                
133   template <bool finalizable, bool publish> void mark_object(uintptr_t addr);                                                        
134   void mark_start();                                                                                                                 
135   void mark();                                                                                                                       
136   void mark_flush_and_free(Thread* thread);                                                                                          
137   bool mark_end();                                                                                                                   
138 
139   // Post-marking & Pre-relocation                                                                                                   
140   void destroy_detached_pages();                                                                                                     
141 
142   // Relocation set                                                                                                                  
143   void select_relocation_set();                                                                                                      
144   void prepare_relocation_set();                                                                                                     
145   void reset_relocation_set();                                                                                                       
146 
147   // Relocation                                                                                                                      
148   bool is_relocating(uintptr_t addr) const;                                                                                          
149   void relocate_start();                                                                                                             
150   uintptr_t relocate_object(uintptr_t addr);                                                                                         
151   uintptr_t forward_object(uintptr_t addr);                                                                                          
152   void relocate();                                                                                                                   
153 
154   // Iteration                                                                                                                       

115 
116   // Page allocation
117   ZPage* alloc_page(uint8_t type, size_t size, ZAllocationFlags flags);
118   void undo_alloc_page(ZPage* page);
119   bool retain_page(ZPage* page);
120   void release_page(ZPage* page, bool reclaimed);
121 
122   // Object allocation
123   uintptr_t alloc_tlab(size_t size);
124   uintptr_t alloc_object(size_t size);
125   uintptr_t alloc_object_for_relocation(size_t size);
126   void undo_alloc_object_for_relocation(uintptr_t addr, size_t size);
127   bool is_alloc_stalled() const;
128   void check_out_of_memory();
129 
130   // Marking
131   bool is_object_live(uintptr_t addr) const;
132   bool is_object_strongly_live(uintptr_t addr) const;
133   template <bool finalizable, bool publish> void mark_object(uintptr_t addr);
134   void mark_start();
135   void mark(bool initial);
136   void mark_flush_and_free(Thread* thread);
137   bool mark_end();
138 
139   // Post-marking & Pre-relocation
140   void destroy_detached_pages();
141 
142   // Relocation set
143   void select_relocation_set();
144   void prepare_relocation_set();
145   void reset_relocation_set();
146 
147   // Relocation
148   bool is_relocating(uintptr_t addr) const;
149   void relocate_start();
150   uintptr_t relocate_object(uintptr_t addr);
151   uintptr_t forward_object(uintptr_t addr);
152   void relocate();
153 
154   // Iteration
< prev index next >