[NTOSKRNL] Add the CcPinReadWait and CcPinReadNoWait counters
authorPierre Schweitzer <pierre@reactos.org>
Sat, 24 Feb 2018 12:47:15 +0000 (13:47 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Sat, 24 Feb 2018 13:52:04 +0000 (14:52 +0100)
ntoskrnl/cc/pin.c
ntoskrnl/ex/sysinfo.c
ntoskrnl/include/internal/cc.h

index 07afd18..20b4096 100644 (file)
@@ -21,9 +21,13 @@ extern NPAGED_LOOKASIDE_LIST iBcbLookasideList;
 /* Counters:
  * - Number of calls to CcMapData that could wait
  * - Number of calls to CcMapData that couldn't wait
+ * - Number of calls to CcPinRead that could wait
+ * - Number of calls to CcPinRead that couldn't wait
  */
 ULONG CcMapDataWait = 0;
 ULONG CcMapDataNoWait = 0;
+ULONG CcPinReadWait = 0;
+ULONG CcPinReadNoWait = 0;
 
 /* FUNCTIONS *****************************************************************/
 
@@ -192,6 +196,15 @@ CcPinRead (
     CCTRACE(CC_API_DEBUG, "FileOffset=%p FileOffset=%p Length=%lu Flags=0x%lx\n",
         FileObject, FileOffset, Length, Flags);
 
+    if (Flags & PIN_WAIT)
+    {
+        ++CcPinReadWait;
+    }
+    else
+    {
+        ++CcPinReadNoWait;
+    }
+
     if (CcMapData(FileObject, FileOffset, Length, Flags, Bcb, Buffer))
     {
         if (CcPinMappedData(FileObject, FileOffset, Length, Flags, Bcb))
index 59c6d26..4db50e5 100644 (file)
@@ -693,8 +693,8 @@ QSI_DEF(SystemPerformanceInformation)
     Spi->CcMapDataWaitMiss = 0; /* FIXME */
 
     Spi->CcPinMappedDataCount = 0; /* FIXME */
-    Spi->CcPinReadNoWait = 0; /* FIXME */
-    Spi->CcPinReadWait = 0; /* FIXME */
+    Spi->CcPinReadNoWait = CcPinReadNoWait;
+    Spi->CcPinReadWait = CcPinReadWait;
     Spi->CcPinReadNoWaitMiss = 0; /* FIXME */
     Spi->CcPinReadWaitMiss = 0; /* FIXME */
     Spi->CcCopyReadNoWait = 0; /* FIXME */
index c404cd9..32caa55 100644 (file)
@@ -60,6 +60,8 @@ extern ULONG CcLazyWritePages;
 extern ULONG CcLazyWriteIos;
 extern ULONG CcMapDataWait;
 extern ULONG CcMapDataNoWait;
+extern ULONG CcPinReadWait;
+extern ULONG CcPinReadNoWait;
 
 typedef struct _PF_SCENARIO_ID
 {