* src/vmcore/statistics.c (size_lock_record_pool): Added.
authortwisti <none@none>
Wed, 21 Mar 2007 14:26:09 +0000 (14:26 +0000)
committertwisti <none@none>
Wed, 21 Mar 2007 14:26:09 +0000 (14:26 +0000)
(statistics_print_memory_usage): Print new variable.

* src/vmcore/statistics.h (size_lock_record_pool): Added.

* src/threads/native/lock.c (lock_record_alloc_new_pool): Added
statistics.

src/threads/native/lock.c
src/vmcore/statistics.c
src/vmcore/statistics.h

index 2fa45ac6fe6957d5105931d9a3410a5ffb0af0ae..6eeec822fb1f4ab88d694f33e7b59541cbac7c11 100644 (file)
@@ -306,29 +306,35 @@ ptrint lock_pre_compute_thinlock(s4 index)
 
 static lock_record_pool_t *lock_record_alloc_new_pool(threadobject *thread, int size)
 {
-       int i;
        lock_record_pool_t *pool;
+       s4                  i;
 
        /* get the pool from the memory allocator */
 
        pool = mem_alloc(sizeof(lock_record_pool_header_t)
                                   + sizeof(lock_record_t) * size);
 
+#if defined(ENABLE_STATISTICS)
+       if (opt_stat)
+               size_lock_record_pool += sizeof(lock_record_pool_header_t) +
+                       sizeof(lock_record_t) * size;
+#endif
+
        /* initialize the pool header */
 
        pool->header.size = size;
 
        /* initialize the individual lock records */
 
-       for (i=0; i<size; i++) {
+       for (i = 0; i < size; i++) {
                lock_record_init(&pool->lr[i], thread);
 
-               pool->lr[i].nextfree = &pool->lr[i+1];
+               pool->lr[i].nextfree = &pool->lr[i + 1];
        }
 
        /* terminate free list */
 
-       pool->lr[i-1].nextfree = NULL;
+       pool->lr[i - 1].nextfree = NULL;
 
        return pool;
 }
@@ -352,24 +358,24 @@ static lock_record_pool_t *lock_record_alloc_pool(threadobject *t, int size)
 {
        pthread_mutex_lock(&lock_global_pool_lock);
 
-       if (lock_global_pool) {
+       if (lock_global_pool != NULL) {
                int i;
                lock_record_pool_t *pool;
 
                /* pop a pool from the global freelist */
 
-               pool = lock_global_pool;
+               pool             = lock_global_pool;
                lock_global_pool = pool->header.next;
 
                pthread_mutex_unlock(&lock_global_pool_lock);
 
                /* re-initialize owner and freelist chaining */
 
-               for (i=0; i < pool->header.size; i++) {
-                       pool->lr[i].owner = NULL;
-                       pool->lr[i].nextfree = &pool->lr[i+1];
+               for (i = 0; i < pool->header.size; i++) {
+                       pool->lr[i].owner    = NULL;
+                       pool->lr[i].nextfree = &pool->lr[i + 1];
                }
-               pool->lr[i-1].nextfree = NULL;
+               pool->lr[i - 1].nextfree = NULL;
 
                return pool;
        }
@@ -400,7 +406,7 @@ void lock_record_free_pools(lock_record_pool_t *pool)
                       /*     algorithm. We must find another way to free  */
                       /*     unused lock records.                         */
 
-       if (!pool)
+       if (pool == NULL)
                return;
 
        pthread_mutex_lock(&lock_global_pool_lock);
@@ -408,6 +414,7 @@ void lock_record_free_pools(lock_record_pool_t *pool)
        /* find the last pool in the list */
 
        last = &pool->header;
+
        while (last->next)
                last = &last->next->header;
 
index 3da38048c4156fa3c67f61cb7f5fbfab1dc1fdc9..9d6a67b32ca4fad35c9439f3ac1b401b055f7f32 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: statistics.c 7549 2007-03-21 13:27:14Z twisti $
+   $Id: statistics.c 7551 2007-03-21 14:26:09Z twisti $
 
 */
 
@@ -76,18 +76,20 @@ s4 globaluseddumpsize = 0;
 
 /* variables for measurements *************************************************/
 
-s4 size_classinfo      = 0;
-s4 size_fieldinfo      = 0;
-s4 size_methodinfo     = 0;
-s4 size_lineinfo       = 0;
-s4 size_codeinfo       = 0;
+s4 size_classinfo        = 0;
+s4 size_fieldinfo        = 0;
+s4 size_methodinfo       = 0;
+s4 size_lineinfo         = 0;
+s4 size_codeinfo         = 0;
 
-s4 size_stack_map      = 0;
-s4 size_string         = 0;
+s4 size_stack_map        = 0;
+s4 size_string           = 0;
 
-s4 size_threadobject   = 0;
-s4 size_lock_hashtable = 0;
-s4 size_lock_waiter    = 0;
+s4 size_threadobject     = 0;
+
+s4 size_lock_record_pool = 0;
+s4 size_lock_hashtable   = 0;
+s4 size_lock_waiter      = 0;
 
 int count_const_pool_len = 0;
 int count_classref_len = 0;
@@ -638,6 +640,7 @@ void statistics_print_memory_usage(void)
        printf("stack map:              %10d\n", size_stack_map);
        printf("string:                 %10d\n", size_string);
        printf("threadobject:           %10d\n", size_threadobject);
+       printf("lock record pool:       %10d\n", size_lock_record_pool);
        printf("lock hashtable:         %10d\n", size_lock_hashtable);
        printf("lock waiter:            %10d\n", size_lock_waiter);
        printf("                         ----------\n");
@@ -655,6 +658,7 @@ void statistics_print_memory_usage(void)
                size_stack_map +
                size_string +
                size_threadobject +
+               size_lock_record_pool +
                size_lock_hashtable +
                size_lock_waiter;
 
index efd2088390ee80471313719effbe6c117cd4a851..f0254801000840e98b9624dd1419ea48deda84d4 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: statistics.h 7549 2007-03-21 13:27:14Z twisti $
+   $Id: statistics.h 7551 2007-03-21 14:26:09Z twisti $
 
 */
 
@@ -99,6 +99,8 @@ extern s4 size_stack_map;
 extern s4 size_string;
 
 extern s4 size_threadobject;
+
+extern s4 size_lock_record_pool;
 extern s4 size_lock_hashtable;
 extern s4 size_lock_waiter;