[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Wed Nov 19 15:14:02 MST 2014


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 <metze at samba.org>
Date:   Sat Nov 15 23:58:15 2014 +0100

    s3:smbprofile: profile async pread/pwrite/fsync syscalls
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Wed Nov 19 23:13:10 CET 2014 on sn-devel-104

commit 185c6feab743ce661fe7230ce76beca47cf1d0b1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Nov 14 12:47:01 2014 +0100

    s3:smbprofile: track connect_count and disconnect_count
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 970b00e6acd7dfea9e5b58d0b514bee1c9105172
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 17 20:05:09 2014 +0100

    s3:smbprofile: remove unused {START,END}_PROFILE_STAMP()
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 487556e68e0b4f3a7f06b4d507ac075c8d7b7f99
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 49f84f0719f99675e1c08e1b5559e52ec22d3a8b
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit e007c60a4f0e99813ed8184f0789a8f1c6269c77
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 0b0ac41aeafa358436efcd5801da3130d21e8c80
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit cee1b4b0532d6271c2fc90fc2f82e9693a43d8ad
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>

commit 9813f56178870b9081c7521ca2e3137473950497
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Oct 10 13:38:27 2014 +0200

    s3:smbd: Use "smbd profiling level"
    
    Pair-Programmed-With: Stefan Metzmacher <metze at samba.org>
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 66173dd987e2105ab91551e452c1682021f12144
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Oct 9 12:56:28 2014 +0000

    param: add "smbd profiling level" option
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit cfb12b11ce9290ba9922353d2f461691718ceb11
Author: Volker Lendecke <vl at 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 <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit f82bb9fffd7a9f85aeb4781c654723e305bc9c48
Author: Volker Lendecke <vl at 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 <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 86a951b4ff9b3a1bbe03b3448d45f9750c949c00
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 297d1877614b4f4f33f7e19f2d107feb5fe460ed
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 255ff0a9721207c119924a8730e9d00dc468a058
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Nov 5 13:13:35 2014 +0100

    s3:smbprofile: remove unused nmbd related counters
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 4de3ed1b0e5da29dae7ef43668bfc642766b8c20
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 14ff976406ab45baa5723f73b7f93b4ccce82a80
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 8622168a4ada99894e2e85f4d46e81a654c33583
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Oct 23 18:30:41 2014 +0200

    s3:smbprofile: add END_PROFILE_BYTES() marco
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at 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


More information about the samba-cvs mailing list