pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/jemalloc jemalloc: update to 5.3.0.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/794ca63f7305
branches:  trunk
changeset: 385811:794ca63f7305
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Mon Sep 26 18:02:21 2022 +0000

description:
jemalloc: update to 5.3.0.

* 5.3.0 (May 6, 2022)

  This release contains many speed and space optimizations, from micro
  optimizations on common paths to rework of internal data structures and
  locking schemes, and many more too detailed to list below.  Multiple percent
  of system level metric improvements were measured in tested production
  workloads.  The release has gone through large-scale production testing.

  New features:
  - Add the thread.idle mallctl which hints that the calling thread will be
    idle for a nontrivial period of time.  (@davidtgoldblatt)
  - Allow small size classes to be the maximum size class to cache in the
    thread-specific cache, through the opt.[lg_]tcache_max option.  (@interwq,
    @jordalgo)
  - Make the behavior of realloc(ptr, 0) configurable with opt.zero_realloc.
    (@davidtgoldblatt)
  - Add 'make uninstall' support.  (@sangshuduo, @Lapenkov)
  - Support C++17 over-aligned allocation.  (@marksantaniello)
  - Add the thread.peak mallctl for approximate per-thread peak memory tracking.
    (@davidtgoldblatt)
  - Add interval-based stats output opt.stats_interval.  (@interwq)
  - Add prof.prefix to override filename prefixes for dumps.  (@zhxchen17)
  - Add high resolution timestamp support for profiling.  (@tyroguru)
  - Add the --collapsed flag to jeprof for flamegraph generation.
    (@igorwwwwwwwwwwwwwwwwwwww)
  - Add the --debug-syms-by-id option to jeprof for debug symbols discovery.
    (@DeannaGelbart)
  - Add the opt.prof_leak_error option to exit with error code when leak is
    detected using opt.prof_final.  (@yunxuo)
  - Add opt.cache_oblivious as an runtime alternative to config.cache_oblivious.
    (@interwq)
  - Add mallctl interfaces:
    + opt.zero_realloc  (@davidtgoldblatt)
    + opt.cache_oblivious  (@interwq)
    + opt.prof_leak_error  (@yunxuo)
    + opt.stats_interval  (@interwq)
    + opt.stats_interval_opts  (@interwq)
    + opt.tcache_max  (@interwq)
    + opt.trust_madvise  (@azat)
    + prof.prefix  (@zhxchen17)
    + stats.zero_reallocs  (@davidtgoldblatt)
    + thread.idle  (@davidtgoldblatt)
    + thread.peak.{read,reset}  (@davidtgoldblatt)

  Bug fixes:
  - Fix the synchronization around explicit tcache creation which could cause
    invalid tcache identifiers.  This regression was first released in 5.0.0.
    (@yoshinorim, @davidtgoldblatt)
  - Fix a profiling biasing issue which could cause incorrect heap usage and
    object counts.  This issue existed in all previous releases with the heap
    profiling feature.  (@davidtgoldblatt)
  - Fix the order of stats counter updating on large realloc which could cause
    failed assertions.  This regression was first released in 5.0.0.  (@azat)
  - Fix the locking on the arena destroy mallctl, which could cause concurrent
    arena creations to fail.  This functionality was first introduced in 5.0.0.
    (@interwq)

  Portability improvements:
  - Remove nothrow from system function declarations on macOS and FreeBSD.
    (@davidtgoldblatt, @fredemmott, @leres)
  - Improve overcommit and page alignment settings on NetBSD.  (@zoulasc)
  - Improve CPU affinity support on BSD platforms.  (@devnexen)
  - Improve utrace detection and support.  (@devnexen)
  - Improve QEMU support with MADV_DONTNEED zeroed pages detection.  (@azat)
  - Add memcntl support on Solaris / illumos.  (@devnexen)
  - Improve CPU_SPINWAIT on ARM.  (@AWSjswinney)
  - Improve TSD cleanup on FreeBSD.  (@Lapenkov)
  - Disable percpu_arena if the CPU count cannot be reliably detected.  (@azat)
  - Add malloc_size(3) override support.  (@devnexen)
  - Add mmap VM_MAKE_TAG support.  (@devnexen)
  - Add support for MADV_[NO]CORE.  (@devnexen)
  - Add support for DragonFlyBSD.  (@devnexen)
  - Fix the QUANTUM setting on MIPS64.  (@brooksdavis)
  - Add the QUANTUM setting for ARC.  (@vineetgarc)
  - Add the QUANTUM setting for LoongArch.  (@wangjl-uos)
  - Add QNX support.  (@jqian-aurora)
  - Avoid atexit(3) calls unless the relevant profiling features are enabled.
    (@BusyJay, @laiwei-rice, @interwq)
  - Fix unknown option detection when using Clang.  (@Lapenkov)
  - Fix symbol conflict with musl libc.  (@georgthegreat)
  - Add -Wimplicit-fallthrough checks.  (@nickdesaulniers)
  - Add __forceinline support on MSVC.  (@santagada)
  - Improve FreeBSD and Windows CI support.  (@Lapenkov)
  - Add CI support for PPC64LE architecture.  (@ezeeyahoo)

  Incompatible changes:
  - Maximum size class allowed in tcache (opt.[lg_]tcache_max) now has an upper
    bound of 8MiB.  (@interwq)

  Optimizations and refactors (@davidtgoldblatt, @Lapenkov, @interwq):
  - Optimize the common cases of the thread cache operations.
  - Optimize internal data structures, including RB tree and pairing heap.
  - Optimize the internal locking on extent management.
  - Extract and refactor the internal page allocator and interface modules.

  Documentation:
  - Fix doc build with --with-install-suffix.  (@lawmurray, @interwq)
  - Add PROFILING_INTERNALS.md.  (@davidtgoldblatt)
  - Ensure the proper order of doc building and installation.  (@Mingli-Yu)

