< prev index next > src/hotspot/share/gc/epsilon/epsilonHeap.hpp
Print this page
#define SHARE_GC_EPSILON_EPSILONHEAP_HPP
#include "gc/epsilon/epsilonBarrierSet.hpp"
#include "gc/epsilon/epsilonMonitoringSupport.hpp"
#include "gc/shared/collectedHeap.hpp"
+ #include "gc/shared/markBitMap.hpp"
#include "gc/shared/space.hpp"
#include "memory/virtualspace.hpp"
#include "services/memoryManager.hpp"
class EpsilonHeap : public CollectedHeap {
size_t _step_counter_update;
size_t _step_heap_print;
int64_t _decay_time_ns;
volatile size_t _last_counter_update;
volatile size_t _last_heap_print;
+ MemRegion _bitmap_region;
+ MarkBitMap _bitmap;
void print_tracing_info() const override;
void stop() override {};
public:
bool requires_barriers(stackChunkOop obj) const override { return false; }
// Allocation
HeapWord* allocate_work(size_t size, bool verbose = true);
+ HeapWord* allocate_or_collect_work(size_t size, bool verbose = true);
HeapWord* mem_allocate(size_t size) override;
HeapWord* allocate_new_tlab(size_t min_size,
size_t requested_size,
size_t* actual_size) override;
// Heap walking support
void object_iterate(ObjectClosure* cl) override;
// Object pinning support: every object is implicitly pinned
- void pin_object(JavaThread* thread, oop obj) override { }
- void unpin_object(JavaThread* thread, oop obj) override { }
+ void pin_object(JavaThread* thread, oop obj) override;
+ void unpin_object(JavaThread* thread, oop obj) override;
// No support for block parsing.
HeapWord* block_start(const void* addr) const { return nullptr; }
bool block_is_obj(const HeapWord* addr) const { return false; }
void print_heap_on(outputStream* st) const override;
void print_gc_on(outputStream* st) const override {}
bool print_location(outputStream* st, void* addr) const override;
+ void entry_collect(GCCause::Cause cause);
+
private:
void print_heap_info(size_t used) const;
void print_metaspace_info() const;
+ void vmentry_collect(GCCause::Cause cause);
+
+ void process_roots(OopClosure* cl, bool update);
+ void walk_bitmap(ObjectClosure* cl);
+
};
#endif // SHARE_GC_EPSILON_EPSILONHEAP_HPP
< prev index next >