Merge pull request #5021 from BrzVlad/fix-parallel-fixes
[mono.git] / mono / sgen / sgen-conf.h
index 64bdac2f8a9ea8fe123e85694e6955e9f03cd669..f6738e4d6eb9d34232ecfb23c729eb97266808cf 100644 (file)
@@ -204,4 +204,25 @@ typedef mword SgenDescriptor;
 #define SGEN_CEMENT_HASH(hv)   (((hv) ^ ((hv) >> SGEN_CEMENT_HASH_SHIFT)) & (SGEN_CEMENT_HASH_SIZE - 1))
 #define SGEN_CEMENT_THRESHOLD  1000
 
+/*
+ * Default values for the nursery size
+ */
+#define SGEN_DEFAULT_NURSERY_MIN_SIZE  (1 << 19)
+#define SGEN_DEFAULT_NURSERY_SIZE      (1 << 22)
+#define SGEN_DEFAULT_NURSERY_MAX_SIZE  (1 << 25)
+
+/*
+ * We are trying to keep pauses lower than this (ms). We use it for dynamic nursery
+ * sizing heuristics. We are keeping leeway in order to be prepared for work-load
+ * variations.
+ */
+#define SGEN_MAX_PAUSE_TIME 30
+#define SGEN_MAX_PAUSE_MARGIN 0.66f
+
+/*
+ * In practice, for nurseries smaller than this, the parallel minor tends to be
+ * ineffective, even leading to regressions. Avoid using it for smaller nurseries.
+ */
+#define SGEN_PARALLEL_MINOR_MIN_NURSERY_SIZE (1 << 24)
+
 #endif