From 3e58fb6fa0e35f1c586462babc07a7d6fdd0f9e0d2f67a87d2a663eb745d26b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Li=C5=A1ka?= Date: Thu, 4 Apr 2019 10:13:32 +0000 Subject: [PATCH 1/6] Accepting request 691467 from home:marxin:branches:devel:libraries:c_c++ - Add disable-test_prof_log_many_traces-test.patch in order to workaround https://github.com/jemalloc/jemalloc/issues/1477. - Update to version 5.2.0: New features: * Implement oversize_threshold, which uses a dedicated arena for allocations crossing the specified threshold to reduce fragmentation. (@interwq) * Add extents usage information to stats. (@tyleretzel) * Log time information for sampled allocations. (@tyleretzel) * Support 0 size in sdallocx. (@djwatson) * Output rate for certain counters in malloc_stats. (@zinoale) * Add configure option --enable-readlinkat, which allows the use of readlinkat over readlink. (@davidtgoldblatt) * Add configure options --{enable,disable}-{static,shared} to allow not building unwanted libraries. (@Ericson2314) * Add configure option --disable-libdl to enable fully static builds. (@interwq) * Add mallctl interfaces: * opt.oversize_threshold (@interwq) * stats.arenas..extent_avail (@tyleretzel) * stats.arenas..extents..n{dirty,muzzy,retained} (@tyleretzel) * stats.arenas..extents..{dirty,muzzy,retained}_bytes (@tyleretzel) Portability improvements: * Update MSVC builds. (@maksqwe, @rustyx) * Workaround a compiler optimizer bug on s390x. (@rkmisra) * Make use of pthread_set_name_np(3) on FreeBSD. (@trasz) * Implement malloc_getcpu() to enable percpu_arena for windows. (@santagada) * Link against -pthread instead of -lpthread. (@paravoid) * Make background_thread not dependent on libdl. (@interwq) * Add stringify to fix a linker directive issue on MSVC. (@daverigby) * Detect and fall back when 8-bit atomics are unavailable. (@interwq) * Fall back to the default pthread_create(3) if dlsym(3) fails. (@interwq) Optimizations and refactors: * Refactor the TSD module. (@davidtgoldblatt) * Avoid taking extents_muzzy mutex when muzzy is disabled. (@interwq) * Avoid taking large_mtx for auto arenas on the tcache flush path. (@interwq) * Optimize ixalloc by avoiding a size lookup. (@interwq) * Implement opt.oversize_threshold which uses a dedicated arena for requests crossing the threshold, also eagerly purges the oversize extents. Default the threshold to 8 MiB. (@interwq) * Clean compilation with -Wextra. (@gnzlbg, @jasone) * Refactor the size class module. (@davidtgoldblatt) * Refactor the stats emitter. (@tyleretzel) * Optimize pow2_ceil. (@rkmisra) * Avoid runtime detection of lazy purging on FreeBSD. (@trasz) * Optimize mmap(2) alignment handling on FreeBSD. (@trasz) * Improve error handling for THP state initialization. (@jsteemann) * Rework the malloc() fast path. (@djwatson) * Rework the free() fast path. (@djwatson) * Refactor and optimize the tcache fill / flush paths. (@djwatson) * Optimize sync / lwsync on PowerPC. (@chmeeedalf) * Bypass extent_dalloc() when retain is enabled. (@interwq) * Optimize the locking on large deallocation. (@interwq) * Reduce the number of pages committed from sanity checking in debug build. (@trasz, @interwq) * Deprecate OSSpinLock. (@interwq) * Lower the default number of background threads to 4 (when the feature is enabled). (@interwq) * Optimize the trylock spin wait. (@djwatson) * Use arena index for arena-matching checks. (@interwq) * Avoid forced decay on thread termination when using background threads. (@interwq) * Disable muzzy decay by default. (@djwatson, @interwq) * Only initialize libgcc unwinder when profiling is enabled. (@paravoid, @interwq) Bug fixes (all only relevant to jemalloc 5.x): * Fix background thread index issues with max_background_threads. (@djwatson, @interwq) * Fix stats output for opt.lg_extent_max_active_fit. (@interwq) * Fix opt.prof_prefix initialization. (@davidtgoldblatt) * Properly trigger decay on tcache destroy. (@interwq, @amosbird) * Fix tcache.flush. (@interwq) * Detect whether explicit extent zero out is necessary with huge pages or custom extent hooks, which may change the purge semantics. (@interwq) * Fix a side effect caused by extent_max_active_fit combined with decay-based purging, where freed extents can accumulate and not be reused for an extended period of time. (@interwq, @mpghf) * Fix a missing unlock on extent register error handling. (@zoulasc) Testing: * Simplify the Travis script output. (@gnzlbg) * Update the test scripts for FreeBSD. (@devnexen) * Add unit tests for the producer-consumer pattern. (@interwq) * Add Cirrus-CI config for FreeBSD builds. (@jasone) * Add size-matching sanity checks on tcache flush. (@davidtgoldblatt, @interwq) Incompatible changes: * Remove --with-lg-page-sizes. (@davidtgoldblatt) Documentation: * Attempt to build docs by default, however skip doc building when xsltproc is missing. (@interwq, @cmuellner) - Change URL of the project. OBS-URL: https://build.opensuse.org/request/show/691467 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=66 --- disable-test_prof_log_many_traces-test.patch | 9 ++ jemalloc-5.1.0.tar.bz2 | 3 - jemalloc-5.2.0.tar.bz2 | 3 + jemalloc.changes | 90 ++++++++++++++++++++ jemalloc.spec | 8 +- 5 files changed, 107 insertions(+), 6 deletions(-) create mode 100644 disable-test_prof_log_many_traces-test.patch delete mode 100644 jemalloc-5.1.0.tar.bz2 create mode 100644 jemalloc-5.2.0.tar.bz2 diff --git a/disable-test_prof_log_many_traces-test.patch b/disable-test_prof_log_many_traces-test.patch new file mode 100644 index 0000000..d6ff4ef --- /dev/null +++ b/disable-test_prof_log_many_traces-test.patch @@ -0,0 +1,9 @@ +--- jemalloc-5.2.0/test/unit/prof_log.c 2019-04-03 02:51:39.000000000 +0200 ++++ jemalloc-5.2.0/test/unit/prof_log.c.new 2019-04-04 11:42:22.371447078 +0200 +@@ -141,6 +141,5 @@ + prof_log_dummy_set(true); + return test_no_reentrancy( + test_prof_log_many_logs, +- test_prof_log_many_traces, + test_prof_log_many_threads); + } diff --git a/jemalloc-5.1.0.tar.bz2 b/jemalloc-5.1.0.tar.bz2 deleted file mode 100644 index 727b937..0000000 --- a/jemalloc-5.1.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5396e61cc6103ac393136c309fae09e44d74743c86f90e266948c50f3dbb7268 -size 515622 diff --git a/jemalloc-5.2.0.tar.bz2 b/jemalloc-5.2.0.tar.bz2 new file mode 100644 index 0000000..4662282 --- /dev/null +++ b/jemalloc-5.2.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74be9f44a60d2a99398e706baa921e4efde82bf8fd16e5c0643c375c5851e3b4 +size 543892 diff --git a/jemalloc.changes b/jemalloc.changes index 5909451..eb3dc92 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -1,3 +1,93 @@ +------------------------------------------------------------------- +Thu Apr 4 09:44:44 UTC 2019 - Martin Liška + +- Add disable-test_prof_log_many_traces-test.patch in order + to workaround https://github.com/jemalloc/jemalloc/issues/1477. + +------------------------------------------------------------------- +Wed Apr 3 08:35:44 UTC 2019 - Martin Liška + +- Update to version 5.2.0: + + New features: + * Implement oversize_threshold, which uses a dedicated arena for allocations crossing the specified threshold to reduce fragmentation. (@interwq) + * Add extents usage information to stats. (@tyleretzel) + * Log time information for sampled allocations. (@tyleretzel) + * Support 0 size in sdallocx. (@djwatson) + * Output rate for certain counters in malloc_stats. (@zinoale) + * Add configure option --enable-readlinkat, which allows the use of readlinkat over readlink. (@davidtgoldblatt) + * Add configure options --{enable,disable}-{static,shared} to allow not building unwanted libraries. (@Ericson2314) + * Add configure option --disable-libdl to enable fully static builds. (@interwq) + * Add mallctl interfaces: + * opt.oversize_threshold (@interwq) + * stats.arenas..extent_avail (@tyleretzel) + * stats.arenas..extents..n{dirty,muzzy,retained} (@tyleretzel) + * stats.arenas..extents..{dirty,muzzy,retained}_bytes (@tyleretzel) + + Portability improvements: + * Update MSVC builds. (@maksqwe, @rustyx) + * Workaround a compiler optimizer bug on s390x. (@rkmisra) + * Make use of pthread_set_name_np(3) on FreeBSD. (@trasz) + * Implement malloc_getcpu() to enable percpu_arena for windows. (@santagada) + * Link against -pthread instead of -lpthread. (@paravoid) + * Make background_thread not dependent on libdl. (@interwq) + * Add stringify to fix a linker directive issue on MSVC. (@daverigby) + * Detect and fall back when 8-bit atomics are unavailable. (@interwq) + * Fall back to the default pthread_create(3) if dlsym(3) fails. (@interwq) + + Optimizations and refactors: + * Refactor the TSD module. (@davidtgoldblatt) + * Avoid taking extents_muzzy mutex when muzzy is disabled. (@interwq) + * Avoid taking large_mtx for auto arenas on the tcache flush path. (@interwq) + * Optimize ixalloc by avoiding a size lookup. (@interwq) + * Implement opt.oversize_threshold which uses a dedicated arena for requests crossing the threshold, also eagerly purges the oversize extents. Default the threshold to 8 MiB. (@interwq) + * Clean compilation with -Wextra. (@gnzlbg, @jasone) + * Refactor the size class module. (@davidtgoldblatt) + * Refactor the stats emitter. (@tyleretzel) + * Optimize pow2_ceil. (@rkmisra) + * Avoid runtime detection of lazy purging on FreeBSD. (@trasz) + * Optimize mmap(2) alignment handling on FreeBSD. (@trasz) + * Improve error handling for THP state initialization. (@jsteemann) + * Rework the malloc() fast path. (@djwatson) + * Rework the free() fast path. (@djwatson) + * Refactor and optimize the tcache fill / flush paths. (@djwatson) + * Optimize sync / lwsync on PowerPC. (@chmeeedalf) + * Bypass extent_dalloc() when retain is enabled. (@interwq) + * Optimize the locking on large deallocation. (@interwq) + * Reduce the number of pages committed from sanity checking in debug build. (@trasz, @interwq) + * Deprecate OSSpinLock. (@interwq) + * Lower the default number of background threads to 4 (when the feature is enabled). (@interwq) + * Optimize the trylock spin wait. (@djwatson) + * Use arena index for arena-matching checks. (@interwq) + * Avoid forced decay on thread termination when using background threads. (@interwq) + * Disable muzzy decay by default. (@djwatson, @interwq) + * Only initialize libgcc unwinder when profiling is enabled. (@paravoid, @interwq) + + Bug fixes (all only relevant to jemalloc 5.x): + * Fix background thread index issues with max_background_threads. (@djwatson, @interwq) + * Fix stats output for opt.lg_extent_max_active_fit. (@interwq) + * Fix opt.prof_prefix initialization. (@davidtgoldblatt) + * Properly trigger decay on tcache destroy. (@interwq, @amosbird) + * Fix tcache.flush. (@interwq) + * Detect whether explicit extent zero out is necessary with huge pages or custom extent hooks, which may change the purge semantics. (@interwq) + * Fix a side effect caused by extent_max_active_fit combined with decay-based purging, where freed extents can accumulate and not be reused for an extended period of time. (@interwq, @mpghf) + * Fix a missing unlock on extent register error handling. (@zoulasc) + + Testing: + * Simplify the Travis script output. (@gnzlbg) + * Update the test scripts for FreeBSD. (@devnexen) + * Add unit tests for the producer-consumer pattern. (@interwq) + * Add Cirrus-CI config for FreeBSD builds. (@jasone) + * Add size-matching sanity checks on tcache flush. (@davidtgoldblatt, @interwq) + + Incompatible changes: + * Remove --with-lg-page-sizes. (@davidtgoldblatt) + + Documentation: + * Attempt to build docs by default, however skip doc building when xsltproc is missing. (@interwq, @cmuellner) + +- Change URL of the project. + ------------------------------------------------------------------- Tue Oct 30 15:44:20 UTC 2018 - Michel Normand diff --git a/jemalloc.spec b/jemalloc.spec index e6ff39e..d778def 100644 --- a/jemalloc.spec +++ b/jemalloc.spec @@ -1,7 +1,7 @@ # # spec file for package jemalloc # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,13 +18,14 @@ %define lname libjemalloc2 Name: jemalloc -Version: 5.1.0 +Version: 5.2.0 Release: 0 Summary: General-purpose scalable concurrent malloc implementation License: BSD-2-Clause Group: Development/Libraries/C and C++ -Url: http://canonware.com/jemalloc/ +Url: https://github.com/jemalloc/jemalloc Source: https://github.com/jemalloc/jemalloc/releases/download/%{version}/jemalloc-%{version}.tar.bz2 +Patch0: disable-test_prof_log_many_traces-test.patch BuildRequires: docbook-xsl-stylesheets BuildRequires: libxslt BuildRequires: pkg-config @@ -66,6 +67,7 @@ malloc(3) implementation. %prep %setup -q +%patch0 -p1 %build export EXTRA_CFLAGS="%optflags -std=gnu99" From 3c58a4f9a99a3ae8e1f99a23b6a037439065be3c4fa7519ebafccb51609ac72c Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 4 Apr 2019 11:53:02 +0000 Subject: [PATCH 2/6] - Drop static library package, nothing seems to use it. - Remove openSUSE 11.1 build support. OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=67 --- jemalloc.changes | 6 ++++++ jemalloc.spec | 37 ++++--------------------------------- 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/jemalloc.changes b/jemalloc.changes index eb3dc92..18e727d 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Apr 4 11:20:31 UTC 2019 - Jan Engelhardt + +- Drop static library package, nothing seems to use it. +- Remove openSUSE 11.1 build support. + ------------------------------------------------------------------- Thu Apr 4 09:44:44 UTC 2019 - Martin Liška diff --git a/jemalloc.spec b/jemalloc.spec index d778def..122cbf6 100644 --- a/jemalloc.spec +++ b/jemalloc.spec @@ -23,17 +23,13 @@ Release: 0 Summary: General-purpose scalable concurrent malloc implementation License: BSD-2-Clause Group: Development/Libraries/C and C++ -Url: https://github.com/jemalloc/jemalloc -Source: https://github.com/jemalloc/jemalloc/releases/download/%{version}/jemalloc-%{version}.tar.bz2 +URL: http://jemalloc.net/ +Source: https://github.com/jemalloc/jemalloc/releases/download/%version/jemalloc-%version.tar.bz2 Patch0: disable-test_prof_log_many_traces-test.patch BuildRequires: docbook-xsl-stylesheets BuildRequires: libxslt BuildRequires: pkg-config Requires: %lname = %version -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if 0%{?suse_version} == 1110 -BuildRequires: gcc48 -%endif %description jemalloc is a general-purpose scalable concurrent malloc(3) implementation. @@ -56,33 +52,13 @@ Requires: %lname = %version Headers for jemalloc, general-purpose scalable concurrent malloc(3) implementation. -%package devel-static -Summary: Static libraries for jemalloc -Group: Development/Libraries/C and C++ -Requires: %name-devel = %version - -%description devel-static -Static libraries of jemalloc, general-purpose scalable concurrent -malloc(3) implementation. - %prep %setup -q %patch0 -p1 %build export EXTRA_CFLAGS="%optflags -std=gnu99" -%if 0%{?suse_version} == 1110 -if [ -f "%_bindir/gcc-4.6" ]; then - export CC=gcc-4.6 -fi -if [ -f "%_bindir/gcc-4.7" ]; then - export CC=gcc-4.7 -fi -if [ -f "%_bindir/gcc-4.8" ]; then - export CC=gcc-4.8 -fi -%endif -%configure \ +%configure --disable-static \ %ifarch %arm --disable-thp \ --disable-prof @@ -98,8 +74,7 @@ make %{?_smp_mflags} %install b="%buildroot" -make install DESTDIR="$b" -chmod -x "%buildroot/%_libdir"/*.a +%make_install if [ "%_docdir" != "%_datadir/doc" ]; then # Makefile apparently ignored the --docdir in %%configure mkdir -p "$b/%_docdir" @@ -132,8 +107,4 @@ make %{?_smp_mflags} check %_libdir/libjemalloc.so %_libdir/pkgconfig/jemalloc.pc -%files devel-static -%defattr(-,root,root) -%_libdir/libjemalloc*.a - %changelog From c0cb36e0f890d4575b84978d983d3dde29e35fdeeebd5694101123c375dc964a Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 4 Apr 2019 11:56:46 +0000 Subject: [PATCH 3/6] trim changelog that's irrelevant to the user because it affects other platforms, build procedure, or deep internals OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=68 --- jemalloc.changes | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/jemalloc.changes b/jemalloc.changes index 18e727d..62dc6c3 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -30,17 +30,6 @@ Wed Apr 3 08:35:44 UTC 2019 - Martin Liška * stats.arenas..extents..n{dirty,muzzy,retained} (@tyleretzel) * stats.arenas..extents..{dirty,muzzy,retained}_bytes (@tyleretzel) - Portability improvements: - * Update MSVC builds. (@maksqwe, @rustyx) - * Workaround a compiler optimizer bug on s390x. (@rkmisra) - * Make use of pthread_set_name_np(3) on FreeBSD. (@trasz) - * Implement malloc_getcpu() to enable percpu_arena for windows. (@santagada) - * Link against -pthread instead of -lpthread. (@paravoid) - * Make background_thread not dependent on libdl. (@interwq) - * Add stringify to fix a linker directive issue on MSVC. (@daverigby) - * Detect and fall back when 8-bit atomics are unavailable. (@interwq) - * Fall back to the default pthread_create(3) if dlsym(3) fails. (@interwq) - Optimizations and refactors: * Refactor the TSD module. (@davidtgoldblatt) * Avoid taking extents_muzzy mutex when muzzy is disabled. (@interwq) @@ -69,7 +58,7 @@ Wed Apr 3 08:35:44 UTC 2019 - Martin Liška * Disable muzzy decay by default. (@djwatson, @interwq) * Only initialize libgcc unwinder when profiling is enabled. (@paravoid, @interwq) - Bug fixes (all only relevant to jemalloc 5.x): + Bug fixes: * Fix background thread index issues with max_background_threads. (@djwatson, @interwq) * Fix stats output for opt.lg_extent_max_active_fit. (@interwq) * Fix opt.prof_prefix initialization. (@davidtgoldblatt) @@ -79,19 +68,9 @@ Wed Apr 3 08:35:44 UTC 2019 - Martin Liška * Fix a side effect caused by extent_max_active_fit combined with decay-based purging, where freed extents can accumulate and not be reused for an extended period of time. (@interwq, @mpghf) * Fix a missing unlock on extent register error handling. (@zoulasc) - Testing: - * Simplify the Travis script output. (@gnzlbg) - * Update the test scripts for FreeBSD. (@devnexen) - * Add unit tests for the producer-consumer pattern. (@interwq) - * Add Cirrus-CI config for FreeBSD builds. (@jasone) - * Add size-matching sanity checks on tcache flush. (@davidtgoldblatt, @interwq) - Incompatible changes: * Remove --with-lg-page-sizes. (@davidtgoldblatt) - Documentation: - * Attempt to build docs by default, however skip doc building when xsltproc is missing. (@interwq, @cmuellner) - - Change URL of the project. ------------------------------------------------------------------- From 102acf7fa4eb32bcf8045250f223791364852e33a3601245da47ec2246931196 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 4 Apr 2019 12:03:53 +0000 Subject: [PATCH 4/6] trim parts irrelevant for the user OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=69 --- jemalloc.changes | 94 ++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/jemalloc.changes b/jemalloc.changes index 62dc6c3..cb69b33 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -16,60 +16,60 @@ Wed Apr 3 08:35:44 UTC 2019 - Martin Liška - Update to version 5.2.0: New features: - * Implement oversize_threshold, which uses a dedicated arena for allocations crossing the specified threshold to reduce fragmentation. (@interwq) - * Add extents usage information to stats. (@tyleretzel) - * Log time information for sampled allocations. (@tyleretzel) - * Support 0 size in sdallocx. (@djwatson) - * Output rate for certain counters in malloc_stats. (@zinoale) - * Add configure option --enable-readlinkat, which allows the use of readlinkat over readlink. (@davidtgoldblatt) - * Add configure options --{enable,disable}-{static,shared} to allow not building unwanted libraries. (@Ericson2314) - * Add configure option --disable-libdl to enable fully static builds. (@interwq) + * Implement oversize_threshold, which uses a dedicated arena for allocations crossing the specified threshold to reduce fragmentation. + * Add extents usage information to stats. + * Log time information for sampled allocations. + * Support 0 size in sdallocx. + * Output rate for certain counters in malloc_stats. + * Add configure option --enable-readlinkat, which allows the use of readlinkat over readlink. + * Add configure options --{enable,disable}-{static,shared} to allow not building unwanted libraries. + * Add configure option --disable-libdl to enable fully static builds. * Add mallctl interfaces: - * opt.oversize_threshold (@interwq) - * stats.arenas..extent_avail (@tyleretzel) - * stats.arenas..extents..n{dirty,muzzy,retained} (@tyleretzel) - * stats.arenas..extents..{dirty,muzzy,retained}_bytes (@tyleretzel) + * opt.oversize_threshold + * stats.arenas..extent_avail + * stats.arenas..extents..n{dirty,muzzy,retained} + * stats.arenas..extents..{dirty,muzzy,retained}_bytes Optimizations and refactors: - * Refactor the TSD module. (@davidtgoldblatt) - * Avoid taking extents_muzzy mutex when muzzy is disabled. (@interwq) - * Avoid taking large_mtx for auto arenas on the tcache flush path. (@interwq) - * Optimize ixalloc by avoiding a size lookup. (@interwq) - * Implement opt.oversize_threshold which uses a dedicated arena for requests crossing the threshold, also eagerly purges the oversize extents. Default the threshold to 8 MiB. (@interwq) - * Clean compilation with -Wextra. (@gnzlbg, @jasone) - * Refactor the size class module. (@davidtgoldblatt) - * Refactor the stats emitter. (@tyleretzel) - * Optimize pow2_ceil. (@rkmisra) - * Avoid runtime detection of lazy purging on FreeBSD. (@trasz) - * Optimize mmap(2) alignment handling on FreeBSD. (@trasz) - * Improve error handling for THP state initialization. (@jsteemann) - * Rework the malloc() fast path. (@djwatson) - * Rework the free() fast path. (@djwatson) - * Refactor and optimize the tcache fill / flush paths. (@djwatson) - * Optimize sync / lwsync on PowerPC. (@chmeeedalf) - * Bypass extent_dalloc() when retain is enabled. (@interwq) - * Optimize the locking on large deallocation. (@interwq) - * Reduce the number of pages committed from sanity checking in debug build. (@trasz, @interwq) - * Deprecate OSSpinLock. (@interwq) - * Lower the default number of background threads to 4 (when the feature is enabled). (@interwq) - * Optimize the trylock spin wait. (@djwatson) - * Use arena index for arena-matching checks. (@interwq) - * Avoid forced decay on thread termination when using background threads. (@interwq) - * Disable muzzy decay by default. (@djwatson, @interwq) - * Only initialize libgcc unwinder when profiling is enabled. (@paravoid, @interwq) + * Refactor the TSD module. + * Avoid taking extents_muzzy mutex when muzzy is disabled. + * Avoid taking large_mtx for auto arenas on the tcache flush path. + * Optimize ixalloc by avoiding a size lookup. + * Implement opt.oversize_threshold which uses a dedicated arena for requests crossing the threshold, also eagerly purges the oversize extents. Default the threshold to 8 MiB. + * Clean compilation with -Wextra. + * Refactor the size class module. + * Refactor the stats emitter. + * Optimize pow2_ceil. + * Avoid runtime detection of lazy purging on FreeBSD. + * Optimize mmap(2) alignment handling on FreeBSD. + * Improve error handling for THP state initialization. + * Rework the malloc() fast path. + * Rework the free() fast path. + * Refactor and optimize the tcache fill / flush paths. + * Optimize sync / lwsync on PowerPC. + * Bypass extent_dalloc() when retain is enabled. + * Optimize the locking on large deallocation. + * Reduce the number of pages committed from sanity checking in debug build. + * Deprecate OSSpinLock. + * Lower the default number of background threads to 4 (when the feature is enabled). + * Optimize the trylock spin wait. + * Use arena index for arena-matching checks. + * Avoid forced decay on thread termination when using background threads. + * Disable muzzy decay by default. + * Only initialize libgcc unwinder when profiling is enabled. Bug fixes: - * Fix background thread index issues with max_background_threads. (@djwatson, @interwq) - * Fix stats output for opt.lg_extent_max_active_fit. (@interwq) - * Fix opt.prof_prefix initialization. (@davidtgoldblatt) - * Properly trigger decay on tcache destroy. (@interwq, @amosbird) - * Fix tcache.flush. (@interwq) - * Detect whether explicit extent zero out is necessary with huge pages or custom extent hooks, which may change the purge semantics. (@interwq) - * Fix a side effect caused by extent_max_active_fit combined with decay-based purging, where freed extents can accumulate and not be reused for an extended period of time. (@interwq, @mpghf) - * Fix a missing unlock on extent register error handling. (@zoulasc) + * Fix background thread index issues with max_background_threads. + * Fix stats output for opt.lg_extent_max_active_fit. + * Fix opt.prof_prefix initialization. + * Properly trigger decay on tcache destroy. + * Fix tcache.flush. + * Detect whether explicit extent zero out is necessary with huge pages or custom extent hooks, which may change the purge semantics. + * Fix a side effect caused by extent_max_active_fit combined with decay-based purging, where freed extents can accumulate and not be reused for an extended period of time. + * Fix a missing unlock on extent register error handling. Incompatible changes: - * Remove --with-lg-page-sizes. (@davidtgoldblatt) + * Remove --with-lg-page-sizes. - Change URL of the project. From 0c88622de0f7564a597251cd0096adf29c2492e243511f7fc05dce94c07bc9eb Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 4 Apr 2019 12:05:04 +0000 Subject: [PATCH 5/6] adhere to openSUSE changelog syntax guideline OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=70 --- jemalloc.changes | 122 +++++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 56 deletions(-) diff --git a/jemalloc.changes b/jemalloc.changes index cb69b33..edc691b 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -14,62 +14,72 @@ Thu Apr 4 09:44:44 UTC 2019 - Martin Liška Wed Apr 3 08:35:44 UTC 2019 - Martin Liška - Update to version 5.2.0: - - New features: - * Implement oversize_threshold, which uses a dedicated arena for allocations crossing the specified threshold to reduce fragmentation. - * Add extents usage information to stats. - * Log time information for sampled allocations. - * Support 0 size in sdallocx. - * Output rate for certain counters in malloc_stats. - * Add configure option --enable-readlinkat, which allows the use of readlinkat over readlink. - * Add configure options --{enable,disable}-{static,shared} to allow not building unwanted libraries. - * Add configure option --disable-libdl to enable fully static builds. - * Add mallctl interfaces: - * opt.oversize_threshold - * stats.arenas..extent_avail - * stats.arenas..extents..n{dirty,muzzy,retained} - * stats.arenas..extents..{dirty,muzzy,retained}_bytes - - Optimizations and refactors: - * Refactor the TSD module. - * Avoid taking extents_muzzy mutex when muzzy is disabled. - * Avoid taking large_mtx for auto arenas on the tcache flush path. - * Optimize ixalloc by avoiding a size lookup. - * Implement opt.oversize_threshold which uses a dedicated arena for requests crossing the threshold, also eagerly purges the oversize extents. Default the threshold to 8 MiB. - * Clean compilation with -Wextra. - * Refactor the size class module. - * Refactor the stats emitter. - * Optimize pow2_ceil. - * Avoid runtime detection of lazy purging on FreeBSD. - * Optimize mmap(2) alignment handling on FreeBSD. - * Improve error handling for THP state initialization. - * Rework the malloc() fast path. - * Rework the free() fast path. - * Refactor and optimize the tcache fill / flush paths. - * Optimize sync / lwsync on PowerPC. - * Bypass extent_dalloc() when retain is enabled. - * Optimize the locking on large deallocation. - * Reduce the number of pages committed from sanity checking in debug build. - * Deprecate OSSpinLock. - * Lower the default number of background threads to 4 (when the feature is enabled). - * Optimize the trylock spin wait. - * Use arena index for arena-matching checks. - * Avoid forced decay on thread termination when using background threads. - * Disable muzzy decay by default. - * Only initialize libgcc unwinder when profiling is enabled. - - Bug fixes: - * Fix background thread index issues with max_background_threads. - * Fix stats output for opt.lg_extent_max_active_fit. - * Fix opt.prof_prefix initialization. - * Properly trigger decay on tcache destroy. - * Fix tcache.flush. - * Detect whether explicit extent zero out is necessary with huge pages or custom extent hooks, which may change the purge semantics. - * Fix a side effect caused by extent_max_active_fit combined with decay-based purging, where freed extents can accumulate and not be reused for an extended period of time. - * Fix a missing unlock on extent register error handling. - - Incompatible changes: - * Remove --with-lg-page-sizes. + * New features: + * Implement oversize_threshold, which uses a dedicated arena + for allocations crossing the specified threshold to reduce + fragmentation. + * Add extents usage information to stats. + * Log time information for sampled allocations. + * Support 0 size in sdallocx. + * Output rate for certain counters in malloc_stats. + * Add configure option --enable-readlinkat, which allows the + use of readlinkat over readlink. + * Add configure options --{enable,disable}-{static,shared} to + allow not building unwanted libraries. + * Add configure option --disable-libdl to enable fully static + builds. + * Add mallctl interfaces: + * opt.oversize_threshold + * stats.arenas..extent_avail + * stats.arenas..extents..n{dirty,muzzy,retained} + * stats.arenas..extents..{dirty,muzzy,retained}_bytes + * Optimizations and refactors: + * Refactor the TSD module. + * Avoid taking extents_muzzy mutex when muzzy is disabled. + * Avoid taking large_mtx for auto arenas on the tcache flush path. + * Optimize ixalloc by avoiding a size lookup. + * Implement opt.oversize_threshold which uses a dedicated arena + for requests crossing the threshold, also eagerly purges the + oversize extents. Default the threshold to 8 MiB. + * Clean compilation with -Wextra. + * Refactor the size class module. + * Refactor the stats emitter. + * Optimize pow2_ceil. + * Avoid runtime detection of lazy purging on FreeBSD. + * Optimize mmap(2) alignment handling on FreeBSD. + * Improve error handling for THP state initialization. + * Rework the malloc() fast path. + * Rework the free() fast path. + * Refactor and optimize the tcache fill / flush paths. + * Optimize sync / lwsync on PowerPC. + * Bypass extent_dalloc() when retain is enabled. + * Optimize the locking on large deallocation. + * Reduce the number of pages committed from sanity checking in + debug build. + * Deprecate OSSpinLock. + * Lower the default number of background threads to 4 (when the + feature is enabled). + * Optimize the trylock spin wait. + * Use arena index for arena-matching checks. + * Avoid forced decay on thread termination when using + background threads. + * Disable muzzy decay by default. + * Only initialize libgcc unwinder when profiling is enabled. + * Bug fixes: + * Fix background thread index issues with max_background_threads. + * Fix stats output for opt.lg_extent_max_active_fit. + * Fix opt.prof_prefix initialization. + * Properly trigger decay on tcache destroy. + * Fix tcache.flush. + * Detect whether explicit extent zero out is necessary with + huge pages or custom extent hooks, which may change the purge + semantics. + * Fix a side effect caused by extent_max_active_fit combined + with decay-based purging, where freed extents can accumulate + and not be reused for an extended period of time. + * Fix a missing unlock on extent register error handling. + * Incompatible changes: + * Remove --with-lg-page-sizes. - Change URL of the project. From 7e8e75282e838b350cd8edce20feeac9df95fe54dc7a5d957236c5c4c9e0d371 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 4 Apr 2019 12:22:01 +0000 Subject: [PATCH 6/6] remove more build-related or changes not directly visible on the surface OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=71 --- jemalloc.changes | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/jemalloc.changes b/jemalloc.changes index edc691b..a4014e4 100644 --- a/jemalloc.changes +++ b/jemalloc.changes @@ -22,12 +22,6 @@ Wed Apr 3 08:35:44 UTC 2019 - Martin Liška * Log time information for sampled allocations. * Support 0 size in sdallocx. * Output rate for certain counters in malloc_stats. - * Add configure option --enable-readlinkat, which allows the - use of readlinkat over readlink. - * Add configure options --{enable,disable}-{static,shared} to - allow not building unwanted libraries. - * Add configure option --disable-libdl to enable fully static - builds. * Add mallctl interfaces: * opt.oversize_threshold * stats.arenas..extent_avail @@ -35,31 +29,15 @@ Wed Apr 3 08:35:44 UTC 2019 - Martin Liška * stats.arenas..extents..{dirty,muzzy,retained}_bytes * Optimizations and refactors: * Refactor the TSD module. - * Avoid taking extents_muzzy mutex when muzzy is disabled. - * Avoid taking large_mtx for auto arenas on the tcache flush path. - * Optimize ixalloc by avoiding a size lookup. * Implement opt.oversize_threshold which uses a dedicated arena for requests crossing the threshold, also eagerly purges the oversize extents. Default the threshold to 8 MiB. - * Clean compilation with -Wextra. - * Refactor the size class module. - * Refactor the stats emitter. - * Optimize pow2_ceil. - * Avoid runtime detection of lazy purging on FreeBSD. - * Optimize mmap(2) alignment handling on FreeBSD. * Improve error handling for THP state initialization. - * Rework the malloc() fast path. - * Rework the free() fast path. * Refactor and optimize the tcache fill / flush paths. * Optimize sync / lwsync on PowerPC. * Bypass extent_dalloc() when retain is enabled. - * Optimize the locking on large deallocation. - * Reduce the number of pages committed from sanity checking in - debug build. - * Deprecate OSSpinLock. * Lower the default number of background threads to 4 (when the feature is enabled). - * Optimize the trylock spin wait. * Use arena index for arena-matching checks. * Avoid forced decay on thread termination when using background threads. @@ -68,9 +46,7 @@ Wed Apr 3 08:35:44 UTC 2019 - Martin Liška * Bug fixes: * Fix background thread index issues with max_background_threads. * Fix stats output for opt.lg_extent_max_active_fit. - * Fix opt.prof_prefix initialization. * Properly trigger decay on tcache destroy. - * Fix tcache.flush. * Detect whether explicit extent zero out is necessary with huge pages or custom extent hooks, which may change the purge semantics.