mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 21:47:45 +00:00
STABLE14-xstat-fs-callbacks-20060309
FIXES 27912 add new collection with callback stats (cherry picked from commit cc324ae0653a7d2170a065f61b8475d76cdf03c1)
This commit is contained in:
parent
12c964ea9d
commit
ed422b3da0
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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<numInt32s; i++) {
|
||||
printf("\t%10u %s\n", val[i], CbCounterStrings[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
* FS_Handler
|
||||
@ -550,6 +578,10 @@ FS_Handler()
|
||||
PrintFullPerfInfo();
|
||||
break;
|
||||
|
||||
case AFS_XSTATSCOLL_CBSTATS:
|
||||
PrintCbCounters();
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("** Unknown collection: %d\n",
|
||||
xstat_fs_Results.collectionNumber);
|
||||
|
Loading…
x
Reference in New Issue
Block a user