From: Rainer Toebbicke Date: Thu, 9 Mar 2006 16:28:59 +0000 (+0000) Subject: STABLE14-xstat-fs-callbacks-20060309 X-Git-Tag: openafs-stable-1_4_1-rc10~14 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ed422b3da000fccb15ab47a113c5fdf0e1eaecdb;p=packages%2Fo%2Fopenafs.git STABLE14-xstat-fs-callbacks-20060309 FIXES 27912 add new collection with callback stats (cherry picked from commit cc324ae0653a7d2170a065f61b8475d76cdf03c1) --- diff --git a/src/fsint/common.xg b/src/fsint/common.xg index 88da5555f..7d8f6751e 100644 --- a/src/fsint/common.xg +++ b/src/fsint/common.xg @@ -127,6 +127,7 @@ const AFSCB_XSTATSCOLL_FULL_PERF_INFO = 2; /*CM performance info*/ 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; diff --git a/src/viced/afsfileprocs.c b/src/viced/afsfileprocs.c index df639c27f..561cab8ea 100644 --- a/src/viced/afsfileprocs.c +++ b/src/viced/afsfileprocs.c @@ -5950,6 +5950,36 @@ SRXAFS_GetXStats(struct rx_call *a_call, afs_int32 a_clientVersionNum, #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. diff --git a/src/xstat/xstat_fs_test.c b/src/xstat/xstat_fs_test.c index e3e00d151..b0f111959 100644 --- a/src/xstat/xstat_fs_test.c +++ b/src/xstat/xstat_fs_test.c @@ -494,6 +494,34 @@ PrintPerfInfo() 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