The branch, master has been updated via 553b83c s3:smbprofile: profile async pread/pwrite/fsync syscalls via 185c6fe s3:smbprofile: track connect_count and disconnect_count via 970b00e s3:smbprofile: remove unused {START,END}_PROFILE_STAMP() via 487556e s3:smbprofile: report idle state of 'idle_count' and 'idle_time' via 49f84f0 s3:smbprofile: improve profiling for the security context switching. via e007c60 s3:smbprofile: count all SMB1 and SMB2 requests as 'request_count' via 0b0ac41 s3:smb2_server: use async smbprofile macros via cee1b4b s3:smbprofile: rewrite the internal macros via 9813f56 s3:smbd: Use "smbd profiling level" via 66173dd param: add "smbd profiling level" option via cfb12b1 s3:smbprofile: Make "status_profile.h" a proper header via f82bb9f s3:smbprofile: Make smbprofile.h includable on its own via 86a951b s3:smbd: improve writecache profiling via 297d187 s3:wscript_build: remove unused to dependency from 'smbtree' to 'PROFILE' via 255ff0a s3:smbprofile: remove unused nmbd related counters via 4de3ed1 s3:nmbd: remove START/END_PROFILE() calls via 14ff976 s3:modules: make use of END_PROFILE_BYTES() when START_PROFILE_BYTES() was used via 8622168 s3:smbprofile: add END_PROFILE_BYTES() marco from 71a9e5d filter-subunit: Consistently use spaces rather than tabs.
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 553b83c4d53a273a127e628d72c4edfc2950513d Author: Stefan Metzmacher <me...@samba.org> Date: Sat Nov 15 23:58:15 2014 +0100 s3:smbprofile: profile async pread/pwrite/fsync syscalls Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Wed Nov 19 23:13:10 CET 2014 on sn-devel-104 commit 185c6feab743ce661fe7230ce76beca47cf1d0b1 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Nov 14 12:47:01 2014 +0100 s3:smbprofile: track connect_count and disconnect_count Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 970b00e6acd7dfea9e5b58d0b514bee1c9105172 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Nov 17 20:05:09 2014 +0100 s3:smbprofile: remove unused {START,END}_PROFILE_STAMP() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 487556e68e0b4f3a7f06b4d507ac075c8d7b7f99 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Nov 17 12:58:25 2014 +0100 s3:smbprofile: report idle state of 'idle_count' and 'idle_time' Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 49f84f0719f99675e1c08e1b5559e52ec22d3a8b Author: Stefan Metzmacher <me...@samba.org> Date: Mon Nov 17 12:52:35 2014 +0100 s3:smbprofile: improve profiling for the security context switching. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit e007c60a4f0e99813ed8184f0789a8f1c6269c77 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Nov 14 12:42:51 2014 +0100 s3:smbprofile: count all SMB1 and SMB2 requests as 'request_count' Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 0b0ac41aeafa358436efcd5801da3130d21e8c80 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Oct 31 11:15:50 2014 +0100 s3:smb2_server: use async smbprofile macros This improves profiling and corrently counts the total and idle time for async requests. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit cee1b4b0532d6271c2fc90fc2f82e9693a43d8ad Author: Stefan Metzmacher <me...@samba.org> Date: Thu Oct 23 18:06:15 2014 +0200 s3:smbprofile: rewrite the internal macros We now autogenerate a lot of code using SMBPROFILE_STATS_ALL_SECTIONS macro which expands to different SMBPROFILE_STATS_{COUNT,BASIC,BYTES,IOBYTES} macros. This also allows async profiling using: struct mystate { ... SMBPROFILE_BASIC_ASYNC_STATE(profile_state); ... }; ... SMBPROFILE_BASIC_ASYNC_START(SMB2_negotiate, profile_p, mystate->profile_state); ... SMBPROFILE_BYTES_ASYNC_SET_IDLE(mystate->profile_state); ... SMBPROFILE_BYTES_ASYNC_SET_BUSY(mystate->profile_state); ... SMBPROFILE_BASIC_ASYNC_END(mystate->profile_state); The current START_PROFILE*()/END_PROFILE*() are implemented as legacy wrappers. Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 9813f56178870b9081c7521ca2e3137473950497 Author: Volker Lendecke <v...@samba.org> Date: Fri Oct 10 13:38:27 2014 +0200 s3:smbd: Use "smbd profiling level" Pair-Programmed-With: Stefan Metzmacher <me...@samba.org> Signed-off-by: Volker Lendecke <v...@samba.org> Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 66173dd987e2105ab91551e452c1682021f12144 Author: Volker Lendecke <v...@samba.org> Date: Thu Oct 9 12:56:28 2014 +0000 param: add "smbd profiling level" option Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit cfb12b11ce9290ba9922353d2f461691718ceb11 Author: Volker Lendecke <v...@samba.org> Date: Fri Oct 10 14:18:50 2014 +0200 s3:smbprofile: Make "status_profile.h" a proper header Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit f82bb9fffd7a9f85aeb4781c654723e305bc9c48 Author: Volker Lendecke <v...@samba.org> Date: Thu Oct 9 12:41:03 2014 +0000 s3:smbprofile: Make smbprofile.h includable on its own Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 86a951b4ff9b3a1bbe03b3448d45f9750c949c00 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Nov 5 15:54:02 2014 +0100 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 <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 297d1877614b4f4f33f7e19f2d107feb5fe460ed Author: Stefan Metzmacher <me...@samba.org> Date: Fri Nov 7 15:18:44 2014 +0100 s3:wscript_build: remove unused to dependency from 'smbtree' to 'PROFILE' Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 255ff0a9721207c119924a8730e9d00dc468a058 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Nov 5 13:13:35 2014 +0100 s3:smbprofile: remove unused nmbd related counters Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 4de3ed1b0e5da29dae7ef43668bfc642766b8c20 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Nov 5 13:10:49 2014 +0100 s3:nmbd: remove START/END_PROFILE() calls nmbd never calls profile_setup() and never collects any profiling data. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 14ff976406ab45baa5723f73b7f93b4ccce82a80 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Oct 23 18:31:09 2014 +0200 s3:modules: make use of END_PROFILE_BYTES() when START_PROFILE_BYTES() was used Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 8622168a4ada99894e2e85f4d46e81a654c33583 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Oct 23 18:30:41 2014 +0200 s3:smbprofile: add END_PROFILE_BYTES() marco Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: docs-xml/smbdotconf/misc/smbdprofilinglevel.xml | 16 + lib/param/loadparm.c | 2 + lib/param/param_table.c | 13 + source3/include/smb.h | 3 +- source3/include/smbprofile.h | 1356 +++++++------------- source3/modules/vfs_default.c | 22 +- source3/nmbd/nmbd_elections.c | 10 +- source3/nmbd/nmbd_incomingdgrams.c | 43 +- source3/nmbd/nmbd_synclists.c | 7 +- source3/param/loadparm.c | 1 + source3/profile/profile.c | 207 +-- source3/smbd/fileio.c | 39 +- source3/smbd/globals.h | 3 + source3/smbd/process.c | 15 +- source3/smbd/sec_ctx.c | 24 +- source3/smbd/server.c | 12 +- source3/smbd/server_exit.c | 1 + source3/smbd/smb2_create.c | 1 + source3/smbd/smb2_lock.c | 4 + source3/smbd/smb2_notify.c | 3 + source3/smbd/smb2_server.c | 172 ++- source3/utils/status.c | 4 +- source3/utils/status_profile.c | 1004 ++++----------- .../utils/status_profile.h | 16 +- source3/utils/status_profile_dummy.c | 1 + source3/wscript_build | 3 +- 26 files changed, 908 insertions(+), 2074 deletions(-) create mode 100644 docs-xml/smbdotconf/misc/smbdprofilinglevel.xml copy lib/util/close_low_fd.h => source3/utils/status_profile.h (75%) Changeset truncated at 500 lines: diff --git a/docs-xml/smbdotconf/misc/smbdprofilinglevel.xml b/docs-xml/smbdotconf/misc/smbdprofilinglevel.xml new file mode 100644 index 0000000..d92e5dc --- /dev/null +++ b/docs-xml/smbdotconf/misc/smbdprofilinglevel.xml @@ -0,0 +1,16 @@ +<samba:parameter name="smbd profiling level" + context="G" + type="enum" + xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> +<description> + <para> + This parameter allows the administrator to enable profiling support. + </para> + <para> + Possible values are <constant>off</constant>, + <constant>count</constant> and <constant>on</constant>. + </para> +</description> +<value type="default">off</value> +<value type="example">on</value> +</samba:parameter> diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index b9a3e20..30b1155 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -2634,6 +2634,8 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx) lpcfg_do_global_parameter(lp_ctx, "keepalive", "300"); + lpcfg_do_global_parameter(lp_ctx, "smbd profiling level", "off"); + lpcfg_do_global_parameter(lp_ctx, "winbind cache time", "300"); lpcfg_do_global_parameter(lp_ctx, "level2 oplocks", "yes"); diff --git a/lib/param/param_table.c b/lib/param/param_table.c index 7a13e6f..5dbcda8 100644 --- a/lib/param/param_table.c +++ b/lib/param/param_table.c @@ -174,6 +174,10 @@ static const struct enum_list enum_config_backend[] = { {-1, NULL} }; +static const struct enum_list enum_smbd_profiling_level[] = { + {0, "off"}, {1, "count"}, {2, "on"}, {-1, NULL} +}; + /* ADS kerberos ticket verification options */ @@ -1510,6 +1514,15 @@ struct parm_struct parm_table[] = { .flags = FLAG_ADVANCED, }, { + .label = "smbd profiling level", + .type = P_ENUM, + .p_class = P_GLOBAL, + .offset = GLOBAL_VAR(smbd_profiling_level), + .special = NULL, + .enum_list = enum_smbd_profiling_level, + .flags = FLAG_ADVANCED, + }, + { .label = "profile acls", .type = P_BOOL, .p_class = P_LOCAL, diff --git a/source3/include/smb.h b/source3/include/smb.h index aab4ff5..53d3edc 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 a37ac4f..ea24165 100644 --- a/source3/include/smbprofile.h +++ b/source3/include/smbprofile.h @@ -23,869 +23,457 @@ #ifdef WITH_PROFILE +#define SMBPROFILE_STATS_ALL_SECTIONS \ + SMBPROFILE_STATS_START \ + \ + SMBPROFILE_STATS_SECTION_START("SMBD loop") \ + SMBPROFILE_STATS_COUNT(connect) \ + SMBPROFILE_STATS_COUNT(disconnect) \ + SMBPROFILE_STATS_BASIC(idle) \ + SMBPROFILE_STATS_COUNT(request) \ + SMBPROFILE_STATS_BASIC(push_sec_ctx) \ + SMBPROFILE_STATS_BASIC(set_sec_ctx) \ + SMBPROFILE_STATS_BASIC(set_root_sec_ctx) \ + SMBPROFILE_STATS_BASIC(pop_sec_ctx) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("System Calls") \ + SMBPROFILE_STATS_BASIC(syscall_opendir) \ + SMBPROFILE_STATS_BASIC(syscall_fdopendir) \ + SMBPROFILE_STATS_BASIC(syscall_readdir) \ + SMBPROFILE_STATS_BASIC(syscall_seekdir) \ + SMBPROFILE_STATS_BASIC(syscall_telldir) \ + SMBPROFILE_STATS_BASIC(syscall_rewinddir) \ + SMBPROFILE_STATS_BASIC(syscall_mkdir) \ + SMBPROFILE_STATS_BASIC(syscall_rmdir) \ + SMBPROFILE_STATS_BASIC(syscall_closedir) \ + SMBPROFILE_STATS_BASIC(syscall_open) \ + SMBPROFILE_STATS_BASIC(syscall_createfile) \ + SMBPROFILE_STATS_BASIC(syscall_close) \ + SMBPROFILE_STATS_BYTES(syscall_read) \ + SMBPROFILE_STATS_BYTES(syscall_pread) \ + SMBPROFILE_STATS_BYTES(syscall_asys_pread) \ + SMBPROFILE_STATS_BYTES(syscall_write) \ + SMBPROFILE_STATS_BYTES(syscall_pwrite) \ + SMBPROFILE_STATS_BYTES(syscall_asys_pwrite) \ + SMBPROFILE_STATS_BASIC(syscall_lseek) \ + SMBPROFILE_STATS_BYTES(syscall_sendfile) \ + SMBPROFILE_STATS_BYTES(syscall_recvfile) \ + SMBPROFILE_STATS_BASIC(syscall_rename) \ + SMBPROFILE_STATS_BASIC(syscall_rename_at) \ + SMBPROFILE_STATS_BASIC(syscall_fsync) \ + SMBPROFILE_STATS_BASIC(syscall_asys_fsync) \ + SMBPROFILE_STATS_BASIC(syscall_stat) \ + SMBPROFILE_STATS_BASIC(syscall_fstat) \ + SMBPROFILE_STATS_BASIC(syscall_lstat) \ + SMBPROFILE_STATS_BASIC(syscall_get_alloc_size) \ + SMBPROFILE_STATS_BASIC(syscall_unlink) \ + SMBPROFILE_STATS_BASIC(syscall_chmod) \ + SMBPROFILE_STATS_BASIC(syscall_fchmod) \ + SMBPROFILE_STATS_BASIC(syscall_chown) \ + SMBPROFILE_STATS_BASIC(syscall_fchown) \ + SMBPROFILE_STATS_BASIC(syscall_lchown) \ + SMBPROFILE_STATS_BASIC(syscall_chdir) \ + SMBPROFILE_STATS_BASIC(syscall_getwd) \ + SMBPROFILE_STATS_BASIC(syscall_ntimes) \ + SMBPROFILE_STATS_BASIC(syscall_ftruncate) \ + SMBPROFILE_STATS_BASIC(syscall_fallocate) \ + SMBPROFILE_STATS_BASIC(syscall_fcntl_lock) \ + SMBPROFILE_STATS_BASIC(syscall_kernel_flock) \ + SMBPROFILE_STATS_BASIC(syscall_linux_setlease) \ + SMBPROFILE_STATS_BASIC(syscall_fcntl_getlock) \ + SMBPROFILE_STATS_BASIC(syscall_readlink) \ + SMBPROFILE_STATS_BASIC(syscall_symlink) \ + SMBPROFILE_STATS_BASIC(syscall_link) \ + SMBPROFILE_STATS_BASIC(syscall_mknod) \ + SMBPROFILE_STATS_BASIC(syscall_realpath) \ + SMBPROFILE_STATS_BASIC(syscall_get_quota) \ + SMBPROFILE_STATS_BASIC(syscall_set_quota) \ + SMBPROFILE_STATS_BASIC(syscall_get_sd) \ + SMBPROFILE_STATS_BASIC(syscall_set_sd) \ + SMBPROFILE_STATS_BASIC(syscall_brl_lock) \ + SMBPROFILE_STATS_BASIC(syscall_brl_unlock) \ + SMBPROFILE_STATS_BASIC(syscall_brl_cancel) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("ACL Calls") \ + SMBPROFILE_STATS_BASIC(get_nt_acl) \ + SMBPROFILE_STATS_BASIC(fget_nt_acl) \ + SMBPROFILE_STATS_BASIC(fset_nt_acl) \ + SMBPROFILE_STATS_BASIC(chmod_acl) \ + SMBPROFILE_STATS_BASIC(fchmod_acl) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("Stat Cache") \ + SMBPROFILE_STATS_COUNT(statcache_lookups) \ + SMBPROFILE_STATS_COUNT(statcache_misses) \ + SMBPROFILE_STATS_COUNT(statcache_hits) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("Write Cache") \ + SMBPROFILE_STATS_COUNT(writecache_allocations) \ + SMBPROFILE_STATS_COUNT(writecache_deallocations) \ + SMBPROFILE_STATS_COUNT(writecache_cached_reads) \ + SMBPROFILE_STATS_COUNT(writecache_total_writes) \ + SMBPROFILE_STATS_COUNT(writecache_init_writes) \ + SMBPROFILE_STATS_COUNT(writecache_abutted_writes) \ + SMBPROFILE_STATS_COUNT(writecache_non_oplock_writes) \ + SMBPROFILE_STATS_COUNT(writecache_direct_writes) \ + SMBPROFILE_STATS_COUNT(writecache_cached_writes) \ + SMBPROFILE_STATS_COUNT(writecache_perfect_writes) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_seek) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_read) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_readraw) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_write) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_oplock) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_close) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_sync) \ + SMBPROFILE_STATS_COUNT(writecache_flush_reason_sizechange) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("SMB Calls") \ + SMBPROFILE_STATS_BASIC(SMBmkdir) \ + SMBPROFILE_STATS_BASIC(SMBrmdir) \ + SMBPROFILE_STATS_BASIC(SMBopen) \ + SMBPROFILE_STATS_BASIC(SMBcreate) \ + SMBPROFILE_STATS_BASIC(SMBclose) \ + SMBPROFILE_STATS_BASIC(SMBflush) \ + SMBPROFILE_STATS_BASIC(SMBunlink) \ + SMBPROFILE_STATS_BASIC(SMBmv) \ + SMBPROFILE_STATS_BASIC(SMBgetatr) \ + SMBPROFILE_STATS_BASIC(SMBsetatr) \ + SMBPROFILE_STATS_BASIC(SMBread) \ + SMBPROFILE_STATS_BASIC(SMBwrite) \ + SMBPROFILE_STATS_BASIC(SMBlock) \ + SMBPROFILE_STATS_BASIC(SMBunlock) \ + SMBPROFILE_STATS_BASIC(SMBctemp) \ + SMBPROFILE_STATS_BASIC(SMBmknew) \ + SMBPROFILE_STATS_BASIC(SMBcheckpath) \ + SMBPROFILE_STATS_BASIC(SMBexit) \ + SMBPROFILE_STATS_BASIC(SMBlseek) \ + SMBPROFILE_STATS_BASIC(SMBlockread) \ + SMBPROFILE_STATS_BASIC(SMBwriteunlock) \ + SMBPROFILE_STATS_BASIC(SMBreadbraw) \ + SMBPROFILE_STATS_BASIC(SMBreadBmpx) \ + SMBPROFILE_STATS_BASIC(SMBreadBs) \ + SMBPROFILE_STATS_BASIC(SMBwritebraw) \ + SMBPROFILE_STATS_BASIC(SMBwriteBmpx) \ + SMBPROFILE_STATS_BASIC(SMBwriteBs) \ + SMBPROFILE_STATS_BASIC(SMBwritec) \ + SMBPROFILE_STATS_BASIC(SMBsetattrE) \ + SMBPROFILE_STATS_BASIC(SMBgetattrE) \ + SMBPROFILE_STATS_BASIC(SMBlockingX) \ + SMBPROFILE_STATS_BASIC(SMBtrans) \ + SMBPROFILE_STATS_BASIC(SMBtranss) \ + SMBPROFILE_STATS_BASIC(SMBioctl) \ + SMBPROFILE_STATS_BASIC(SMBioctls) \ + SMBPROFILE_STATS_BASIC(SMBcopy) \ + SMBPROFILE_STATS_BASIC(SMBmove) \ + SMBPROFILE_STATS_BASIC(SMBecho) \ + SMBPROFILE_STATS_BASIC(SMBwriteclose) \ + SMBPROFILE_STATS_BASIC(SMBopenX) \ + SMBPROFILE_STATS_BASIC(SMBreadX) \ + SMBPROFILE_STATS_BASIC(SMBwriteX) \ + SMBPROFILE_STATS_BASIC(SMBtrans2) \ + SMBPROFILE_STATS_BASIC(SMBtranss2) \ + SMBPROFILE_STATS_BASIC(SMBfindclose) \ + SMBPROFILE_STATS_BASIC(SMBfindnclose) \ + SMBPROFILE_STATS_BASIC(SMBtcon) \ + SMBPROFILE_STATS_BASIC(SMBtdis) \ + SMBPROFILE_STATS_BASIC(SMBnegprot) \ + SMBPROFILE_STATS_BASIC(SMBsesssetupX) \ + SMBPROFILE_STATS_BASIC(SMBulogoffX) \ + SMBPROFILE_STATS_BASIC(SMBtconX) \ + SMBPROFILE_STATS_BASIC(SMBdskattr) \ + SMBPROFILE_STATS_BASIC(SMBsearch) \ + SMBPROFILE_STATS_BASIC(SMBffirst) \ + SMBPROFILE_STATS_BASIC(SMBfunique) \ + SMBPROFILE_STATS_BASIC(SMBfclose) \ + SMBPROFILE_STATS_BASIC(SMBnttrans) \ + SMBPROFILE_STATS_BASIC(SMBnttranss) \ + SMBPROFILE_STATS_BASIC(SMBntcreateX) \ + SMBPROFILE_STATS_BASIC(SMBntcancel) \ + SMBPROFILE_STATS_BASIC(SMBntrename) \ + SMBPROFILE_STATS_BASIC(SMBsplopen) \ + SMBPROFILE_STATS_BASIC(SMBsplwr) \ + SMBPROFILE_STATS_BASIC(SMBsplclose) \ + SMBPROFILE_STATS_BASIC(SMBsplretq) \ + SMBPROFILE_STATS_BASIC(SMBsends) \ + SMBPROFILE_STATS_BASIC(SMBsendb) \ + SMBPROFILE_STATS_BASIC(SMBfwdname) \ + SMBPROFILE_STATS_BASIC(SMBcancelf) \ + SMBPROFILE_STATS_BASIC(SMBgetmac) \ + SMBPROFILE_STATS_BASIC(SMBsendstrt) \ + SMBPROFILE_STATS_BASIC(SMBsendend) \ + SMBPROFILE_STATS_BASIC(SMBsendtxt) \ + SMBPROFILE_STATS_BASIC(SMBinvalid) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("Trans2 Calls") \ + SMBPROFILE_STATS_BASIC(Trans2_open) \ + SMBPROFILE_STATS_BASIC(Trans2_findfirst) \ + SMBPROFILE_STATS_BASIC(Trans2_findnext) \ + SMBPROFILE_STATS_BASIC(Trans2_qfsinfo) \ + SMBPROFILE_STATS_BASIC(Trans2_setfsinfo) \ + SMBPROFILE_STATS_BASIC(Trans2_qpathinfo) \ + SMBPROFILE_STATS_BASIC(Trans2_setpathinfo) \ + SMBPROFILE_STATS_BASIC(Trans2_qfileinfo) \ + SMBPROFILE_STATS_BASIC(Trans2_setfileinfo) \ + SMBPROFILE_STATS_BASIC(Trans2_fsctl) \ + SMBPROFILE_STATS_BASIC(Trans2_ioctl) \ + SMBPROFILE_STATS_BASIC(Trans2_findnotifyfirst) \ + SMBPROFILE_STATS_BASIC(Trans2_findnotifynext) \ + SMBPROFILE_STATS_BASIC(Trans2_mkdir) \ + SMBPROFILE_STATS_BASIC(Trans2_session_setup) \ + SMBPROFILE_STATS_BASIC(Trans2_get_dfs_referral) \ + SMBPROFILE_STATS_BASIC(Trans2_report_dfs_inconsistancy) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("NT Transact Calls") \ + SMBPROFILE_STATS_BASIC(NT_transact_create) \ + SMBPROFILE_STATS_BASIC(NT_transact_ioctl) \ + SMBPROFILE_STATS_BASIC(NT_transact_set_security_desc) \ + SMBPROFILE_STATS_BASIC(NT_transact_notify_change) \ + SMBPROFILE_STATS_BASIC(NT_transact_rename) \ + SMBPROFILE_STATS_BASIC(NT_transact_query_security_desc) \ + SMBPROFILE_STATS_BASIC(NT_transact_get_user_quota) \ + SMBPROFILE_STATS_BASIC(NT_transact_set_user_quota) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_SECTION_START("SMB2 Calls") \ + SMBPROFILE_STATS_IOBYTES(smb2_negprot) \ + SMBPROFILE_STATS_IOBYTES(smb2_sesssetup) \ + SMBPROFILE_STATS_IOBYTES(smb2_logoff) \ + SMBPROFILE_STATS_IOBYTES(smb2_tcon) \ + SMBPROFILE_STATS_IOBYTES(smb2_tdis) \ + SMBPROFILE_STATS_IOBYTES(smb2_create) \ + SMBPROFILE_STATS_IOBYTES(smb2_close) \ + SMBPROFILE_STATS_IOBYTES(smb2_flush) \ + SMBPROFILE_STATS_IOBYTES(smb2_read) \ + SMBPROFILE_STATS_IOBYTES(smb2_write) \ + SMBPROFILE_STATS_IOBYTES(smb2_lock) \ + SMBPROFILE_STATS_IOBYTES(smb2_ioctl) \ + SMBPROFILE_STATS_IOBYTES(smb2_cancel) \ + SMBPROFILE_STATS_IOBYTES(smb2_keepalive) \ + SMBPROFILE_STATS_IOBYTES(smb2_find) \ + SMBPROFILE_STATS_IOBYTES(smb2_notify) \ + SMBPROFILE_STATS_IOBYTES(smb2_getinfo) \ + SMBPROFILE_STATS_IOBYTES(smb2_setinfo) \ + SMBPROFILE_STATS_IOBYTES(smb2_break) \ + SMBPROFILE_STATS_SECTION_END \ + \ + SMBPROFILE_STATS_END + /* this file defines the profile structure in the profile shared memory area */ /* time values in the following structure are in microseconds */ -#define __profile_stats_value(which, domain) domain[which] - -enum profile_stats_values -{ - PR_VALUE_SMBD_IDLE = 0, -#define smbd_idle_count __profile_stats_value(PR_VALUE_SMBD_IDLE, count) -#define smbd_idle_time __profile_stats_value(PR_VALUE_SMBD_IDLE, time) - -/* system call counters */ - PR_VALUE_SYSCALL_OPENDIR, -#define syscall_opendir_count __profile_stats_value(PR_VALUE_SYSCALL_OPENDIR, count) -#define syscall_opendir_time __profile_stats_value(PR_VALUE_SYSCALL_OPENDIR, time) - - PR_VALUE_SYSCALL_FDOPENDIR, -#define syscall_fdopendir_count __profile_stats_value(PR_VALUE_SYSCALL_FDOPENDIR, count) -#define syscall_fdopendir_time __profile_stats_value(PR_VALUE_SYSCALL_FDOPENDIR, time) - - PR_VALUE_SYSCALL_READDIR, -#define syscall_readdir_count __profile_stats_value(PR_VALUE_SYSCALL_READDIR, count) -#define syscall_readdir_time __profile_stats_value(PR_VALUE_SYSCALL_READDIR, time) - - PR_VALUE_SYSCALL_SEEKDIR, -#define syscall_seekdir_count __profile_stats_value(PR_VALUE_SYSCALL_SEEKDIR, count) -#define syscall_seekdir_time __profile_stats_value(PR_VALUE_SYSCALL_SEEKDIR, time) - - PR_VALUE_SYSCALL_TELLDIR, -#define syscall_telldir_count __profile_stats_value(PR_VALUE_SYSCALL_TELLDIR, count) -#define syscall_telldir_time __profile_stats_value(PR_VALUE_SYSCALL_TELLDIR, time) - - PR_VALUE_SYSCALL_REWINDDIR, -#define syscall_rewinddir_count __profile_stats_value(PR_VALUE_SYSCALL_REWINDDIR, count) -#define syscall_rewinddir_time __profile_stats_value(PR_VALUE_SYSCALL_REWINDDIR, time) - - PR_VALUE_SYSCALL_MKDIR, -#define syscall_mkdir_count __profile_stats_value(PR_VALUE_SYSCALL_MKDIR, count) -#define syscall_mkdir_time __profile_stats_value(PR_VALUE_SYSCALL_MKDIR, time) - - PR_VALUE_SYSCALL_RMDIR, -#define syscall_rmdir_count __profile_stats_value(PR_VALUE_SYSCALL_RMDIR, count) -#define syscall_rmdir_time __profile_stats_value(PR_VALUE_SYSCALL_RMDIR, time) - - PR_VALUE_SYSCALL_CLOSEDIR, -#define syscall_closedir_count __profile_stats_value(PR_VALUE_SYSCALL_CLOSEDIR, count) -#define syscall_closedir_time __profile_stats_value(PR_VALUE_SYSCALL_CLOSEDIR, time) - - PR_VALUE_SYSCALL_OPEN, -#define syscall_open_count __profile_stats_value(PR_VALUE_SYSCALL_OPEN, count) -#define syscall_open_time __profile_stats_value(PR_VALUE_SYSCALL_OPEN, time) - - PR_VALUE_SYSCALL_CREATEFILE, -#define syscall_createfile_count __profile_stats_value(PR_VALUE_SYSCALL_CREATEFILE, count) -#define syscall_createfile_time __profile_stats_value(PR_VALUE_SYSCALL_CREATEFILE, time) - - PR_VALUE_SYSCALL_CLOSE, -#define syscall_close_count __profile_stats_value(PR_VALUE_SYSCALL_CLOSE, count) -#define syscall_close_time __profile_stats_value(PR_VALUE_SYSCALL_CLOSE, time) - - PR_VALUE_SYSCALL_READ, -#define syscall_read_count __profile_stats_value(PR_VALUE_SYSCALL_READ, count) -#define syscall_read_time __profile_stats_value(PR_VALUE_SYSCALL_READ, time) - - PR_VALUE_SYSCALL_PREAD, -#define syscall_pread_count __profile_stats_value(PR_VALUE_SYSCALL_PREAD, count) -#define syscall_pread_time __profile_stats_value(PR_VALUE_SYSCALL_PREAD, time) - - PR_VALUE_SYSCALL_WRITE, -#define syscall_write_count __profile_stats_value(PR_VALUE_SYSCALL_WRITE, count) -#define syscall_write_time __profile_stats_value(PR_VALUE_SYSCALL_WRITE, time) - - PR_VALUE_SYSCALL_PWRITE, -#define syscall_pwrite_count __profile_stats_value(PR_VALUE_SYSCALL_PWRITE, count) -#define syscall_pwrite_time __profile_stats_value(PR_VALUE_SYSCALL_PWRITE, time) - - PR_VALUE_SYSCALL_LSEEK, -#define syscall_lseek_count __profile_stats_value(PR_VALUE_SYSCALL_LSEEK, count) -#define syscall_lseek_time __profile_stats_value(PR_VALUE_SYSCALL_LSEEK, time) - - PR_VALUE_SYSCALL_SENDFILE, -#define syscall_sendfile_count __profile_stats_value(PR_VALUE_SYSCALL_SENDFILE, count) -#define syscall_sendfile_time __profile_stats_value(PR_VALUE_SYSCALL_SENDFILE, time) - - PR_VALUE_SYSCALL_RECVFILE, -#define syscall_recvfile_count __profile_stats_value(PR_VALUE_SYSCALL_RECVFILE, count) -#define syscall_recvfile_time __profile_stats_value(PR_VALUE_SYSCALL_RECVFILE, time) - - PR_VALUE_SYSCALL_RENAME, -#define syscall_rename_count __profile_stats_value(PR_VALUE_SYSCALL_RENAME, count) -#define syscall_rename_time __profile_stats_value(PR_VALUE_SYSCALL_RENAME, time) - - PR_VALUE_SYSCALL_RENAME_AT, -#define syscall_rename_at_count __profile_stats_value(PR_VALUE_SYSCALL_RENAME_AT, count) -#define syscall_rename_at_time __profile_stats_value(PR_VALUE_SYSCALL_RENAME_AT, time) - - PR_VALUE_SYSCALL_FSYNC, -#define syscall_fsync_count __profile_stats_value(PR_VALUE_SYSCALL_FSYNC, count) -#define syscall_fsync_time __profile_stats_value(PR_VALUE_SYSCALL_FSYNC, time) - - PR_VALUE_SYSCALL_STAT, -#define syscall_stat_count __profile_stats_value(PR_VALUE_SYSCALL_STAT, count) -#define syscall_stat_time __profile_stats_value(PR_VALUE_SYSCALL_STAT, time) - - PR_VALUE_SYSCALL_FSTAT, -#define syscall_fstat_count __profile_stats_value(PR_VALUE_SYSCALL_FSTAT, count) -#define syscall_fstat_time __profile_stats_value(PR_VALUE_SYSCALL_FSTAT, time) - - PR_VALUE_SYSCALL_LSTAT, -#define syscall_lstat_count __profile_stats_value(PR_VALUE_SYSCALL_LSTAT, count) -#define syscall_lstat_time __profile_stats_value(PR_VALUE_SYSCALL_LSTAT, time) - - PR_VALUE_SYSCALL_GET_ALLOC_SIZE, -#define syscall_get_alloc_size_count __profile_stats_value(PR_VALUE_SYSCALL_GET_ALLOC_SIZE, count) -#define syscall_get_alloc_size_time __profile_stats_value(PR_VALUE_SYSCALL_GET_ALLOC_SIZE, time) - - PR_VALUE_SYSCALL_UNLINK, -#define syscall_unlink_count __profile_stats_value(PR_VALUE_SYSCALL_UNLINK, count) -#define syscall_unlink_time __profile_stats_value(PR_VALUE_SYSCALL_UNLINK, time) - - PR_VALUE_SYSCALL_CHMOD, -#define syscall_chmod_count __profile_stats_value(PR_VALUE_SYSCALL_CHMOD, count) -#define syscall_chmod_time __profile_stats_value(PR_VALUE_SYSCALL_CHMOD, time) - - PR_VALUE_SYSCALL_FCHMOD, -#define syscall_fchmod_count __profile_stats_value(PR_VALUE_SYSCALL_FCHMOD, count) -#define syscall_fchmod_time __profile_stats_value(PR_VALUE_SYSCALL_FCHMOD, time) - - PR_VALUE_SYSCALL_CHOWN, -#define syscall_chown_count __profile_stats_value(PR_VALUE_SYSCALL_CHOWN, count) -#define syscall_chown_time __profile_stats_value(PR_VALUE_SYSCALL_CHOWN, time) - - PR_VALUE_SYSCALL_FCHOWN, -#define syscall_fchown_count __profile_stats_value(PR_VALUE_SYSCALL_FCHOWN, count) -#define syscall_fchown_time __profile_stats_value(PR_VALUE_SYSCALL_FCHOWN, time) - - PR_VALUE_SYSCALL_LCHOWN, -#define syscall_lchown_count __profile_stats_value(PR_VALUE_SYSCALL_LCHOWN, count) -#define syscall_lchown_time __profile_stats_value(PR_VALUE_SYSCALL_LCHOWN, time) - - PR_VALUE_SYSCALL_CHDIR, -#define syscall_chdir_count __profile_stats_value(PR_VALUE_SYSCALL_CHDIR, count) -#define syscall_chdir_time __profile_stats_value(PR_VALUE_SYSCALL_CHDIR, time) - - PR_VALUE_SYSCALL_GETWD, -#define syscall_getwd_count __profile_stats_value(PR_VALUE_SYSCALL_GETWD, count) -#define syscall_getwd_time __profile_stats_value(PR_VALUE_SYSCALL_GETWD, time) - - PR_VALUE_SYSCALL_NTIMES, -#define syscall_ntimes_count __profile_stats_value(PR_VALUE_SYSCALL_NTIMES, count) -#define syscall_ntimes_time __profile_stats_value(PR_VALUE_SYSCALL_NTIMES, time) - - PR_VALUE_SYSCALL_FTRUNCATE, -#define syscall_ftruncate_count __profile_stats_value(PR_VALUE_SYSCALL_FTRUNCATE, count) -#define syscall_ftruncate_time __profile_stats_value(PR_VALUE_SYSCALL_FTRUNCATE, time) - - PR_VALUE_SYSCALL_FALLOCATE, -#define syscall_fallocate_count __profile_stats_value(PR_VALUE_SYSCALL_FALLOCATE, count) -#define syscall_fallocate_time __profile_stats_value(PR_VALUE_SYSCALL_FALLOCATE, time) - - PR_VALUE_SYSCALL_FCNTL_LOCK, -#define syscall_fcntl_lock_count __profile_stats_value(PR_VALUE_SYSCALL_FCNTL_LOCK, count) -#define syscall_fcntl_lock_time __profile_stats_value(PR_VALUE_SYSCALL_FCNTL_LOCK, time) - - PR_VALUE_SYSCALL_KERNEL_FLOCK, -#define syscall_kernel_flock_count __profile_stats_value(PR_VALUE_SYSCALL_KERNEL_FLOCK, count) -#define syscall_kernel_flock_time __profile_stats_value(PR_VALUE_SYSCALL_KERNEL_FLOCK, time) - - PR_VALUE_SYSCALL_LINUX_SETLEASE, -#define syscall_linux_setlease_count __profile_stats_value(PR_VALUE_SYSCALL_LINUX_SETLEASE, count) -- Samba Shared Repository