forked from rpms/glibc
Auto-sync with upstream master.
This commit is contained in:
parent
943a064b90
commit
adbfe47d74
44
glibc-revert-arena-threshold-fix.patch
Normal file
44
glibc-revert-arena-threshold-fix.patch
Normal 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. */
|
12
glibc.spec
12
glibc.spec
@ -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).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user