RFR: JDK-8294266: Add a way to pre-touch java thread stacks [v2]
Thomas Stuefe
stuefe at openjdk.org
Sun Nov 13 10:30:05 UTC 2022
> When doing performance- and memory analysis, `AlwaysPreTouch` option is very handy for reducing noise. It would be good to have a similar option for pre-touching thread stacks. In addition to reducing noise, it can serve as worst-case test for thread costs, as well as a test for NMT regressions.
>
> Patch adds a new diagnostic switch, `AlwaysPreTouchStacks`, as a companion switch to `AlwaysPreTouch`. Touching is super-simple using `alloca()`. Also, regression test.
>
> Examples:
>
> NMT, thread stacks, 10000 Threads, default:
>
>
> - Thread (reserved=10332400KB, committed=331828KB)
> (thread #10021)
> (stack: reserved=10301560KB, committed=300988KB)
> (malloc=19101KB #60755)
> (arena=11739KB #20037)
>
>
> NMT, thread stacks, 10000 Threads, +AlwaysPreTouchStacks:
>
>
> - Thread (reserved=10332400KB, committed=10284360KB)
> (thread #10021)
> (stack: reserved=10301560KB, committed=10253520KB)
> (malloc=19101KB #60755)
> (arena=11739KB #20037)
Thomas Stuefe has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits:
- use shadow_zone_safe_limit
- Use os::pretouch_memory
- AlwaysPreTouchStacks
-------------
Changes: https://git.openjdk.org/jdk/pull/10403/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10403&range=01
Stats: 118 lines in 4 files changed: 118 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/10403.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10403/head:pull/10403
PR: https://git.openjdk.org/jdk/pull/10403
More information about the hotspot-dev
mailing list