[Bug 217138] head (e.g.) -r315870 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)
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Apr 7 07:56:25 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217138
--- Comment #35 from Mark Millard <markmi at dsl-only.net> ---
I've found that for the "Source for allowing" attachment
I can make variations that change how much of the
allocated region prefix ends up zero vs. stays good.
I vary the sleep time between testing the initialized
allocations and doing the fork. The longer the sleep
the more zero pages show up:
# diff swap_testing[56].c
1c1
< // swap_testing5.c
---
> // swap_testing6.c
5c5
< // cc -g -std=c11 -Wpedantic -o swaptesting5 swap_testing5.c
---
> // cc -g -std=c11 -Wpedantic -o swaptesting5 swap_testing6.c
33c33
< sleep(30); // Potentialy force swap-out here.
---
> sleep(150); // Potentialy force swap-out here.
37a38,48
> // For no-swap-out here cases:
> //
> // The longer the sleep here the more allocations
> // that end up as zero.
> //
> // top's Mem Active, Inact, Wired, Bug, Free and
> // Swap Total, Used, and Free stay unchanged.
> // What does change is the process RES decreases
> // while the process SIZE and SWAP stay unchanged
> // during this sleep.
>
NOTE: On other architectures that I've tried (such as armv6/v7)
RES does not decrease during the sleep --and the problem
does not happen even for as long of sleeps as I've tried.
(I use "stress -m 2 --vm-bytes 900M" on armv6/v7 instead
of -m 1 --vm-bytes 1800M because that large in one
process is not allowed.)
So watching top's RES during the sleep (longer than a few
seconds) predicts the later fails-vs.-not status: If RES
decreases (while other things associated with the process
status stay the same) then there will be a failure.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the freebsd-amd64
mailing list