Auto-sync with upstream master.

This commit is contained in:
Siddhesh Poyarekar 2015-05-07 12:10:16 +05:30
parent 943a064b90
commit adbfe47d74
3 changed files with 55 additions and 3 deletions

View File

@ -0,0 +1,44 @@
Revert the following fix temporarily:
commit c26efef9798914e208329c0e8c3c73bb1135d9e3
Author: Mel Gorman <mgorman@suse.de>
Date: Thu Apr 2 12:14:14 2015 +0530
malloc: Consistently apply trim_threshold to all heaps [BZ #17195]
because it makes an openjdk bug (#1209451) more prominent, crashing java
commands.
diff --git a/malloc/arena.c b/malloc/arena.c
index 8af51f0..d85f371 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -658,7 +658,7 @@ heap_trim (heap_info *heap, size_t pad)
unsigned long pagesz = GLRO (dl_pagesize);
mchunkptr top_chunk = top (ar_ptr), p, bck, fwd;
heap_info *prev_heap;
- long new_size, top_size, extra, prev_size, misalign;
+ long new_size, top_size, top_area, extra, prev_size, misalign;
/* Can this heap go away completely? */
while (top_chunk == chunk_at_offset (heap, sizeof (*heap)))
@@ -694,9 +694,16 @@ heap_trim (heap_info *heap, size_t pad)
set_head (top_chunk, new_size | PREV_INUSE);
/*check_chunk(ar_ptr, top_chunk);*/
}
+
+ /* Uses similar logic for per-thread arenas as the main arena with systrim
+ by preserving the top pad and at least a page. */
top_size = chunksize (top_chunk);
- extra = (top_size - pad - MINSIZE - 1) & ~(pagesz - 1);
- if (extra < (long) pagesz)
+ top_area = top_size - MINSIZE - 1;
+ if (top_area <= pad)
+ return 0;
+
+ extra = ALIGN_DOWN(top_area - pad, pagesz);
+ if ((unsigned long) extra < mp_.trim_threshold)
return 0;
/* Try to shrink. */

View File

@ -1,6 +1,6 @@
%define glibcsrcdir glibc-2.21-217-g7e9c7b9
%define glibcsrcdir glibc-2.21-320-ga6d78c3
%define glibcversion 2.21.90
%define glibcrelease 10%{?dist}
%define glibcrelease 11%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@ -209,6 +209,9 @@ Patch0053: %{name}-cs-path.patch
# Remove the clock_* functions and use the ones in libc like librt does.
Patch0054: %{name}-rtkaio-clock.patch
# Temporarily revert a fix to work around bz #1209451.
Patch0055: %{name}-revert-arena-threshold-fix.patch
##############################################################################
#
# Patches from upstream
@ -579,6 +582,7 @@ package or when debugging this package.
%patch0052 -p1
%patch0053 -p1
%patch0054 -p1
%patch0055 -p1 -R
##############################################################################
# %%prep - Additional prep required...
@ -1751,6 +1755,10 @@ rm -f *.filelist*
%endif
%changelog
* Thu May 07 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-11
- Auto-sync with upstream master.
- Revert arena threshold fix to work around #1209451.
* Tue Apr 07 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-10
- Revert last auto-sync (#1209451).

View File

@ -1 +1 @@
307bb73bbc157901cd143f14c712291a glibc-2.21-217-g7e9c7b9.tar.gz
a98e79a6a741f842fd1505e54b5face8 glibc-2.21-320-ga6d78c3.tar.gz