diffstat:

 devel/jemalloc/Makefile                  |   6 +--
 devel/jemalloc/buildlink3.mk             |   4 +-
 devel/jemalloc/distinfo                  |  11 ++---
 devel/jemalloc/patches/patch-Makefile.in |  59 +++++++++++++++++++++++++++----
 devel/jemalloc/patches/patch-src_pages.c |  21 -----------
 5 files changed, 60 insertions(+), 41 deletions(-)

diffs (152 lines):

diff -r d485584c5313 -r 794ca63f7305 devel/jemalloc/Makefile
--- a/devel/jemalloc/Makefile   Mon Sep 26 17:57:31 2022 +0000
+++ b/devel/jemalloc/Makefile   Mon Sep 26 18:02:21 2022 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.21 2022/06/28 11:31:45 wiz Exp $
+# $NetBSD: Makefile,v 1.22 2022/09/26 18:02:21 wiz Exp $
 
-DISTNAME=      jemalloc-5.2.1
-PKGREVISION=   4
+DISTNAME=      jemalloc-5.3.0
 CATEGORIES=    devel
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=jemalloc/}
 GITHUB_RELEASE=        ${PKGVERSION_NOREV}
@@ -30,5 +29,4 @@
 TEST_ENV=              LD_LIBRARY_PATH=${WRKSRC}/lib
 
 .include "options.mk"
-
 .include "../../mk/bsd.pkg.mk"
diff -r d485584c5313 -r 794ca63f7305 devel/jemalloc/buildlink3.mk
--- a/devel/jemalloc/buildlink3.mk      Mon Sep 26 17:57:31 2022 +0000
+++ b/devel/jemalloc/buildlink3.mk      Mon Sep 26 18:02:21 2022 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.3 2022/06/28 11:31:45 wiz Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/09/26 18:02:21 wiz Exp $
 
 BUILDLINK_TREE+=       jemalloc
 
@@ -6,7 +6,7 @@
 JEMALLOC_BUILDLINK3_MK:=
 
 BUILDLINK_API_DEPENDS.jemalloc+=       jemalloc>=4.0.0
