const AFS_XSTATSCOLL_CALL_INFO = 0; /*FS call counting & info*/
const AFS_XSTATSCOLL_PERF_INFO = 1; /*FS performance info*/
const AFS_XSTATSCOLL_FULL_PERF_INFO = 2; /*Full FS performance info*/
+const AFS_XSTATSCOLL_CBSTATS = 3; /*Callback package counters */
typedef afs_uint32 VolumeId;
typedef afs_uint32 VolId;
#endif
break;
+ case AFS_XSTATSCOLL_CBSTATS:
+ afs_perfstats.numPerfCalls++;
+
+ dataBytes = sizeof(struct cbcounters);
+ dataBuffP = (afs_int32 *) malloc(dataBytes);
+ {
+ extern struct cbcounters cbstuff;
+ dataBuffP[0]=cbstuff.DeleteFiles;
+ dataBuffP[1]=cbstuff.DeleteCallBacks;
+ dataBuffP[2]=cbstuff.BreakCallBacks;
+ dataBuffP[3]=cbstuff.AddCallBacks;
+ dataBuffP[4]=cbstuff.GotSomeSpaces;
+ dataBuffP[5]=cbstuff.DeleteAllCallBacks;
+ dataBuffP[6]=cbstuff.nFEs;
+ dataBuffP[7]=cbstuff.nCBs;
+ dataBuffP[8]=cbstuff.nblks;
+ dataBuffP[9]=cbstuff.CBsTimedOut;
+ dataBuffP[10]=cbstuff.nbreakers;
+ dataBuffP[11]=cbstuff.GSS1;
+ dataBuffP[12]=cbstuff.GSS2;
+ dataBuffP[13]=cbstuff.GSS3;
+ dataBuffP[14]=cbstuff.GSS4;
+ dataBuffP[15]=cbstuff.GSS5;
+ }
+
+ a_dataP->AFS_CollData_len = dataBytes >> 2;
+ a_dataP->AFS_CollData_val = dataBuffP;
+ break;
+
+
default:
/*
* Illegal collection number.
PrintOverallPerfInfo(perfP);
}
+static char *CbCounterStrings[] = {
+ "DeleteFiles",
+ "DeleteCallBacks",
+ "BreakCallBacks",
+ "AddCallBack",
+ "GotSomeSpaces",
+ "DeleteAllCallBacks",
+ "nFEs", "nCBs", "nblks",
+ "CBsTimedOut",
+ "nbreakers",
+ "GSS1", "GSS2", "GSS3", "GSS4", "GSS5"
+};
+
+
+void
+PrintCbCounters() {
+ int numInt32s = sizeof(CbCounterStrings)/sizeof(char *);
+ int i;
+ afs_uint32 *val=xstat_fs_Results.data.AFS_CollData_val;
+
+ if (numInt32s > xstat_fs_Results.data.AFS_CollData_len)
+ numInt32s = xstat_fs_Results.data.AFS_CollData_len;
+
+ for (i=0; i<numInt32s; i++) {
+ printf("\t%10u %s\n", val[i], CbCounterStrings[i]);
+ }
+}
+
/*------------------------------------------------------------------------
* FS_Handler
PrintFullPerfInfo();
break;
+ case AFS_XSTATSCOLL_CBSTATS:
+ PrintCbCounters();
+ break;
+
default:
printf("** Unknown collection: %d\n",
xstat_fs_Results.collectionNumber);