[NTOSKRNL] Bug fix: lazy write more often.
authorPierre Schweitzer <pierre@reactos.org>
Tue, 23 Jan 2018 20:36:19 +0000 (21:36 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Tue, 23 Jan 2018 22:25:26 +0000 (23:25 +0100)
CcDirtyPageThreshold is not here to compute when you have to write,
but to know where you have to deny writes.
More commits to come in that direction!

CORE-14235

ntoskrnl/cc/view.c

index 8fb7f53..0d1822c 100644 (file)
@@ -326,23 +326,18 @@ CciLazyWriter(PVOID Unused)
         /* We're not sleeping anymore */
         KeClearEvent(&iLazyWriterNotify);
 
-        /* Only start operations if above threshold */
-        DPRINT("TS: %lu, Count: %lu\n", CcDirtyPageThreshold, CcTotalDirtyPages);
-        if (CcTotalDirtyPages > CcDirtyPageThreshold)
+        /* Our target is one-eighth of the dirty pages */
+        Target = CcTotalDirtyPages / 8;
+        if (Target != 0)
         {
-            /* Our target is one-eighth of the dirty pages */
-            Target = CcTotalDirtyPages / 8;
-            if (Target != 0)
-            {
-                /* Flush! */
-                DPRINT("Lazy writer starting (%d)\n", Target);
-                CcRosFlushDirtyPages(Target, &Count, FALSE, TRUE);
-
-                /* And update stats */
-                CcLazyWritePages += Count;
-                ++CcLazyWriteIos;
-                DPRINT("Lazy writer done (%d)\n", Count);
-            }
+            /* Flush! */
+            DPRINT("Lazy writer starting (%d)\n", Target);
+            CcRosFlushDirtyPages(Target, &Count, FALSE, TRUE);
+
+            /* And update stats */
+            CcLazyWritePages += Count;
+            ++CcLazyWriteIos;
+            DPRINT("Lazy writer done (%d)\n", Count);
         }
 
         /* Inform people waiting on us that we're done */