-BUILDLINK_ABI_DEPENDS.jemalloc?=               jemalloc>=5.2.1nb4
+BUILDLINK_ABI_DEPENDS.jemalloc?=       jemalloc>=5.2.1nb4
 BUILDLINK_PKGSRCDIR.jemalloc?=         ../../devel/jemalloc
 .endif # JEMALLOC_BUILDLINK3_MK
 
diff -r d485584c5313 -r 794ca63f7305 devel/jemalloc/distinfo
--- a/devel/jemalloc/distinfo   Mon Sep 26 17:57:31 2022 +0000
+++ b/devel/jemalloc/distinfo   Mon Sep 26 18:02:21 2022 +0000
@@ -1,9 +1,8 @@
-$NetBSD: distinfo,v 1.16 2021/10/26 10:15:07 nia Exp $
+$NetBSD: distinfo,v 1.17 2022/09/26 18:02:21 wiz Exp $
 
-BLAKE2s (jemalloc-5.2.1.tar.bz2) = a580a7fdd97dd82f1daf1b0059f229a6d34c65d76452cfc5673da1ac1a29a140
-SHA512 (jemalloc-5.2.1.tar.bz2) = 0bbb77564d767cef0c6fe1b97b705d368ddb360d55596945aea8c3ba5889fbce10479d85ad492c91d987caacdbbdccc706aa3688e321460069f00c05814fae02
-Size (jemalloc-5.2.1.tar.bz2) = 554279 bytes
-SHA1 (patch-Makefile.in) = 62e04375dec9aab678fed5bc32559deb942e799f
+BLAKE2s (jemalloc-5.3.0.tar.bz2) = 285e6145b9d3b575b1ec5cfdae8af40b461149085f001839d64685c0d56e2689
+SHA512 (jemalloc-5.3.0.tar.bz2) = 22907bb052096e2caffb6e4e23548aecc5cc9283dce476896a2b1127eee64170e3562fa2e7db9571298814a7a2c7df6e8d1fbe152bd3f3b0c1abec22a2de34b1
+Size (jemalloc-5.3.0.tar.bz2) = 736023 bytes
+SHA1 (patch-Makefile.in) = aa51f2e9b1f6f72e428b2381d5ece4924c7f448a
 SHA1 (patch-configure) = 5dec3fb5b2ece549e40743780db3057dd83cc17e
 SHA1 (patch-include_jemalloc_internal_quantum.h) = e291b59958813fc1af28bea0a5a63d5715090a48
-SHA1 (patch-src_pages.c) = 57d5f743efc8d9a5c5e2619b0acde08b3404659c
diff -r d485584c5313 -r 794ca63f7305 devel/jemalloc/patches/patch-Makefile.in
--- a/devel/jemalloc/patches/patch-Makefile.in  Mon Sep 26 17:57:31 2022 +0000
+++ b/devel/jemalloc/patches/patch-Makefile.in  Mon Sep 26 18:02:21 2022 +0000
@@ -1,17 +1,60 @@
-$NetBSD: patch-Makefile.in,v 1.2 2016/12/13 21:52:22 maya Exp $
+$NetBSD: patch-Makefile.in,v 1.3 2022/09/26 18:02:21 wiz Exp $
 
 Fix permissions of installed static libraries.
 
