[pulseaudio-discuss] [PATCH RFCv3 33/51] build-sys: Add --disable-statistics

Peter Meerwald pmeerw at pmeerw.net
Tue Nov 4 15:26:28 PST 2014


From: Peter Meerwald <p.meerwald at bct-electronic.com>

to turn off keeping statistics, values reported will be zero

Signed-off-by: Peter Meerwald <pmeerw at pmeerw.net>
---
 configure.ac             | 13 ++++++++++++-
 src/pulsecore/memblock.c | 15 +++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 26ebd8c..5ecee1f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -369,7 +369,6 @@ AC_SUBST(NEON_CFLAGS)
 AM_CONDITIONAL([HAVE_NEON], [test "x$HAVE_NEON" = x1])
 AS_IF([test "x$HAVE_NEON" = "x1"], AC_DEFINE([HAVE_NEON], 1, [Have NEON support?]))
 
-
 #### libtool stuff ####
 
 LT_PREREQ(2.4)
@@ -1362,6 +1361,16 @@ AS_IF([test "x$enable_adrian_aec" != "xno"],
     [HAVE_ADRIAN_EC=1])
 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
 
+#### Statistics #####
+
+AC_ARG_ENABLE([statistics],
+    AS_HELP_STRING([--disable-statistics], [Disable performance statistics]))
+AS_IF([test "x$enable_statistics" != "xno"],
+    [HAVE_STATISTICS=1], [HAVE_STATISTICS=0])
+#//AM_CONDITIONAL([HAVE_STATISTICS], [test "x$HAVE_STATISTICS" = "x1"])
+
+AC_SUBST(HAVE_STATISTICS)
+AM_CONDITIONAL([HAVE_STATISTICS], [test "x$HAVE_STATISTICS" = "x1"])
 
 
 ###################################
@@ -1525,6 +1534,7 @@ AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
 AS_IF([test "x$HAVE_ESOUND" = "x1" -a "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
+AS_IF([test "x$HAVE_STATISTICS" = "x1"], ENABLE_STATISTICS=yes, ENABLE_STATISTICS=no)
 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
 
@@ -1581,6 +1591,7 @@ echo "
     Enable WebRTC echo canceller:  ${ENABLE_WEBRTC}
     Enable gcov coverage:          ${ENABLE_GCOV}
     Enable unit tests:             ${ENABLE_TESTS}
+    Enable statistics:             ${ENABLE_STATISTICS}
     Database
       tdb:                         ${ENABLE_TDB}
       gdbm:                        ${ENABLE_GDBM}
diff --git a/src/pulsecore/memblock.c b/src/pulsecore/memblock.c
index f8b008f..180f446 100644
--- a/src/pulsecore/memblock.c
+++ b/src/pulsecore/memblock.c
@@ -167,6 +167,7 @@ static void segment_detach(pa_memimport_segment *seg);
 PA_STATIC_FLIST_DECLARE(unused_memblocks, 0, pa_xfree);
 
 /* No lock necessary */
+#ifdef HAVE_STATISTICS
 static void stat_add(pa_memblock*b) {
     pa_assert(b);
     pa_assert(b->pool);
@@ -207,6 +208,10 @@ static void stat_remove(pa_memblock *b) {
 
     pa_atomic_dec(&b->pool->stat.n_allocated_by_type[b->type]);
 }
+#else
+#define stat_add(b)
+#define stat_remove(b)
+#endif
 
 static pa_memblock *memblock_new_appended(pa_mempool *p, size_t length);
 
@@ -685,8 +690,10 @@ static void memblock_make_local(pa_memblock *b) {
     b->read_only = false;
 
 finish:
+#ifdef HAVE_STATISTICS
     pa_atomic_inc(&b->pool->stat.n_allocated_by_type[b->type]);
     pa_atomic_inc(&b->pool->stat.n_accumulated_by_type[b->type]);
+#endif
     memblock_wait(b);
 }
 
@@ -724,10 +731,12 @@ static void memblock_replace_import(pa_memblock *b) {
     pa_assert(b);
     pa_assert(b->type == PA_MEMBLOCK_IMPORTED);
 
+#ifdef HAVE_STATISTICS
     pa_assert(pa_atomic_load(&b->pool->stat.n_imported) > 0);
     pa_assert(pa_atomic_load(&b->pool->stat.imported_size) >= (int) b->length);
     pa_atomic_dec(&b->pool->stat.n_imported);
     pa_atomic_sub(&b->pool->stat.imported_size, (int) b->length);
+#endif
 
     pa_assert_se(segment = b->per_type.imported.segment);
     pa_assert_se(import = segment->import);
@@ -805,6 +814,7 @@ void pa_mempool_free(pa_mempool *p) {
 
     pa_flist_free(p->free_slots, NULL);
 
+#ifdef HAVE_STATISTICS
     if (pa_atomic_load(&p->stat.n_allocated) > 0) {
 
         /* Ouch, somebody is retaining a memory block reference! */
@@ -848,6 +858,7 @@ void pa_mempool_free(pa_mempool *p) {
 
 /*         PA_DEBUG_TRAP; */
     }
+#endif
 
     pa_shm_free(&p->memory);
 
@@ -1148,11 +1159,13 @@ int pa_memexport_process_release(pa_memexport *e, uint32_t id) {
 
 /*     pa_log("Processing release for %u", id); */
 
+#ifdef HAVE_STATISTICS
     pa_assert(pa_atomic_load(&e->pool->stat.n_exported) > 0);
     pa_assert(pa_atomic_load(&e->pool->stat.exported_size) >= (int) b->length);
 
     pa_atomic_dec(&e->pool->stat.n_exported);
     pa_atomic_sub(&e->pool->stat.exported_size, (int) b->length);
+#endif
 
     pa_memblock_unref(b);
 
@@ -1266,8 +1279,10 @@ int pa_memexport_put(pa_memexport *e, pa_memblock *b, uint32_t *block_id, uint32
 
     pa_memblock_release(b);
 
+#ifdef HAVE_STATISTICS
     pa_atomic_inc(&e->pool->stat.n_exported);
     pa_atomic_add(&e->pool->stat.exported_size, (int) b->length);
+#endif
 
     return 0;
 }
-- 
1.9.1



More information about the pulseaudio-discuss mailing list