Windows: Set dirty page limit to 2 x ChunkSize / 4096
authorJeffrey Altman <jaltman@your-file-system.com>
Thu, 17 Jan 2013 06:42:54 +0000 (01:42 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Sat, 2 Feb 2013 17:12:00 +0000 (09:12 -0800)
4096 is the size of a memory manager page.  ChunkSize is in octets.
Windows doesn't wait until the limit is reached to begin flushing
and ChunkSize is not a hard limit.

Change-Id: Ic1d5dda18eefbf309696b8a19ef5623248f54faf
Reviewed-on: http://gerrit.openafs.org/8965
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

src/WINNT/afsrdr/kernel/lib/AFSRead.cpp
src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp

index c9258d3..b3565d2 100644 (file)
@@ -1152,7 +1152,7 @@ AFSCommonRead( IN PDEVICE_OBJECT DeviceObject,
                                                pDeviceExt->Specific.RDR.MaximumRPCLength);
 
                     CcSetDirtyPageThreshold( pFileObject,
-                                             AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength);
+                                             AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength / 4096);
                 }
                 __except( EXCEPTION_EXECUTE_HANDLER)
                 {
index b6ce79c..083f0bb 100644 (file)
@@ -373,7 +373,7 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject,
                                                    pDeviceExt->Specific.RDR.MaximumRPCLength);
 
                         CcSetDirtyPageThreshold( pFileObject,
-                                                 AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength);
+                                                 AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength / 4096);
                     }
                     __except( EXCEPTION_EXECUTE_HANDLER)
                     {