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