[sr-dev] git:master:9645be24: core: mem - use own functions for shm mod stats get operation

Daniel-Constantin Mierla miconda at gmail.com
Wed Sep 9 18:50:01 CEST 2020


Module: kamailio
Branch: master
Commit: 9645be245f899fa8ae11a6be045d2ef83fd66bf5
URL: https://github.com/kamailio/kamailio/commit/9645be245f899fa8ae11a6be045d2ef83fd66bf5

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2020-09-09T18:44:46+02:00

core: mem - use own functions for shm mod stats get operation

- protect with global lock for shm stats

---

Modified: src/core/mem/f_malloc.c
Modified: src/core/mem/q_malloc.c
Modified: src/core/mem/tlsf_malloc.c

---

Diff:  https://github.com/kamailio/kamailio/commit/9645be245f899fa8ae11a6be045d2ef83fd66bf5.diff
Patch: https://github.com/kamailio/kamailio/commit/9645be245f899fa8ae11a6be045d2ef83fd66bf5.patch

---

diff --git a/src/core/mem/f_malloc.c b/src/core/mem/f_malloc.c
index 2363700c0b..38f686ff2c 100644
--- a/src/core/mem/f_malloc.c
+++ b/src/core/mem/f_malloc.c
@@ -1367,6 +1367,16 @@ void fm_shm_sums(void* qmp)
 	fm_sums(qmp);
 	fm_shm_unlock();
 }
+void fm_shm_mod_get_stats(void *qmp, void **qm_rootp)
+{
+	fm_shm_lock();
+	fm_mod_get_stats(qmp, qm_rootp);
+	fm_shm_unlock();
+}
+void fm_shm_mod_free_stats(void *qm_rootp)
+{
+	fm_mod_free_stats(qm_rootp);
+}
 
 
 /**
@@ -1413,8 +1423,8 @@ int fm_malloc_init_shm_manager(void)
 	ma.xavailable     = fm_shm_available;
 	ma.xsums          = fm_shm_sums;
 	ma.xdestroy       = fm_malloc_destroy_shm_manager;
-	ma.xmodstats      = fm_mod_get_stats;
-	ma.xfmodstats     = fm_mod_free_stats;
+	ma.xmodstats      = fm_shm_mod_get_stats;
+	ma.xfmodstats     = fm_shm_mod_free_stats;
 	ma.xglock         = fm_shm_glock;
 	ma.xgunlock       = fm_shm_gunlock;
 
diff --git a/src/core/mem/q_malloc.c b/src/core/mem/q_malloc.c
index b518bfab81..94f972eae9 100644
--- a/src/core/mem/q_malloc.c
+++ b/src/core/mem/q_malloc.c
@@ -1350,7 +1350,16 @@ void qm_shm_sums(void* qmp)
 	qm_sums(qmp);
 	qm_shm_unlock();
 }
-
+void qm_shm_mod_get_stats(void *qmp, void **qm_rootp)
+{
+	qm_shm_lock();
+	qm_mod_get_stats(qmp, qm_rootp);
+	qm_shm_unlock();
+}
+void qm_shm_mod_free_stats(void *qm_rootp)
+{
+	qm_mod_free_stats(qm_rootp);
+}
 
 /**
  * \brief Destroy memory pool
@@ -1396,8 +1405,8 @@ int qm_malloc_init_shm_manager(void)
 	ma.xavailable     = qm_shm_available;
 	ma.xsums          = qm_shm_sums;
 	ma.xdestroy       = qm_malloc_destroy_shm_manager;
-	ma.xmodstats      = qm_mod_get_stats;
-	ma.xfmodstats     = qm_mod_free_stats;
+	ma.xmodstats      = qm_shm_mod_get_stats;
+	ma.xfmodstats     = qm_shm_mod_free_stats;
 	ma.xglock         = qm_shm_glock;
 	ma.xgunlock       = qm_shm_gunlock;
 
diff --git a/src/core/mem/tlsf_malloc.c b/src/core/mem/tlsf_malloc.c
index 33bbf4869d..10db30264b 100644
--- a/src/core/mem/tlsf_malloc.c
+++ b/src/core/mem/tlsf_malloc.c
@@ -1607,6 +1607,16 @@ void tlsf_shm_sums(void* tlsfmp)
 	tlsf_sums(tlsfmp);
 	tlsf_shm_unlock();
 }
+void tlsf_shm_mod_get_stats(void *qmp, void **qm_rootp)
+{
+	tlsf_shm_lock();
+	tlsf_mod_get_stats(qmp, qm_rootp);
+	tlsf_shm_unlock();
+}
+void tlsf_shm_mod_free_stats(void *qm_rootp)
+{
+	tlsf_mod_free_stats(qm_rootp);
+}
 
 
 /**
@@ -1653,8 +1663,8 @@ int tlsf_malloc_init_shm_manager(void)
 	ma.xavailable     = tlsf_shm_available;
 	ma.xsums          = tlsf_shm_sums;
 	ma.xdestroy       = tlsf_malloc_destroy_shm_manager;
-	ma.xmodstats      = tlsf_mod_get_stats;
-	ma.xfmodstats     = tlsf_mod_free_stats;
+	ma.xmodstats      = tlsf_shm_mod_get_stats;
+	ma.xfmodstats     = tlsf_shm_mod_free_stats;
 	ma.xglock         = tlsf_shm_glock;
 	ma.xgunlock       = tlsf_shm_gunlock;
 




More information about the sr-dev mailing list