---- Makefile.in.orig   2016-11-16 22:15:43.000000000 +0100
-+++ Makefile.in        2016-11-16 22:17:04.000000000 +0100
-@@ -348,8 +348,8 @@
+--- Makefile.in.orig   2022-05-06 18:29:14.000000000 +0000
++++ Makefile.in
+@@ -555,18 +555,18 @@ endif
+ install_bin:
+       $(INSTALL) -d $(BINDIR)
+       @for b in $(BINS); do \
+-      $(INSTALL) -v -m 755 $$b $(BINDIR); \
++      $(INSTALL) -m 755 $$b $(BINDIR); \
+ done
+ 
+ install_include:
+       $(INSTALL) -d $(INCLUDEDIR)/jemalloc
+       @for h in $(C_HDRS); do \
+-      $(INSTALL) -v -m 644 $$h $(INCLUDEDIR)/jemalloc; \
++      $(INSTALL) -m 644 $$h $(INCLUDEDIR)/jemalloc; \
+ done
+ 
+ install_lib_shared: $(DSOS)
+       $(INSTALL) -d $(LIBDIR)
+-      $(INSTALL) -v -m 755 $(objroot)lib/$(LIBJEMALLOC).$(SOREV) $(LIBDIR)
++      $(INSTALL) -m 644 $(objroot)lib/$(LIBJEMALLOC).$(SOREV) $(LIBDIR)
+ ifneq ($(SOREV),$(SO))
+       ln -sf $(LIBJEMALLOC).$(SOREV) $(LIBDIR)/$(LIBJEMALLOC).$(SO)
+ endif
+@@ -574,13 +574,13 @@ endif
  install_lib_static: $(STATIC_LIBS)
        $(INSTALL) -d $(LIBDIR)
        @for l in $(STATIC_LIBS); do \
--      echo "$(INSTALL) -m 755 $$l $(LIBDIR)"; \
--      $(INSTALL) -m 755 $$l $(LIBDIR); \
-+      echo "$(INSTALL) -m 644 $$l $(LIBDIR)"; \
-+      $(INSTALL) -m 644 $$l $(LIBDIR); \
+-      $(INSTALL) -v -m 755 $$l $(LIBDIR); \
++      $(INSTALL) -m 755 $$l $(LIBDIR); \
  done
  
  install_lib_pc: $(PC)
+       $(INSTALL) -d $(LIBDIR)/pkgconfig
+       @for l in $(PC); do \
+-      $(INSTALL) -v -m 644 $$l $(LIBDIR)/pkgconfig; \
++      $(INSTALL) -m 644 $$l $(LIBDIR)/pkgconfig; \
+ done
+ 
+ ifeq ($(enable_shared), 1)
+@@ -594,13 +594,13 @@ install_lib: install_lib_pc
+ install_doc_html: build_doc_html
+       $(INSTALL) -d $(DATADIR)/doc/jemalloc$(install_suffix)
+       @for d in $(DOCS_HTML); do \
+-      $(INSTALL) -v -m 644 $$d $(DATADIR)/doc/jemalloc$(install_suffix); \
++      $(INSTALL) -m 644 $$d $(DATADIR)/doc/jemalloc$(install_suffix); \
+ done
+ 
+ install_doc_man: build_doc_man
+       $(INSTALL) -d $(MANDIR)/man3
+       @for d in $(DOCS_MAN3); do \
+-      $(INSTALL) -v -m 644 $$d $(MANDIR)/man3; \
++      $(INSTALL) -m 644 $$d $(MANDIR)/man3; \
+ done
+ 
+ install_doc: install_doc_html install_doc_man
diff -r d485584c5313 -r 794ca63f7305 devel/jemalloc/patches/patch-src_pages.c
--- a/devel/jemalloc/patches/patch-src_pages.c  Mon Sep 26 17:57:31 2022 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-$NetBSD: patch-src_pages.c,v 1.5 2019/03/22 16:30:02 rin Exp $
-
-Set os_overcommits to true on NetBSD < 8.0 as a workaround for
-the issue reported in kern/52239 and
-https://github.com/jemalloc/jemalloc/issues/837 .
-
---- src/pages.c.orig   2018-05-09 04:15:01.000000000 +0900
-+++ src/pages.c        2019-03-23 01:24:38.101144076 +0900
-@@ -582,6 +582,12 @@ pages_boot(void) {
-               mmap_flags |= MAP_NORESERVE;
-       }
- #  endif
-+#elif defined(__NetBSD__)
-+#  if !__NetBSD_Prereq__(8,0,0)
-+      os_overcommits = true;
-+#  else
-+      os_overcommits = false;
-+#  endif
- #else
-       os_overcommits = false;
- #endif



Home | Main Index | Thread Index | Old Index