diff options
author | Andrew Tridgell <tridge@samba.org> | 1999-04-01 05:22:58 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1999-04-01 05:22:58 +0000 |
commit | d330c907bdc5d8e3c242cea76dfafaae84041270 (patch) | |
tree | d5a1381ca1adbe412bdb25084632ffc6b053f2c1 /source3/smbd | |
parent | a8aff598f42a7479a2c43cbd04064cbbcf150599 (diff) | |
download | samba-d330c907bdc5d8e3c242cea76dfafaae84041270.tar.gz samba-d330c907bdc5d8e3c242cea76dfafaae84041270.tar.bz2 samba-d330c907bdc5d8e3c242cea76dfafaae84041270.zip |
Ken McDonell from SGI was interested in adding some profiling
capabilities to Samba so that Samba could talk to the SGI PCP
(Performance Co-Pilot) apps.
This change adds a profiling shared memory area and uses it to count
two fairly trivial things, the number of uid switches and the number
of SMB packets processes. To add more just edit include/profile.h and
then increment it at the right place.
I've also added a -P switch to smbstatus to dump the profile area.
(This used to be commit ef3d61a80ad0b87c196a63ef2bd4fe8fc3863bd0)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/process.c | 4 | ||||
-rw-r--r-- | source3/smbd/server.c | 9 | ||||
-rw-r--r-- | source3/smbd/uid.c | 4 |
3 files changed, 16 insertions, 1 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index a38e6da683..420598157f 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -545,6 +545,10 @@ void process_smb(char *inbuf, char *outbuf) int32 len = smb_len(inbuf); int nread = len + 4; +#ifdef WITH_PROFILE + profile_p->smb_count++; +#endif + if (trans_num == 0) { /* on the first packet, check the global hosts allow/ hosts deny parameters before doing any parsing of the packet diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 9b397bcdeb..dcc53cb8d0 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -618,7 +618,14 @@ static void usage(char *pname) return(-1); init_structs(); - + +#ifdef WITH_PROFILE + if (!profile_setup(False)) { + DEBUG(0,("ERROR: failed to setup profiling\n")); + return -1; + } +#endif + /* * Set the machine NETBIOS name if not already * set from the config file. diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index f76fa49d56..b2407ed5fc 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -109,6 +109,10 @@ static BOOL become_uid(uid_t uid) current_user.uid = uid; +#ifdef WITH_PROFILE + profile_p->uid_changes++; +#endif + return(True); } |