Date: Fri, 17 Mar 2017 20:13:58 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-amd64@FreeBSD.org Subject: [Bug 217138] head (e.g.) -r314638 for arm64: sh vs. jemalloc asserts: include/jemalloc/internal/tsd.h:687: Failed assertion: "tsd_booted" once swapped in after being swapped out (comment 10) Message-ID: <bug-217138-6-SxkZFl8v3g@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-217138-6@https.bugs.freebsd.org/bugzilla/> References: <bug-217138-6@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D217138 --- Comment #21 from Mark Millard <markmi@dsl-only.net> --- I my test program I reported: #define region_size (4u*1024u+1u) // Bad dyn_region pattern, parent and child // processes: // 256u, 2u*1024u, 4u*1024u, 8u*1024u, // 9u*1024u, 12u*1024u, 14u*1024u // (but see the partial_test_check() call // notes above). // Works: // 14u*1024u+1u, 15u*1024u, 16u*1024u, // 32u*1024u, 256u*1024u*1024u It appears to turn out that the 14u*1024u vs. 14u*1024+1u boundary matches up with jemalloc: contrib/jemalloc/include/jemalloc/internal/size_classes.h : . . . size =3D=3D 1<<lg_grp + ndelta<<lg_delta . . .\ * bin: 'yes' if a small bin size class, 'no' otherwise. . . . #if (LG_SIZEOF_PTR =3D=3D 3 && LG_TINY_MIN =3D=3D 3 && LG_QUANTUM =3D=3D 3 = && LG_PAGE =3D=3D 12) #define SIZE_CLASSES \ /* index, lg_grp, lg_delta, ndelta, psz, bin, lg_delta_lookup */ \ . . . SC( 38, 13, 11, 3, no, yes, no) \ SC( 39, 13, 11, 4, yes, no, no) \ . . . #define SMALL_MAXCLASS ((((size_t)1) << 13) + (((size_t)3) << 11)) So SMALL_MAXCLASS=3D=3D(14u*1024u). The problem in the example program is tied to small bin size handling in jemalloc. --=20 You are receiving this mail because: You are on the CC list for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-217138-6-SxkZFl8v3g>