]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-fs-memdump-20070919
authorJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 20 Sep 2007 04:55:42 +0000 (04:55 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 20 Sep 2007 04:55:42 +0000 (04:55 +0000)
add directory lookup stats to "fs memdump" output

(cherry picked from commit 87d87d33ea0b38cfa11ded288e6c24a1db7f13b1)

src/WINNT/afsd/afsd_service.c
src/WINNT/afsd/cm_btree.c
src/WINNT/afsd/cm_btree.h
src/WINNT/afsd/cm_dir.c
src/WINNT/afsd/cm_dir.h
src/WINNT/afsd/cm_ioctl.c

index ea3fdd4799e3758ac5f350d28a427d0620f30164..30e81d8b21ac7e5c9cef89575c04aea46b685eb5 100644 (file)
@@ -76,6 +76,8 @@ static void afsd_notifier(char *msgp, char *filep, long line)
     buf_ForceTrace(TRUE);
 
     afsi_log("--- begin dump ---");
+    cm_MemDumpDirStats(afsi_file, "a", 0);
+    cm_MemDumpBPlusStats(afsi_file, "a", 0);
     cm_DumpCells(afsi_file, "a", 0);
     cm_DumpVolumes(afsi_file, "a", 0);
     cm_DumpSCache(afsi_file, "a", 0);
index 240ccf8502dd433a7e0e9137f63347ae63cbcc96..26128eb98770281df434cc0a10b1c8d51da759c5 100644 (file)
@@ -1743,6 +1743,44 @@ long cm_BPlusDirBuildTree(cm_scache_t *scp, cm_user_t *userp, cm_req_t* reqp)
     return rc;
 }
 
+int cm_MemDumpBPlusStats(FILE *outputFile, char *cookie, int lock)
+{
+    int zilch;
+    char output[128];
+
+    sprintf(output, "%s - B+ Lookup    Hits: %-8d\r\n", cookie, bplus_lookup_hits);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -      Inexact Hits: %-8d\r\n", cookie, bplus_lookup_hits_inexact);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -    Ambiguous Hits: %-8d\r\n", cookie, bplus_lookup_ambiguous);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Misses: %-8d\r\n", cookie, bplus_lookup_misses);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Create: %-8d\r\n", cookie, bplus_create_entry);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Remove: %-8d\r\n", cookie, bplus_remove_entry);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -        Build Tree: %-8d\r\n", cookie, bplus_build_tree);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -         Free Tree: %-8d\r\n", cookie, bplus_free_tree);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -          DV Error: %-8d\r\n", cookie, bplus_dv_error);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+
+    sprintf(output, "%s - B+ Time    Lookup: %-16I64d\r\n", cookie, bplus_lookup_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Create: %-16I64d\r\n", cookie, bplus_create_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Remove: %-16I64d\r\n", cookie, bplus_remove_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -             Build: %-16I64d\r\n", cookie, bplus_build_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -              Free: %-16I64d\r\n", cookie, bplus_free_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+
+    return(0);
+}
+
 void cm_BPlusDumpStats(void)
 {
     afsi_log("B+ Lookup    Hits: %-8d", bplus_lookup_hits);
index 6412f3c0aea39cb9a0643ded66271012d8e8e00f..b157e58c1b5f79afda7736442ed89b137f81a086 100644 (file)
@@ -143,6 +143,7 @@ long cm_BPlusDirCreateEntry(cm_dirOp_t * op, char *entry, cm_fid_t * cfid);
 int  cm_BPlusDirDeleteEntry(cm_dirOp_t * op, char *entry);
 long cm_BPlusDirBuildTree(cm_scache_t *scp, cm_user_t *userp, cm_req_t* reqp);
 void cm_BPlusDumpStats(void);
+int cm_MemDumpBPlusStats(FILE *outputFile, char *cookie, int lock);
 
 extern afs_uint32 bplus_free_tree;
 extern afs_uint32 bplus_dv_error;
index cb7fd4aa7739549a8419dcd8631dce1ad173ea70..fa05827dee1b57d73b15bcd83ff0e2ba8f783664 100644 (file)
@@ -38,6 +38,32 @@ afs_uint64 dir_enums = 0;
 
 afs_int32  cm_BPlusTrees = 1;
 
+int cm_MemDumpDirStats(FILE *outputFile, char *cookie, int lock)
+{
+    int zilch;
+    char output[128];
+
+    sprintf(output, "%s - Dir Lookup   Hits: %-8d\r\n", cookie, dir_lookup_hits);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Misses: %-8d\r\n", cookie, dir_lookup_misses);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -             Enums: %-8d\r\n", cookie, dir_enums);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Create: %-8d\r\n", cookie, dir_create_entry);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Remove: %-8d\r\n", cookie, dir_remove_entry);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+
+    sprintf(output, "%s - Dir Times  Lookup: %-16I64d\r\n", cookie, dir_lookup_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Create: %-16I64d\r\n", cookie, dir_create_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+    sprintf(output, "%s -            Remove: %-16I64d\r\n", cookie, dir_remove_time);
+    WriteFile(outputFile, output, (DWORD)strlen(output), &zilch, NULL);
+
+    return(0);
+}
+
 void cm_DirDumpStats(void)
 {
     afsi_log("Dir Lookup   Hits: %-8d", dir_lookup_hits);
index 3a337c2ef7c9b2bbac6a740b3b2be39f3ae8fb83..37fe27f98fad7eb501d5eb84272224bff47882e2 100644 (file)
@@ -183,5 +183,8 @@ cm_DirEntryListFree(cm_dirEntryList_t ** list);
 extern void
 cm_DirDumpStats(void);
 
+extern int
+cm_MemDumpDirStats(FILE *outputFile, char *cookie, int lock);
+
 extern afs_int64 dir_enums;
 #endif /*  __CM_DIR_ENV__ */
index 9d9ab25ff80cc112f01b63098785290dff320919..7ad6ffd23e16c5ead1427322d3434ad3950d6ba6 100644 (file)
@@ -2756,6 +2756,8 @@ long cm_IoctlMemoryDump(struct smb_ioctl *ioctlp, struct cm_user *userp)
 #endif
   
     /* dump all interesting data */
+    cm_MemDumpDirStats(hLogFile, cookie, 1);
+    cm_MemDumpBPlusStats(hLogFile, cookie, 1);
     cm_DumpCells(hLogFile, cookie, 1);
     cm_DumpVolumes(hLogFile, cookie, 1);
     cm_DumpSCache(hLogFile, cookie, 1);