about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2016-02-19 17:06:33 +0100
committerFlorian Weimer <fweimer@redhat.com>2016-02-19 17:06:33 +0100
commit00d4e2ea3503e6de0f198cd65343f287a51f04db (patch)
treee81b251d3f58e479bb34283b6fab79c565119515
parentaff8c7a9a700d31bdbc0ccb1b8f594ab62255e16 (diff)
downloadglibc-00d4e2ea3503e6de0f198cd65343f287a51f04db.tar.gz
glibc-00d4e2ea3503e6de0f198cd65343f287a51f04db.tar.xz
glibc-00d4e2ea3503e6de0f198cd65343f287a51f04db.zip
malloc: Remove arena_mem variable
The computed value is never used.  The accesses were data races.
-rw-r--r--ChangeLog6
-rw-r--r--malloc/arena.c6
-rw-r--r--malloc/malloc.c2
3 files changed, 6 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index fef67b4e62..52bf5c70c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2016-02-19  Florian Weimer  <fweimer@redhat.com>
 
+	* malloc/malloc.c (sysmalloc): Do not update arena_max.
+	* malloc/arena.c (arena_max): Remove.
+	(heap_trim, _int_new_arena): Do not update arena_max.
+
+2016-02-19  Florian Weimer  <fweimer@redhat.com>
+
 	* resolv/res_init.c (res_ninit): Update comment.
 
 2016-02-19  Florian Weimer  <fweimer@redhat.com>
diff --git a/malloc/arena.c b/malloc/arena.c
index 1edb4d4d35..54cf0865ea 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -91,9 +91,6 @@ static mstate free_list;
    acquired.  */
 static mutex_t list_lock = _LIBC_LOCK_INITIALIZER;
 
-/* Mapped memory in non-main arenas (reliable only for NO_THREADS). */
-static unsigned long arena_mem;
-
 /* Already initialized? */
 int __malloc_initialized = -1;
 
@@ -705,7 +702,6 @@ heap_trim (heap_info *heap, size_t pad)
       if (new_size + (HEAP_MAX_SIZE - prev_heap->size) < pad + MINSIZE + pagesz)
         break;
       ar_ptr->system_mem -= heap->size;
-      arena_mem -= heap->size;
       LIBC_PROBE (memory_heap_free, 2, heap, heap->size);
       delete_heap (heap);
       heap = prev_heap;
@@ -743,7 +739,6 @@ heap_trim (heap_info *heap, size_t pad)
     return 0;
 
   ar_ptr->system_mem -= extra;
-  arena_mem -= extra;
 
   /* Success. Adjust top accordingly. */
   set_head (top_chunk, (top_size - extra) | PREV_INUSE);
@@ -793,7 +788,6 @@ _int_new_arena (size_t size)
   a->attached_threads = 1;
   /*a->next = NULL;*/
   a->system_mem = a->max_system_mem = h->size;
-  arena_mem += h->size;
 
   /* Set up the top chunk, with proper alignment. */
   ptr = (char *) (a + 1);
diff --git a/malloc/malloc.c b/malloc/malloc.c
index d20d5955db..86e2a03452 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -2410,7 +2410,6 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av)
           && grow_heap (old_heap, MINSIZE + nb - old_size) == 0)
         {
           av->system_mem += old_heap->size - old_heap_size;
-          arena_mem += old_heap->size - old_heap_size;
           set_head (old_top, (((char *) old_heap + old_heap->size) - (char *) old_top)
                     | PREV_INUSE);
         }
@@ -2420,7 +2419,6 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av)
           heap->ar_ptr = av;
           heap->prev = old_heap;
           av->system_mem += heap->size;
-          arena_mem += heap->size;
           /* Set up the new top.  */
           top (av) = chunk_at_offset (heap, sizeof (*heap));
           set_head (top (av), (heap->size - sizeof (*heap)) | PREV_INUSE);