diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-12-03 16:58:57 -0500 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-12-03 16:58:57 -0500 |
| commit | 4498eed50a114565debd38f173acd62cce6e7cb8 (patch) | |
| tree | 8a94482e9a7b98bb32aab518a0fce74075eabd2f | |
| parent | 84afc29b185334f489975a003b128e1b15e24a54 (diff) | |
[CIFS] Add extended stats (STATS2) for total buffer allocations for
better performance debugging.
Signed-off-by: Steve French <sfrench@us.ibm.com>
| -rw-r--r-- | fs/cifs/cifs_debug.c | 4 | ||||
| -rw-r--r-- | fs/cifs/cifsfs.c | 6 | ||||
| -rw-r--r-- | fs/cifs/cifsglob.h | 8 | ||||
| -rw-r--r-- | fs/cifs/misc.c | 7 |
4 files changed, 23 insertions, 2 deletions
diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c index 22a444a3fe4c..7f19f2547d01 100644 --- a/fs/cifs/cifs_debug.c +++ b/fs/cifs/cifs_debug.c | |||
| @@ -219,6 +219,10 @@ cifs_stats_write(struct file *file, const char __user *buffer, | |||
| 219 | 219 | ||
| 220 | if (c == '1' || c == 'y' || c == 'Y' || c == '0') { | 220 | if (c == '1' || c == 'y' || c == 'Y' || c == '0') { |
| 221 | read_lock(&GlobalSMBSeslock); | 221 | read_lock(&GlobalSMBSeslock); |
| 222 | #ifdef CONFIG_CIFS_STATS2 | ||
| 223 | atomic_set(&totBufAllocCount, 0); | ||
| 224 | atomic_set(&totSmBufAllocCount, 0); | ||
| 225 | #endif /* CONFIG_CIFS_STATS2 */ | ||
| 222 | list_for_each(tmp, &GlobalTreeConnectionList) { | 226 | list_for_each(tmp, &GlobalTreeConnectionList) { |
| 223 | tcon = list_entry(tmp, struct cifsTconInfo, | 227 | tcon = list_entry(tmp, struct cifsTconInfo, |
| 224 | cifsConnectionList); | 228 | cifsConnectionList); |
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 2a13a2bac8f1..ba90903909a6 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
| @@ -954,6 +954,12 @@ init_cifs(void) | |||
| 954 | atomic_set(&tconInfoReconnectCount, 0); | 954 | atomic_set(&tconInfoReconnectCount, 0); |
| 955 | 955 | ||
| 956 | atomic_set(&bufAllocCount, 0); | 956 | atomic_set(&bufAllocCount, 0); |
| 957 | atomic_set(&smBufAllocCount, 0); | ||
| 958 | #ifdef CONFIG_CIFS_STATS2 | ||
| 959 | atomic_set(&totBufAllocCount, 0); | ||
| 960 | atomic_set(&totSmBufAllocCount, 0); | ||
| 961 | #endif /* CONFIG_CIFS_STATS2 */ | ||
| 962 | |||
| 957 | atomic_set(&midCount, 0); | 963 | atomic_set(&midCount, 0); |
| 958 | GlobalCurrentXid = 0; | 964 | GlobalCurrentXid = 0; |
| 959 | GlobalTotalActiveXid = 0; | 965 | GlobalTotalActiveXid = 0; |
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index 1ba08f8c5bc4..c011c278af4c 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
| @@ -505,8 +505,12 @@ GLOBAL_EXTERN atomic_t tcpSesReconnectCount; | |||
| 505 | GLOBAL_EXTERN atomic_t tconInfoReconnectCount; | 505 | GLOBAL_EXTERN atomic_t tconInfoReconnectCount; |
| 506 | 506 | ||
| 507 | /* Various Debug counters to remove someday (BB) */ | 507 | /* Various Debug counters to remove someday (BB) */ |
| 508 | GLOBAL_EXTERN atomic_t bufAllocCount; | 508 | GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */ |
| 509 | GLOBAL_EXTERN atomic_t smBufAllocCount; | 509 | #ifdef CONFIG_CIFS_STATS2 |
| 510 | GLOBAL_EXTERN atomic_t totBufAllocCount; /* total allocated over all time */ | ||
| 511 | GLOBAL_EXTERN atomic_t totSmBufAllocCount; | ||
| 512 | #endif | ||
| 513 | GLOBAL_EXTERN atomic_t smBufAllocCount; | ||
| 510 | GLOBAL_EXTERN atomic_t midCount; | 514 | GLOBAL_EXTERN atomic_t midCount; |
| 511 | 515 | ||
| 512 | /* Misc globals */ | 516 | /* Misc globals */ |
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 9af37f864688..ac5a72a299a3 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c | |||
| @@ -161,6 +161,9 @@ cifs_buf_get(void) | |||
| 161 | if (ret_buf) { | 161 | if (ret_buf) { |
| 162 | memset(ret_buf, 0, sizeof(struct smb_hdr) + 3); | 162 | memset(ret_buf, 0, sizeof(struct smb_hdr) + 3); |
| 163 | atomic_inc(&bufAllocCount); | 163 | atomic_inc(&bufAllocCount); |
| 164 | #ifdef CONFIG_CIFS_STATS2 | ||
| 165 | atomic_inc(&totBufAllocCount); | ||
| 166 | #endif /* CONFIG_CIFS_STATS2 */ | ||
| 164 | } | 167 | } |
| 165 | 168 | ||
| 166 | return ret_buf; | 169 | return ret_buf; |
| @@ -195,6 +198,10 @@ cifs_small_buf_get(void) | |||
| 195 | /* No need to clear memory here, cleared in header assemble */ | 198 | /* No need to clear memory here, cleared in header assemble */ |
| 196 | /* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/ | 199 | /* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/ |
| 197 | atomic_inc(&smBufAllocCount); | 200 | atomic_inc(&smBufAllocCount); |
| 201 | #ifdef CONFIG_CIFS_STATS2 | ||
| 202 | atomic_inc(&totSmBufAllocCount); | ||
| 203 | #endif /* CONFIG_CIFS_STATS2 */ | ||
| 204 | |||
| 198 | } | 205 | } |
| 199 | return ret_buf; | 206 | return ret_buf; |
| 200 | } | 207 | } |
