diff options
| author | Stefan Metzmacher <metze@samba.org> | 2014-11-05 15:54:02 +0100 |
|---|---|---|
| committer | Jeremy Allison <jra@samba.org> | 2014-11-19 20:51:37 +0100 |
| commit | 86a951b4ff9b3a1bbe03b3448d45f9750c949c00 (patch) | |
| tree | d5e7587700733208a1d5b1b885e6d51353af3fa7 /source3/include | |
| parent | 297d1877614b4f4f33f7e19f2d107feb5fe460ed (diff) | |
| download | samba-86a951b4ff9b3a1bbe03b3448d45f9750c949c00.tar.gz samba-86a951b4ff9b3a1bbe03b3448d45f9750c949c00.tar.xz samba-86a951b4ff9b3a1bbe03b3448d45f9750c949c00.zip | |
s3:smbd: improve writecache profiling
In order to have useful profiling counters should never be decremented.
We need a separate counter for deallocation events.
The current value can be calculated by allocations - deallocations.
We also use better names and avoid having an array for the flush reasons.
This will simplify further profiling improvements a lot.
The value writecache_num_write_caches (this was similar to writecache_allocations)
is replaced by writecache_cached_writes, which counts the amount of writes which
were completely handled by the cache.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/include')
| -rw-r--r-- | source3/include/smb.h | 3 | ||||
| -rw-r--r-- | source3/include/smbprofile.h | 22 |
2 files changed, 16 insertions, 9 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h index aab4ff5396..53d3edc60f 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -819,7 +819,6 @@ enum flush_reason_enum { SAMBA_CLOSE_FLUSH, SAMBA_SYNC_FLUSH, SAMBA_SIZECHANGE_FLUSH, - /* NUM_FLUSH_REASONS must remain the last value in the enumeration. */ - SAMBA_NUM_FLUSH_REASONS}; +}; #endif /* _SMB_H */ diff --git a/source3/include/smbprofile.h b/source3/include/smbprofile.h index 1afd97c163..26a2ed190d 100644 --- a/source3/include/smbprofile.h +++ b/source3/include/smbprofile.h @@ -789,16 +789,24 @@ struct profile_stats { unsigned statcache_hits; /* write cache counters */ - unsigned writecache_read_hits; - unsigned writecache_abutted_writes; + unsigned writecache_allocations; + unsigned writecache_deallocations; + unsigned writecache_cached_reads; unsigned writecache_total_writes; + unsigned writecache_init_writes; + unsigned writecache_abutted_writes; unsigned writecache_non_oplock_writes; unsigned writecache_direct_writes; - unsigned writecache_init_writes; - unsigned writecache_flushed_writes[SAMBA_NUM_FLUSH_REASONS]; - unsigned writecache_num_perfect_writes; - unsigned writecache_num_write_caches; - unsigned writecache_allocated_write_caches; + unsigned writecache_cached_writes; + unsigned writecache_perfect_writes; + unsigned writecache_flush_reason_seek; + unsigned writecache_flush_reason_read; + unsigned writecache_flush_reason_readraw; + unsigned writecache_flush_reason_write; + unsigned writecache_flush_reason_oplock; + unsigned writecache_flush_reason_close; + unsigned writecache_flush_reason_sync; + unsigned writecache_flush_reason_sizechange; }; extern struct profile_stats *profile_p; |
