X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fsgen%2Fsgen-memory-governor.h;h=81c02dab5bec904551c0c9aa6ba8954985ae4b85;hb=42874b6479cf103ca2e044b95c27a2edbb21d75c;hp=9bcd55b4d80ad157417567512f7363438029f468;hpb=6b139f4c98eb90bfb7e1285933fc682dae541cad;p=mono.git diff --git a/mono/sgen/sgen-memory-governor.h b/mono/sgen/sgen-memory-governor.h index 9bcd55b4d80..81c02dab5be 100644 --- a/mono/sgen/sgen-memory-governor.h +++ b/mono/sgen/sgen-memory-governor.h @@ -1,4 +1,5 @@ -/* +/** + * \file * Copyright 2001-2003 Ximian, Inc * Copyright 2003-2010 Novell, Inc. * @@ -14,15 +15,15 @@ gboolean sgen_memgov_try_alloc_space (mword size, int space); /* GC trigger heuristics */ void sgen_memgov_minor_collection_start (void); -void sgen_memgov_minor_collection_end (void); +void sgen_memgov_minor_collection_end (const char *reason, gboolean is_overflow); void sgen_memgov_major_pre_sweep (void); -void sgen_memgov_major_post_sweep (void); -void sgen_memgov_major_collection_start (void); -void sgen_memgov_major_collection_end (gboolean forced); +void sgen_memgov_major_post_sweep (mword used_slots_size); +void sgen_memgov_major_collection_start (gboolean concurrent, const char *reason); +void sgen_memgov_major_collection_end (gboolean forced, gboolean concurrent, const char *reason, gboolean is_overflow); void sgen_memgov_collection_start (int generation); -void sgen_memgov_collection_end (int generation, GGTimingInfo* info, int info_count); +void sgen_memgov_collection_end (int generation, gint64 stw); gboolean sgen_need_major_collection (mword space_needed); @@ -33,10 +34,30 @@ typedef enum { SGEN_ALLOC_ACTIVATE = 2 } SgenAllocFlags; +typedef enum { + SGEN_LOG_NURSERY, + SGEN_LOG_MAJOR_SERIAL, + SGEN_LOG_MAJOR_CONC_START, + SGEN_LOG_MAJOR_CONC_FINISH, + SGEN_LOG_MAJOR_SWEEP_FINISH +} SgenLogType; + +typedef struct { + SgenLogType type; + const char *reason; + gboolean is_overflow; + gint64 time; + mword promoted_size; + mword major_size; + mword major_size_in_use; + mword los_size; + mword los_size_in_use; +} SgenLogEntry; + /* OS memory allocation */ -void* sgen_alloc_os_memory (size_t size, SgenAllocFlags flags, const char *assert_description); -void* sgen_alloc_os_memory_aligned (size_t size, mword alignment, SgenAllocFlags flags, const char *assert_description); -void sgen_free_os_memory (void *addr, size_t size, SgenAllocFlags flags); +void* sgen_alloc_os_memory (size_t size, SgenAllocFlags flags, const char *assert_description, MonoMemAccountType type); +void* sgen_alloc_os_memory_aligned (size_t size, mword alignment, SgenAllocFlags flags, const char *assert_description, MonoMemAccountType type); +void sgen_free_os_memory (void *addr, size_t size, SgenAllocFlags flags, MonoMemAccountType type); /* Error handling */ void sgen_assert_memory_alloc (void *ptr, size_t requested_size, const char *assert_description);