s3/profiling: don't use CLOCK_PROCESS_CPUTIME_ID
authorBjörn Jacke <bj@sernet.de>
Tue, 14 Sep 2010 20:17:47 +0000 (22:17 +0200)
committerBjörn Jacke <bj@sernet.de>
Tue, 14 Sep 2010 20:17:47 +0000 (22:17 +0200)
that clock is a CPU burnometer but we need a chronometer for profiling.

source3/include/proto.h
source3/lib/util.c
source3/profile/profile.c

index 73fe868d8459d1847f8fdece86cc7e9b557b74a8..f089c696f0ef935140a0591b614bb6b5a56fbb74 100644 (file)
@@ -1230,7 +1230,6 @@ char *procid_str(TALLOC_CTX *mem_ctx, const struct server_id *pid);
 char *procid_str_static(const struct server_id *pid);
 bool procid_valid(const struct server_id *pid);
 bool procid_is_local(const struct server_id *pid);
-int this_is_smp(void);
 bool trans_oob(uint32_t bufsize, uint32_t offset, uint32_t length);
 bool is_offset_safe(const char *buf_base, size_t buf_len, char *ptr, size_t off);
 char *get_safe_ptr(const char *buf_base, size_t buf_len, char *ptr, size_t off);
index 315f3897d6f5f2eef248f274125add4933aa7b9e..3303894e0e50c7b807de90ed9dc435422ef4c88e 100644 (file)
@@ -2737,23 +2737,6 @@ bool procid_is_local(const struct server_id *pid)
 #endif
 }
 
-int this_is_smp(void)
-{
-#if defined(HAVE_SYSCONF)
-
-#if defined(SYSCONF_SC_NPROC_ONLN)
-        return (sysconf(_SC_NPROC_ONLN) > 1) ? 1 : 0;
-#elif defined(SYSCONF_SC_NPROCESSORS_ONLN)
-        return (sysconf(_SC_NPROCESSORS_ONLN) > 1) ? 1 : 0;
-#else
-       return 0;
-#endif
-
-#else
-       return 0;
-#endif
-}
-
 /****************************************************************
  Check if offset/length fit into bufsize. Should probably be
  merged with is_offset_safe, but this would require a rewrite
index 4a61753ea388e553011d19af8128bc97ac36d792..3e0df15f6523d79e3eaf626439e7ff875173ba88 100644 (file)
@@ -145,24 +145,6 @@ static void init_clock_gettime(void)
 
        have_profiling_clock = False;
 
-#ifdef HAVE_CLOCK_PROCESS_CPUTIME_ID
-       /* CLOCK_PROCESS_CPUTIME_ID is sufficiently fast that the
-        * always profiling times is plausible. Unfortunately on Linux
-        * it is only accurate if we can guarantee we will not be scheduled
-        * scheduled onto a different CPU between samples. Until there is
-        * some way to set processor affinity, we can only use this on
-        * uniprocessors.
-        */
-       if (!this_is_smp()) {
-           if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) == 0) {
-                   DEBUG(10, ("Using CLOCK_PROCESS_CPUTIME_ID "
-                               "for profile_clock\n"));
-                   __profile_clock = CLOCK_PROCESS_CPUTIME_ID;
-                   have_profiling_clock = True;
-           }
-       }
-#endif
-
 #ifdef HAVE_CLOCK_MONOTONIC
        if (!have_profiling_clock &&
            clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {