In-progress work on better cache flushing.
[bluesky.git] / bluesky / init.c
index 0feb0f5..eb2515c 100644 (file)
@@ -19,6 +19,19 @@ BlueSkyOptions bluesky_options;
  * limit */
 int bluesky_max_threads = 16;
 
+/* Watermark levels for cache tuning: these control when dirty data is flushed
+ * from cache, when clean data is dropped from the cache, etc.  These values
+ * are measured in blocks, not bytes.
+ *
+ * There are a few relevant levels:
+ *   low: Below this point, data is not forced out due to memory pressure
+ *   medium: At this point start flushing data to get back below medium
+ *   high: Flush data very aggressively (launch extra tasks if needed)
+ */
+int bluesky_watermark_low_dirty    = (64 << 20) / BLUESKY_BLOCK_SIZE;
+int bluesky_watermark_medium_dirty = (96 << 20) / BLUESKY_BLOCK_SIZE;
+int bluesky_watermark_high_dirty   = (192 << 20) / BLUESKY_BLOCK_SIZE;
+
 /* Environment variables that can be used to initialize settings. */
 static struct {
     const char *env;