From: Volker Lendecke Date: Tue, 21 Nov 2023 12:34:03 +0000 (+0100) Subject: profile: Add sessions, tcons and files to profile data X-Git-Tag: tevent-0.17.0~343 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3394abdd8e26714d016ed7f6fd4bf0a5b45621b;p=thirdparty%2Fsamba.git profile: Add sessions, tcons and files to profile data Signed-off-by: Volker Lendecke Reviewed-by: Ralph Boehme Reviewed-by: Guenther Deschner --- diff --git a/source3/include/smbprofile.h b/source3/include/smbprofile.h index 09fd5e474e2..689a84d9c8d 100644 --- a/source3/include/smbprofile.h +++ b/source3/include/smbprofile.h @@ -44,6 +44,9 @@ struct tevent_context; SMBPROFILE_STATS_BASIC(set_sec_ctx) \ SMBPROFILE_STATS_BASIC(set_root_sec_ctx) \ SMBPROFILE_STATS_BASIC(pop_sec_ctx) \ + SMBPROFILE_STATS_COUNT(num_sessions) \ + SMBPROFILE_STATS_COUNT(num_tcons) \ + SMBPROFILE_STATS_COUNT(num_files) \ SMBPROFILE_STATS_SECTION_END \ \ SMBPROFILE_STATS_SECTION_START(syscall, "System Calls") \ diff --git a/source3/profile/profile.c b/source3/profile/profile.c index 70eeac8c8e1..8bc261361ff 100644 --- a/source3/profile/profile.c +++ b/source3/profile/profile.c @@ -27,6 +27,7 @@ #include "lib/tdb_wrap/tdb_wrap.h" #include #include "../lib/crypto/crypto.h" +#include "source3/smbd/globals.h" #ifdef HAVE_SYS_RESOURCE_H #include @@ -257,6 +258,17 @@ void smbprofile_dump(struct smbd_server_connection *sconn) rself.ru_stime.tv_usec; #endif /* HAVE_GETRUSAGE */ + if (sconn != NULL) { + /* + * Sessions, tcons and files don't add up, they are + * transient counters + */ + profile_p->values.num_sessions_stats.count = sconn->num_users; + profile_p->values.num_tcons_stats.count = + sconn->num_connections; + profile_p->values.num_files_stats.count = sconn->num_files; + } + tdb_store(smbprofile_state.internal.db->tdb, key, (TDB_DATA) { .dptr = (uint8_t *)profile_p, @@ -310,6 +322,13 @@ void smbprofile_cleanup(pid_t pid, pid_t dst) smbprofile_stats_accumulate(&acc, &s); + /* + * Sessions, tcons and files don't add up, they are transient. + */ + acc.values.num_sessions_stats.count = 0; + acc.values.num_tcons_stats.count = 0; + acc.values.num_files_stats.count = 0; + acc.magic = profile_p->magic; acc.summary_record = true;